all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jean Louis <bugs@gnu.support>
To: Eli Zaretskii <eliz@gnu.org>
Cc: GNU Emacs Help <help-gnu-emacs@gnu.org>
Subject: Re: How to reliably edit a file from within Emacs Lisp and return a string?
Date: Sat, 24 Aug 2019 14:41:20 +0200	[thread overview]
Message-ID: <20190824124120.GT5516@protected.rcdrun.com> (raw)
In-Reply-To: <83r25aiw4f.fsf@gnu.org>

* Eli Zaretskii <eliz@gnu.org> [2019-08-24 14:31]:
> That can be done easily, but I cannot resist asking: why do you need
> the intermediate temporary file?  Why not insert the string into a
> buffer, let the user edit that string in a buffer, and then have a
> command in that buffer that tells you the user is done editing?

That is exactly what I am doing now. And I am losing editing.

What I am doing now is using M-C-c to finish recursive-edit. But
problem is that I use other functions of Emacs which are disturbing
it.

If I am ONLY editing words from mind, that would be fine, but I use
Emacs to switch to other buffers, maybe open mutt, maybe launch new
emacsclient from outside, to open other file, to copy staff from other
file to such buffer.

Observation and reality is that my recursive-edit will simply
break. It does not last.

It does not last when I invoke additional emacsclient from outside.

Bufer is *edit-string* so if I am opening this email with emacsclient,
the recursive-edit in the buffer *edit-string* is not any more... The
message is "No recursive edit is in progress".

Any more complex buffer editing without file is not reliable any
more. I can even kill the buffer by thinking that the string will be
read, but it will not be read. I can click M-C-c by expected that
string will be read from buffer, but it is not as recursive-edit was
disturbed for background reasons not known to me.

> As for feeding the string into the database: can you tell in more
> detail how you are doing that?  Are you invoking some external
> program passing it the edited string, for example?

I am just invoking from Emacs Lisp to read the database, to read the
field from database, and then I am editing that field as a string and
feeding it back.

Simple numbers can be edited with (read-number "Prompt: ") and some
short strings I edit from minibuffer, as those are not complex edits.

When I am editing Org file or Markdown from database, it is complex,
requires using other windows, other buffers, and also using
emacsclient to open other files for references.

By opening emacsclient during recursive-edit, such is then
interrupted.

> > Question is basically how to know, from Emacs Lisp, reliably, that
> > process of editing of a buffer finished, so that string can be
> > read from file, thereafter.
> 
> The best way is for the user to tell you so.  Only the user knows
> for sure, right?

I am the user and my staff members.

Eli, do you think I could do that somehow by installing some kind of
timer or async function or something that works in background, which
is checking if the buffer created with find-file is still there?

Then I could read the string from well known file back into the
database.

That is my idea how to solve that.

Jean



  reply	other threads:[~2019-08-24 12:41 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-22 21:31 How to reliably edit a file from within Emacs Lisp and return a string? Jean Louis
2019-08-22 22:01 ` Noam Postavsky
2019-08-22 22:46   ` Jean Louis
2019-08-22 23:10     ` Óscar Fuentes
2019-08-22 23:22     ` Noam Postavsky
2019-08-23  1:19       ` Jean Louis
2019-08-23  1:27         ` Noam Postavsky
2019-08-23  7:49       ` Eli Zaretskii
2019-08-23 14:01         ` Jean Louis
2019-08-23 14:14           ` Robert Pluim
2019-08-24 12:20             ` Jean Louis
2019-08-24 12:24             ` Jean Louis
2019-08-23 14:25           ` Eli Zaretskii
2019-08-24 12:19             ` Jean Louis
2019-08-24 12:30               ` Eli Zaretskii
2019-08-24 12:41                 ` Jean Louis [this message]
2019-08-24 13:17                   ` Eli Zaretskii
2019-08-24 14:14                     ` Jean Louis
2019-08-24 14:55                       ` Jean Louis
2019-08-24 15:10                         ` Eli Zaretskii
2019-08-24 15:51                           ` Jean Louis
2019-08-24 16:11                             ` Eli Zaretskii
2019-08-24 16:44                               ` Jean Louis
2019-08-24 16:55                                 ` Eli Zaretskii
2019-08-24 17:02                                   ` Eli Zaretskii
2019-08-24 17:17                                     ` Jean Louis
2019-08-24 17:23                                       ` Eli Zaretskii
2019-08-24 17:37                                         ` Jean Louis
2019-08-24 18:25                                           ` Eli Zaretskii
2019-08-24 18:50                                             ` Jean Louis
2019-08-24 19:03                                               ` Eli Zaretskii
2019-08-24 21:30                                                 ` Jean Louis
2019-08-24 17:15                                   ` Jean Louis
2019-08-24 17:22                                     ` Eli Zaretskii
2019-08-24 16:18                             ` Yuri Khan
2019-08-24 17:07                               ` Jean Louis
2019-08-24 13:08                 ` Jean Louis
2019-08-23 21:44           ` Marcin Borkowski
2019-08-24 12:15         ` Jean Louis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190824124120.GT5516@protected.rcdrun.com \
    --to=bugs@gnu.support \
    --cc=eliz@gnu.org \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.