From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: Display of undisplayable characters: \U01F3A8 instead of diamond Date: Thu, 08 Sep 2022 14:24:02 +0200 Message-ID: <874jxif40t.fsf@dataswamp.org> References: <83mtbiovzr.fsf@gnu.org> <83a67hq3l7.fsf@gnu.org> <83mtbhneht.fsf@gnu.org> <83czcakqd3.fsf@gnu.org> <87a67dxhfw.fsf@dataswamp.org> <875yi0wzx7.fsf@dataswamp.org> <834jxkk635.fsf@gnu.org> <878rmw8085.fsf@dataswamp.org> <83edwnj4fh.fsf@gnu.org> <87tu5j7tu1.fsf@dataswamp.org> <83a67bih0f.fsf@gnu.org> <83tu5jgvfy.fsf@gnu.org> <83sfl3gtah.fsf@gnu.org> <87mtbbyyl1.fsf@logand.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4558"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Cancel-Lock: sha1:o/yBZfopaJO+Z0LdkYOKT59jkdE= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 08 14:28: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 1oWGdv-000124-Cn for ged-emacs-devel@m.gmane-mx.org; Thu, 08 Sep 2022 14:28:27 +0200 Original-Received: from localhost ([::1]:46646 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oWGdt-0005nv-GY for ged-emacs-devel@m.gmane-mx.org; Thu, 08 Sep 2022 08:28:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWGZr-0001zj-Bq for emacs-devel@gnu.org; Thu, 08 Sep 2022 08:24:15 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:54264) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWGZp-0007J6-Nm for emacs-devel@gnu.org; Thu, 08 Sep 2022 08:24:15 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oWGZm-0005j8-F7 for emacs-devel@gnu.org; Thu, 08 Sep 2022 14:24:10 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action 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:294937 Archived-At: Tomas Hlavaty wrote: >>> * You see the effect, decide that it is good, put >>> (some-hypothetical-other-command) in your init file. >>> * On the next startup, it reads the file (which is fast), applies the >>> data (which is supposedly also fast), has the same effect. >>> >>> The file name could include some relevant factors such as the terminal >>> type on which the data depends. >> >> You suggest semi-automatically saving the generated code in >> the init file, instead of the user copying it >> there manually? > > No, he said that the generated code is saved automatically > in a file and if the user puts > (some-hypothetical-other-command) in his .emacs manually, it > will load the saved file. Something like: *Nothing like :) > (defun some-hypothetical-other-command () > (or (let ((f "~/.emacs.d/cache/some-hypothetical-other-command.el")) > (when (file-exists-p f) > (load f))) > (generate-and-save-that-slow-code))) Again, the result, not the code ... I have this [last] which I know works but I don't know what the prefered format or idiomatic Elisp ways are to store and retrieve data to and from the filesystem. So yeah, what do we we have to do that fast and secure and for arbitrary (nested) data structures? ;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/file-write-to.el (require 'subr-x) ;; write (defun write-to-file (file str) (write-region str nil file) ) (defalias 'write-to-file-string #'write-to-file) (defun write-to-file-integer (file int) (write-region (number-to-string int) nil file) ) ;; read (defun file-to-string (file) "A string with the contents of FILE." (interactive "Ffile: ") (with-temp-buffer (insert-file-contents file) (string-trim (buffer-substring-no-properties (point-min) (point-max)) ))) (defun file-to-integer (file) (string-to-number (file-to-string file)) ) (defmacro file-to-variable (file var) `(setq ,var ,(file-to-string file)) ) (defmacro file-to-variable-integer (file var) `(setq ,var ,(string-to-number (file-to-string file))) ) ;; (write-to-file "~/5ifth.txt" "Leeloo Dallas Multipass") ;; (write-to-file-integer "~/element.txt" 5) ;; ;; (file-to-string "~/5ifth.txt") ; Leeloo ... ;; (file-to-variable "~/5ifth.txt" string-value) ; Leeloo ... ;; string-value ; Leeloo ... ;; (file-to-variable-integer "~/element.txt" integer-value) ; 5 ;; integer-value ; 5 (provide 'file-write-to) -- underground experts united https://dataswamp.org/~incal