[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30786: Save text properties in desktop
From: |
Juri Linkov |
Subject: |
bug#30786: Save text properties in desktop |
Date: |
Wed, 04 Apr 2018 23:01:02 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) |
>>>> Do you think this patch covers all possible unreadable cases on writing?
>>>>
>>>> + ;; 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))))
>>>
>>> I think it won't cover the case where an object's print syntax is only
>>> readable by the current Emacs version, and not an earlier one. To
>>> handle that you'll need to call desktop--v2s recursively, like in the
>>> vectorp and consp branches.
>>
>> I don't understand how calling desktop--v2s recursively will ensure its
>> readability in earlier versions? For example, if Emacs 27 will write to
>> the desktop file ‘#("foo" 0 3 (bar 42))’ how Emacs 19 can read it?
>
> Ah, I wasn't thinking of the #(...) specifically, rather about the
> values of text properties, e.g.,
>
> (cl-defstruct foo f1 f2)
> (desktop--v2s (make-foo :f1 1 :f2 2)) ;=> (may . "Unprintable entity")
>
> So desktop--v2s considers structs as unprintable, unlike read, hence
> using desktop--v2s recursively instead of read will catch properties
> that would otherwise be unreadable in Emacs 25.
>
> If we want to support Emacs versions that don't even know about #(...)
> then we can't write string properties at all, I guess.
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.
- bug#30786: Save text properties in desktop, Juri Linkov, 2018/04/02
- bug#30786: Save text properties in desktop, Noam Postavsky, 2018/04/02
- bug#30786: Save text properties in desktop, Juri Linkov, 2018/04/03
- bug#30786: Save text properties in desktop, Noam Postavsky, 2018/04/03
- bug#30786: Save text properties in desktop,
Juri Linkov <=
- bug#30786: Save text properties in desktop, Noam Postavsky, 2018/04/07
- bug#30786: Save text properties in desktop, Juri Linkov, 2018/04/07
- bug#30786: Save text properties in desktop, Noam Postavsky, 2018/04/07
- bug#30786: Save text properties in desktop, Juri Linkov, 2018/04/08
- bug#30786: Save text properties in desktop, Juri Linkov, 2018/04/19