From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.bugs Subject: bug#58423: 29.0.50; Weird behavior of string-edit Date: Tue, 11 Oct 2022 17:10:42 +0300 Message-ID: References: <86bkqje2c5.fsf@protected.rcdrun.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8393"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.7+37 (a90f69b) (2022-09-02) Cc: 58423@debbugs.gnu.org To: Stefan Kangas Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 11 16:14:25 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1oiG1Y-0001vq-K3 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 11 Oct 2022 16:14:24 +0200 Original-Received: from localhost ([::1]:57360 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oiG1X-0007Rd-9O for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 11 Oct 2022 10:14:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35754) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oiG1C-0007Aq-VF for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2022 10:14:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55431) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oiG1C-0007cL-NG for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2022 10:14:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oiG1C-0004du-61 for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2022 10:14:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jean Louis Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 11 Oct 2022 14:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58423 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug Original-Received: via spool by 58423-submit@debbugs.gnu.org id=B58423.166549759217776 (code B ref 58423); Tue, 11 Oct 2022 14:14:02 +0000 Original-Received: (at 58423) by debbugs.gnu.org; 11 Oct 2022 14:13:12 +0000 Original-Received: from localhost ([127.0.0.1]:54507 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oiG0O-0004cd-6Z for submit@debbugs.gnu.org; Tue, 11 Oct 2022 10:13:12 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:37467) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oiG0J-0004c6-Ud for 58423@debbugs.gnu.org; Tue, 11 Oct 2022 10:13:11 -0400 Original-Received: from localhost ([::ffff:154.227.225.142]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000BBD13.00000000634579ED.00003327; Tue, 11 Oct 2022 07:13:01 -0700 Content-Disposition: inline In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:245115 Archived-At: * Stefan Kangas [2022-10-11 03:09]: > Jean Louis writes: > > > I don't think that this is right return value from: > > > > (string-edit "" "" 'ignore) > > > > to be this: > > > > #("Type C-c C-c when you’ve finished editing" 5 12 (font-lock-face help-key-binding face help-key-binding)) > > Do you have a use case where you care about the return value? My case is heavy use case, that is what I do every day. I was thinking to start using the Emacs built-in feature, but then I see it misbehaves. Heavy use case is for editing values from database. Just any values. Here is the function that I use and this one returns the string. (defun read-from-buffer (&optional value buffer-name mode title keymap place highlight-list minor-modes input-method) "Edits string and returns it" (let ((this-buffer (buffer-name)) (title (or title "")) (value (or value "")) (new-value value) (point (cond ((numberp place) place) ((listp place) (cdr (assoc "place" place))))) (table (when (listp place) (cdr (assoc "table" place)))) (column (when (listp place) (cdr (assoc "column" place)))) (table-id (when (listp place) (cdr (assoc "table-id" place)))) (_ (message "EDIT %s" place)) (_ (message "%s" place)) (read-buffer (if buffer-name (generate-new-buffer buffer-name) (generate-new-buffer "*edit-string*")))) (save-excursion (switch-to-buffer read-buffer) (erase-buffer) (set-buffer read-buffer) (if mode (if (fboundp mode) (funcall mode) (rcd-message "You need `%s' mode" (symbol-name mode))) (text-mode)) (while minor-modes (let ((minor-mode (pop minor-modes))) (if minor-mode (if (fboundp (intern minor-mode)) (funcall (intern minor-mode)) (rcd-message "You need `%s' minor mode" (symbol-name minor-mode)))))) (setq rcd-db-current-table table) (setq rcd-db-current-column column) (setq rcd-db-current-table-id table-id) ;; (local-set-key (kbd "C-c C-c") 'exit-recursive-edit) (local-set-key (kbd "") 'exit-recursive-edit) (when keymap (use-local-map keymap)) (when input-method (set-input-method input-method)) (setq header-line-format (format "%s ➜ Finish editing with or C-M-c or F8" title)) (if (stringp value) (insert value)) (goto-char (or point (point-min))) (message "When you're done editing press C-M-c or F8 to continue.") (setq eval-expression-debug-on-error nil) (unwind-protect (recursive-edit) (if (get-buffer-window read-buffer) (progn (setq new-value (buffer-substring (point-min) (point-max))) (kill-buffer read-buffer)))) (setq eval-expression-debug-on-error t) (switch-to-buffer this-buffer) new-value))) ;; TODO if mode is used, maybe it should not return propertized string -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/