From: Juri Linkov <juri@linkov.net>
To: Noam Postavsky <npostavs@gmail.com>
Cc: 30786@debbugs.gnu.org
Subject: bug#30786: Save text properties in desktop
Date: Sun, 08 Apr 2018 23:13:13 +0300 [thread overview]
Message-ID: <87tvslpszy.fsf@mail.linkov.net> (raw)
In-Reply-To: <87zi2emphv.fsf@gmail.com> (Noam Postavsky's message of "Sat, 07 Apr 2018 21:54:52 -0400")
>>>>>>>> + ;; Get rid of unreadable text properties.
>>>>>>>> + (if (ignore-errors (read (format "%S" value)))
>>>>>>>> + (cons 'may value)
>>>>>>>> + (let ((copy (copy-sequence value)))
>>>>>>>> + (set-text-properties 0 (length copy) nil copy)
>>>>>>>> + (cons 'may copy))))
>>>
>>>> If we can afford continuing incrementing the desktop file version in
>>>> ‘desktop-file-version’ doing this every time when support for reading more
>>>> syntaxes is added, thus preventing incompatibilities, then the patch above
>>>> would be the most reliable solution.
>>>
>>> You would also have to strip text properties according to the value of
>>> desktop-file-version, right?
>>
>> This won't help for the counterexample that you demonstrated earlier with
>> (put-text-property 1 2 'foo (point-marker)). Whereas this patch does.
>
> Sorry, I don't think I explained my point very well above.
>
> Using `read' to check readability can only test which objects are
> readable in the current Emacs version. So if we rely on that, then we
> can only reliably produce desktop files compatible with the current
> version. Which means the only thing that desktop-file-version helps
> with is giving a slightly better error message, yes?
>
> (I don't think this is necessarily a deal-breaker, as long as it's well
> documented)
Yes, just better error handling (like what in bug#24982 was asked to do),
nothing more, so it's not a deal-breaker.
Currently I see no better way than in the aforementioned patch.
At least it provides 100% guarantee of readability of the desktop file
in the same version that wrote it.
But earlier versions will have an incompatibility problem anyway.
Let's suppose that Emacs 27 will support reading point-markers and writes
them to the desktop file for good. Then naturally Emacs 26 will fail
to read such desktop files either way: explicitly by comparing
version numbers, or implicitly by inability to parse the new syntax.
next prev parent reply other threads:[~2018-04-08 20:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-12 21:57 bug#30786: Save text properties in desktop Juri Linkov
2018-03-13 1:16 ` Noam Postavsky
2018-03-13 21:52 ` Juri Linkov
2018-03-14 1:09 ` Drew Adams
2018-03-14 2:37 ` Noam Postavsky
2018-03-14 20:09 ` Drew Adams
2018-04-02 19:41 ` Juri Linkov
2018-04-02 21:48 ` Noam Postavsky
2018-04-03 20:11 ` Juri Linkov
2018-04-03 22:01 ` Noam Postavsky
2018-04-04 20:01 ` Juri Linkov
2018-04-07 13:08 ` Noam Postavsky
2018-04-07 20:46 ` Juri Linkov
2018-04-08 1:54 ` Noam Postavsky
2018-04-08 20:13 ` Juri Linkov [this message]
2018-04-19 20:32 ` Juri Linkov
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvslpszy.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=30786@debbugs.gnu.org \
--cc=npostavs@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).