emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: 23.0.50; savehist save invalid syntax


From: Drew Adams
Subject: RE: 23.0.50; savehist save invalid syntax
Date: Mon, 10 Sep 2007 18:18:05 -0700

> > The newlines are not necessary, unless you're thinking of
> > someone viewing .emacs-history. That is, any whitespace will do.
> I used a space, but a newline is OK too.
>
> If we don't care what the file looks like, lots of things become optional:
> (setq foo'bar) works, for instance.  I thought I'd err on the side of
> readability.

OK, it makes no difference to me. An argument in the other direction, FWIW,
is that something _very_ readable might give the impression that hand
editing is OK (in spite of the comment to the contrary).

> > In that case, you might want to comment the Lisp code to that
> > effect. It's not very obvious that a Lisp reader error could be
> > raised by `prin1'. And I think it's probably still better to
> > leave the general `error' handler.
>
> I think the documentation for the (new) variable
> `print-unreadable-function' may be sufficient, but I could add one.  I
> specifically don't want to catch all errors there, because any other error
> ought to be noticed, not suppressed.

By "there", I assume that you mean in the C code. I think that the savehist
code should catch all errors here. This is run on kill-emacs-hook. I doubt
we want to kick error messages back up to the user here. But do as you think
right. I have no strong opinion about this.

> > What Lisp value can I test for [the new print feature]? It's
> > obviously not `emacs-major-version' >= 22. Is there a featurep
> > or fboundp or boundp I can test? If not, is there a minor
> > version I can test? If I can't find something to test, then
> > I'll have to leave the `read' in for new Emacs
> > versions also, which is obviously a waste.
>
> You can, outside the `let', test (boundp 'print-unreadable-function).  You
> can also test >= 22.2, if it's added there, or >= 23 otherwise (CVS has
> such a version).

The first option is preferable. Thanks.

> > Do as you think best. The doc string suggests that a decimal value is
> > used, so I used one. Also, I think decimal is what will be used by most
> > users in Customize. That is, even if one can enter #o600 in the
> > Customize editable field, I doubt that most users will think to do that.
> > To me, the doc string helps in this regard, and a decimal default value
> > helps. I don't see a real benefit in using octal here, but that's just
> > my opinion.
>
> Once read, there is no difference between #o600 and 384; there are no
> "octal integers", only octal integer literals.  The user never sees it,
> then, and it has no effect on Customize.

Of course. I was explaining why the doc string speaks of a decimal value and
explains the equivalence. It is what users will see in Customize. It could
also be what they see if they examine the source code. Or not ;-).

> > OK. As I say, I don't recall the specific need. I do recall that it was
> > preventing one from quitting Emacs, because `savehist-autosave' is in
> > `kill-emacs-hook' (as well as on a timer). That is, if, for any
> > reason, it has a problem, then it gets in the way of exiting.
> > That was what was happening, but perhaps that problem will never
> > arise in the future ;-).
>
> I wonder why `kill-emacs-hook' is allowed to stop Emacs exiting; if a
> function on it signals, shouldn't one just proceed to the next function or
> to the actual exit?  It's not supposed to be able to veto exiting; that's
> what `kill-emacs-query-functions' is for.

I honestly do not remember the details. It may have had to do with this in
combination with using a quit confirmation (query); I don't recall. I've
explained why I added the condition-case, and I don't remember any more
details. You are free to take it out.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]