From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Can watermarking Unicode text using invisible differences sneak through Emacs, or can Emacs detect it? Date: Thu, 03 Feb 2022 22:52:07 -0500 Message-ID: References: <87sftk49ih.fsf@yahoo.com> <837dawt0h4.fsf@gnu.org> <838rv9plyf.fsf@gnu.org> <837dasntoj.fsf@gnu.org> <834k5tl4a9.fsf@gnu.org> <87mtjkt6m9.fsf@gmail.com> <83ilu8htws.fsf@gnu.org> <3E718CA2-889F-4AEE-B79C-EB3A221D1CB2@gnu.org> <83o83wc7gs.fsf@gnu.org> <8335l5brov.fsf@gnu.org> <83mtjc838i.fsf@gnu.org> <83zgna7hyd.fsf@gnu.org> <83ee4l78rw.fsf@gnu.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3072"; mail-complaints-to="usenet@ciao.gmane.io" Cc: psainty@orcon.net.nz, luangruo@yahoo.com, eliz@gnu.org, kevin.legouguec@gmail.com, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Feb 04 04:53:27 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFpf4-0000dl-Sh for ged-emacs-devel@m.gmane-mx.org; Fri, 04 Feb 2022 04:53:27 +0100 Original-Received: from localhost ([::1]:34720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nFpf3-0001Bw-N9 for ged-emacs-devel@m.gmane-mx.org; Thu, 03 Feb 2022 22:53:25 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:39934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nFpdp-0008IT-Pz for emacs-devel@gnu.org; Thu, 03 Feb 2022 22:52:09 -0500 Original-Received: from [2001:470:142:3::e] (port=41258 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nFpdn-0003nx-O0; Thu, 03 Feb 2022 22:52:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=bvieeDsENkTqCOjceSxLqXGl5SRUjJ17nylGWIwEVWc=; b=bgR1qbanSKds NnSQ3UYfiT3hb92KtS1E9VSHX8hgg+ecBHgrSYZHwpUzFLAoU6o8D3NdfyRaSKYkQA6q8JGT7TXPP oYHP0dkeUmKoEK8x76x3w2GhpCanriE7E+b36rIkRQv9CNtbXDhQDAuoUQuq0FTT3D1dQG4fL/KgT 8PT7BfqpE799Vcb8DgGC19+QZbDU1+LRyEAmC+dyKKoGU6sZ0+qXZhEhARAwuZXR3gwAEN7MXjmBr 9Wb48NBRSN9DdBiFHoeFW2FeEDnPN7tlqNV5+ZMmsxQVphny6er6Y9V9QP96eBKOtDqdxHa7Raw0p +vI35RO7PkCElDUBzV3rlQ==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1nFpdn-00053c-5X; Thu, 03 Feb 2022 22:52:07 -0500 In-Reply-To: (message from Richard Stallman on Wed, 02 Feb 2022 23:23:56 -0500) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:285851 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] It would be useful to be able to analyze and construct complex characters -- for instance, to operate on a-with-breve-and-tilde and find out that represents an a with two diacritics. So I propose a function, `diacriticize'. Its arguments are characters, and if they can be graphically combined to make a single character, that's what diacriticize returns. Otherwise, it returns nil. (diacriticize ?a ?~ ?˘) => ?㯠(diacriticize ?a ?Z) => nil It could have an inverse function, criticanalyze, which given the character code for a character that is (in spirit) a composition, would return the characters it consists of: (criticanalyze ?ã˘) => (?a ?~ ?˘) With these functions, latin1-display could figure out automatically which conversions to make. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)