unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Scratch buffer annoyance
@ 2007-07-06  0:06 Chong Yidong
  2007-07-06  4:12 ` Stefan Monnier
  2007-07-15 21:37 ` Leo
  0 siblings, 2 replies; 218+ messages in thread
From: Chong Yidong @ 2007-07-06  0:06 UTC (permalink / raw)
  To: emacs-devel

This recent change leads to annoying behavior:

2007-07-02  Richard Stallman  <rms@gnu.org>

	* startup.el (command-line): Set buffer-offer-save in *scratch*
	and enable auto-save in it.

After this was checked in, I noticed Emacs kept asking me if I wanted
to save the *scratch* buffer upon each exit.  That was annoying, but
tolerable, so I just answered "no".  A while later, I happened to do
an `ls' in my home directory, and found it cluttered with 10-20
auto-save files:

#*scratch*#10823QZW#
#*scratch*#220140RY#
#*scratch*#72802aU#
...

At the very least, we should (i) offer an option to adopt the Emacs 22
behavior for the *scratch* buffer, i.e. with buffer-offer-save and
auto-save disabled, and (ii) delete the auto-save file if the user
answers "no" when asked if *scratch* should be saved.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-06  0:06 Scratch buffer annoyance Chong Yidong
@ 2007-07-06  4:12 ` Stefan Monnier
  2007-07-15 21:37 ` Leo
  1 sibling, 0 replies; 218+ messages in thread
From: Stefan Monnier @ 2007-07-06  4:12 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

> This recent change leads to annoying behavior:
> 2007-07-02  Richard Stallman  <rms@gnu.org>

> 	* startup.el (command-line): Set buffer-offer-save in *scratch*
> 	and enable auto-save in it.

> After this was checked in, I noticed Emacs kept asking me if I wanted
> to save the *scratch* buffer upon each exit.  That was annoying, but
> tolerable, so I just answered "no".  A while later, I happened to do
> an `ls' in my home directory, and found it cluttered with 10-20
> auto-save files:

> #*scratch*#10823QZW#
> #*scratch*#220140RY#
> #*scratch*#72802aU#
> ...

> At the very least, we should (i) offer an option to adopt the Emacs 22
> behavior for the *scratch* buffer, i.e. with buffer-offer-save and
> auto-save disabled, and (ii) delete the auto-save file if the user
> answers "no" when asked if *scratch* should be saved.

And also, it shouldn't be saved in the home directory but somewhere in the
.emacs.d directory.


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-06  0:06 Scratch buffer annoyance Chong Yidong
  2007-07-06  4:12 ` Stefan Monnier
@ 2007-07-15 21:37 ` Leo
  2007-07-15 22:19   ` David Reitter
  2007-07-15 22:24   ` Karl Fogel
  1 sibling, 2 replies; 218+ messages in thread
From: Leo @ 2007-07-15 21:37 UTC (permalink / raw)
  To: emacs-devel

On 2007-07-06 01:06 +0100, Chong Yidong wrote:
> This recent change leads to annoying behavior:
>
> 2007-07-02  Richard Stallman  <rms@gnu.org>
>
> 	* startup.el (command-line): Set buffer-offer-save in *scratch*
> 	and enable auto-save in it.
>
> After this was checked in, I noticed Emacs kept asking me if I wanted
> to save the *scratch* buffer upon each exit.  That was annoying, but
> tolerable, so I just answered "no".  A while later, I happened to do
> an `ls' in my home directory, and found it cluttered with 10-20
> auto-save files:
>
> #*scratch*#10823QZW#
> #*scratch*#220140RY#
> #*scratch*#72802aU#
> ...
>
> At the very least, we should (i) offer an option to adopt the Emacs 22
> behavior for the *scratch* buffer, i.e. with buffer-offer-save and
> auto-save disabled, and (ii) delete the auto-save file if the user
> answers "no" when asked if *scratch* should be saved.

I agree 100%.

This new behavior is just annoying.

Everybody knows what *scratch* means. Why would someone want to save
things in scratch? Or why would they put important things in *scratch*
in the first place?

-- 
Leo <sdl.web AT gmail.com>                         (GPG Key: 9283AA3F)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 21:37 ` Leo
@ 2007-07-15 22:19   ` David Reitter
  2007-07-15 22:42     ` Zhang Wei
                       ` (2 more replies)
  2007-07-15 22:24   ` Karl Fogel
  1 sibling, 3 replies; 218+ messages in thread
From: David Reitter @ 2007-07-15 22:19 UTC (permalink / raw)
  To: Leo; +Cc: emacs-devel

On 15 Jul 2007, at 22:37, Leo wrote:

> Everybody knows what *scratch* means. Why would someone want to save
> things in scratch? Or why would they put important things in *scratch*
> in the first place?

Many users seem to do just that. See the discussion earlier on this  
mailing list.

But why do the auto-save files have to go in ~/, and not somewhere  
where they don't annoy the user? Why is there more than one auto-save  
file? Isn't that a bug?

Why is the user asked at all whether *scratch* should be saved? That  
is annoying. If anything, *scratch* should be automatically  
persistent. It's still not meant to be a buffer that is saved to a  
user-managed file. It's just supposed to be persistent so that  
restarting Emacs doesn't have a devastating effect!

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 21:37 ` Leo
  2007-07-15 22:19   ` David Reitter
@ 2007-07-15 22:24   ` Karl Fogel
  2007-07-16 20:32     ` Alfred M. Szmidt
  1 sibling, 1 reply; 218+ messages in thread
From: Karl Fogel @ 2007-07-15 22:24 UTC (permalink / raw)
  To: Leo; +Cc: emacs-devel

Leo <sdl.web@gmail.com> writes:
> This new behavior is just annoying.
>
> Everybody knows what *scratch* means. Why would someone want to save
> things in scratch? Or why would they put important things in *scratch*
> in the first place?

Then the new behavior is not the right solution to a real problem.

People clearly do not know what "*scratch*" means, which isn't
surprising, considering that it behaves differently from virtually
every other text editing interface out there (they'll ask you if you
want to save unsaved work before exiting).

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 22:19   ` David Reitter
@ 2007-07-15 22:42     ` Zhang Wei
  2007-07-15 22:52     ` Juri Linkov
  2007-07-16 15:49     ` Richard Stallman
  2 siblings, 0 replies; 218+ messages in thread
From: Zhang Wei @ 2007-07-15 22:42 UTC (permalink / raw)
  To: emacs-devel

David Reitter <david.reitter@gmail.com> writes:

[...]

> But why do the auto-save files have to go in ~/, and not somewhere
> where they don't annoy the user? Why is there more than one auto-save
> file? Isn't that a bug?

The auto-save files not just go in ~/, wherever you startup emacs,
they will to there, you will find tons of #scratch...# files scattered
everywhere in your directory tree after days of work.

I don't think it's a good idea to make *scratch* buffer auto-save.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 22:19   ` David Reitter
  2007-07-15 22:42     ` Zhang Wei
@ 2007-07-15 22:52     ` Juri Linkov
  2007-07-16 15:49     ` Richard Stallman
  2 siblings, 0 replies; 218+ messages in thread
From: Juri Linkov @ 2007-07-15 22:52 UTC (permalink / raw)
  To: David Reitter; +Cc: Leo, emacs-devel

> But why do the auto-save files have to go in ~/, and not somewhere  where
> they don't annoy the user?

I have many backup files in ~/.emacs.d/auto-save-list/, and they don't
bother me in this directory.  So scratch backup files could go to a
special directory like ~/.emacs.d/scratch/.

> Why is there more than one auto-save file?  Isn't that a bug?

With a proper implementation, more than one auto-save file will be
necessary only for many simultaneous Emacs sessions.

> Why is the user asked at all whether *scratch* should be saved? That  is
> annoying.

I'm one of the few people who could benefit from saving the scratch buffer
because I often forget to save some "expiremental" pieces of code in it
so I need to have a window with the scratch buffer always visible
to not forget to save it, and this is inconvenient.  But the current
implementation with asking the question and leaving auto-save files
everywhere is very annoying.

> If anything, *scratch* should be automatically persistent. It's still
> not meant to be a buffer that is saved to a user-managed file. It's just
> supposed to be persistent so that restarting Emacs doesn't have
> a devastating effect!

I agree that this would be a better solution to make it automatically
persistent without asking questions.  So after restarting Emacs,
it could restore the old content of the scratch buffer, and automatically
save it after modifications.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 22:19   ` David Reitter
  2007-07-15 22:42     ` Zhang Wei
  2007-07-15 22:52     ` Juri Linkov
@ 2007-07-16 15:49     ` Richard Stallman
  2 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-16 15:49 UTC (permalink / raw)
  To: David Reitter; +Cc: sdl.web, emacs-devel

Our previous discussion concluded that we need to turn on auto-save in
*scratch*.

People's complaints show that some details of this need to be changed.
We need to change the details of saving and auto-saving *scratch* so
that this doesn't inconvenience users who are not interested in it.

Would people please turn attention to desiging those details?  We can
add new code in the low levels of auto-saving, if necessary, in order
to make this work in the most convenient possible way.

I am sorry that I have been too busy to fix this up further myself.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-15 22:24   ` Karl Fogel
@ 2007-07-16 20:32     ` Alfred M. Szmidt
  2007-07-17 15:05       ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Alfred M. Szmidt @ 2007-07-16 20:32 UTC (permalink / raw)
  To: Karl Fogel; +Cc: sdl.web, emacs-devel

   > This new behavior is just annoying.
   >
   > Everybody knows what *scratch* means. Why would someone want to
   > save things in scratch? Or why would they put important things in
   > *scratch* in the first place?

   Then the new behavior is not the right solution to a real problem.

   People clearly do not know what "*scratch*" means, which isn't
   surprising, considering that it behaves differently from virtually
   every other text editing interface out there (they'll ask you if
   you want to save unsaved work before exiting).

I sent the following suggestion, which I think is a very good solution
to the problem, but nobody commented on it.

>From ams Sat Jun 23 20:58:50 +0200 2007
From: "Alfred M. Szmidt" <ams@gnu.org>
To: rms@gnu.org
CC: dak@gnu.org, kfogel@red-bean.com, wilde@sha-bang.de,
	hacksaw@hacksaw.org, emacs-devel@gnu.org, jasonr@gnu.org
In-reply-to: <E1I2AK4-0006rB-8s@fencepost.gnu.org> (message from Richard
	Stallman on Sat, 23 Jun 2007 14:27:00 -0400)
Subject: Re: A wish, a plea
Reply-to: ams@gnu.org
References: <4679F561.4030600@hacksaw.org> <87d4zomyiw.fsf@red-bean.com>
	<m2fy4latun.fsf@kenny.sha-bang.de> <87fy4kjy0k.fsf@red-bean.com>
	<467AF6CC.2000300@gnu.org> <E1I1lwH-0007FG-OZ@fencepost.gnu.org>
	<467BFAAB.8060601@gnu.org> <E1I1r4I-0000Fj-E4@fencepost.gnu.org>
	<851wg3chsm.fsf@lola.goethe.zz> <E1I2AK4-0006rB-8s@fencepost.gnu.org>

       Making *scratch* or even something like *unnamed* readonly would
       pretty much defeat its intent.

   The principal intent of *scratch* is to be the current buffer when
   Emacs starts up.  Secondarily, it provides a place to enter notes you
   don't want to save, and eval Lisp expressions.  Making it read-only,
   so you need to type C-x C-q before inserting anything, would not spoil
   the principal intent.  It would slightly inconvenience the secondary
   intent, but that MIGHT be worth while in exchange for making it less
   likely to lose data.

Wouldn't it be smarter to make the initial splash screen the current
buffer when Emacs starts instead?  It would make sense for that to be
read-only, and when one does C-x C-q, it could for example clear it
and toggle the read-only status of the buffer (with a brief note in
the initial splash screen that one can do C-x C-q to convert it into a
"scratch" buffer).

Currently the initial splash screen vanishes really quickly, if you
try to do anything it will vanish.  You cannot copy the URL to the
guided Emacs tour, for example.  If it was the current buffer that
didn't vanish (like *scratch*), then this wouldn't happen.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-16 20:32     ` Alfred M. Szmidt
@ 2007-07-17 15:05       ` Richard Stallman
  2007-07-17 15:28         ` David Reitter
                           ` (2 more replies)
  0 siblings, 3 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-17 15:05 UTC (permalink / raw)
  To: ams; +Cc: kfogel, sdl.web, emacs-devel

    Wouldn't it be smarter to make the initial splash screen the current
    buffer when Emacs starts instead?  It would make sense for that to be
    read-only, and when one does C-x C-q, it could for example clear it
    and toggle the read-only status of the buffer (with a brief note in
    the initial splash screen that one can do C-x C-q to convert it into a
    "scratch" buffer).

It is an interesting idea.  What do others think?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:05       ` Richard Stallman
@ 2007-07-17 15:28         ` David Reitter
  2007-07-17 15:50           ` Tassilo Horn
                             ` (3 more replies)
  2007-07-17 16:36         ` Chong Yidong
  2007-07-17 17:48         ` Drew Adams
  2 siblings, 4 replies; 218+ messages in thread
From: David Reitter @ 2007-07-17 15:28 UTC (permalink / raw)
  To: rms; +Cc: kfogel, ams, sdl.web, emacs-devel

On 17 Jul 2007, at 16:05, Richard Stallman wrote:

>     Wouldn't it be smarter to make the initial splash screen the  
> current
>     buffer when Emacs starts instead?  It would make sense for that  
> to be
>     read-only, and when one does C-x C-q, it could for example  
> clear it
>     and toggle the read-only status of the buffer (with a brief  
> note in
>     the initial splash screen that one can do C-x C-q to convert it  
> into a
>     "scratch" buffer).
>
> It is an interesting idea.  What do others think?

This will make Emacs even more difficult to use for new or occasional  
users. They would need to know a key combination just to get started.  
And it would be much more annoying than the current situation.

What's wrong with

- automatically saving *scratch* in a place other than ~/ (where it  
is out of the way)
   via auto-save and before exiting Emacs, without any user interaction
- automatically restoring *scratch* from that file upon startup (i.e.  
making it persistent)
- not offering to save it anywhere else (even though users may to C-x  
C-w and save it, thereby converting it to a normal, non-persistent  
buffer, and creating an empty *scratch* buffer automatically).

This would preserve the equivalence to a real-life scratch paper that  
one keeps on one's desk, which will not magically disappear  
overnight, but which may be filed somewhere else when needed.

It would be unobtrusive and solve the original problem.

Oh, and it should be in text-mode, because most users will not want  
to hack Elisp.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:28         ` David Reitter
@ 2007-07-17 15:50           ` Tassilo Horn
  2007-07-17 16:00             ` Johan Bockgård
                               ` (2 more replies)
  2007-07-17 16:02           ` David Kastrup
                             ` (2 subsequent siblings)
  3 siblings, 3 replies; 218+ messages in thread
From: Tassilo Horn @ 2007-07-17 15:50 UTC (permalink / raw)
  To: emacs-devel

David Reitter <david.reitter@gmail.com> writes:

> On 17 Jul 2007, at 16:05, Richard Stallman wrote:
>
>>     Wouldn't it be smarter to make the initial splash screen the
>>     current buffer when Emacs starts instead?  It would make sense
>>     for that to be read-only, and when one does C-x C-q, it could for
>>     example clear it and toggle the read-only status of the buffer
>>     (with a brief note in the initial splash screen that one can do
>>     C-x C-q to convert it into a "scratch" buffer).
>>
>> It is an interesting idea.  What do others think?
>
> This will make Emacs even more difficult to use for new or occasional
> users. They would need to know a key combination just to get started.
> And it would be much more annoying than the current situation.

Then all users that like the scratch buffer as it is right now would
need to `C-x C-q' on startup. And what if you don't want the
splash-screen at all?

So I like David's idea better.

> What's wrong with
>
> - automatically saving *scratch* in a place other than ~/ (where it is
> out of the way) via auto-save and before exiting Emacs, without any
> user interaction

Yes, something like ~/.emacs.d/scratch would make sense.

> - automatically restoring *scratch* from that file upon startup
> (i.e. making it persistent)

That would be very nice. Deleting the buffers contents is easy whereas
losing important scratched down work when mindlessly closing emacs is
very annoying.

> - not offering to save it anywhere else (even though users may to C-x
> C-w and save it, thereby converting it to a normal, non-persistent
> buffer, and creating an empty *scratch* buffer automatically).

And I would enable auto-saving for it, too.

> This would preserve the equivalence to a real-life scratch paper that
> one keeps on one's desk, which will not magically disappear overnight,
> but which may be filed somewhere else when needed.

I agree.

> Oh, and it should be in text-mode, because most users will not want to
> hack Elisp.

Probably, but I think it would be good if the mode was specified by a
variable, e.g. `scratch-buffer-mode' which defaulted to text-mode. So
users could easily configure what mode they want to use.

Bye,
Tassilo

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:50           ` Tassilo Horn
@ 2007-07-17 16:00             ` Johan Bockgård
  2007-07-17 16:04             ` David Reitter
  2007-07-17 18:42             ` Alfred M. Szmidt
  2 siblings, 0 replies; 218+ messages in thread
From: Johan Bockgård @ 2007-07-17 16:00 UTC (permalink / raw)
  To: emacs-devel

Tassilo Horn <tassilo@member.fsf.org> writes:

> Probably, but I think it would be good if the mode was specified by a
> variable, e.g. `scratch-buffer-mode' which defaulted to text-mode. So
> users could easily configure what mode they want to use.

initial-major-mode is a variable defined in `startup.el'.
Its value is 
lisp-interaction-mode


Documentation:
Major mode command symbol to use for the initial `*scratch*' buffer.

You can customize this variable.

-- 
Johan Bockgård

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:28         ` David Reitter
  2007-07-17 15:50           ` Tassilo Horn
@ 2007-07-17 16:02           ` David Kastrup
  2007-07-17 16:10             ` David Reitter
  2007-07-18 20:53             ` Richard Stallman
  2007-07-17 18:42           ` Alfred M. Szmidt
  2007-07-18 14:11           ` Richard Stallman
  3 siblings, 2 replies; 218+ messages in thread
From: David Kastrup @ 2007-07-17 16:02 UTC (permalink / raw)
  To: David Reitter; +Cc: kfogel, ams, emacs-devel, rms, sdl.web

David Reitter <david.reitter@gmail.com> writes:

> On 17 Jul 2007, at 16:05, Richard Stallman wrote:
>
>>     Wouldn't it be smarter to make the initial splash screen the
>> current buffer when Emacs starts instead?  It would make sense for
>> that to be read-only, and when one does C-x C-q, it could for
>> example clear it and toggle the read-only status of the buffer (with
>> a brief note in the initial splash screen that one can do C-x C-q to
>> convert it into a "scratch" buffer).
>> It is an interesting idea.  What do others think?
>
> This will make Emacs even more difficult to use for new or occasional
> users. They would need to know a key combination just to get started.
> And it would be much more annoying than the current situation.
>
> What's wrong with
>
> - automatically saving *scratch* in a place other than ~/ (where it is
> out of the way) via auto-save and before exiting Emacs, without any
> user interaction

That it doesn't work when one has more than one Emacs active at one
time.  It is not like we have not been through that already.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:50           ` Tassilo Horn
  2007-07-17 16:00             ` Johan Bockgård
@ 2007-07-17 16:04             ` David Reitter
  2007-07-17 16:57               ` Tassilo Horn
  2007-07-17 18:42             ` Alfred M. Szmidt
  2 siblings, 1 reply; 218+ messages in thread
From: David Reitter @ 2007-07-17 16:04 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

On 17 Jul 2007, at 16:50, Tassilo Horn wrote:

>> Oh, and it should be in text-mode, because most users will not  
>> want to
>> hack Elisp.
>
> Probably, but I think it would be good if the mode was specified by a
> variable, e.g. `scratch-buffer-mode' which defaulted to text-mode. So
> users could easily configure what mode they want to use.

It already is, `initial-major-mode'. People could set it back to  
`lisp-interaction-mode' when needed.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 16:02           ` David Kastrup
@ 2007-07-17 16:10             ` David Reitter
  2007-07-18 20:53             ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: David Reitter @ 2007-07-17 16:10 UTC (permalink / raw)
  To: David Kastrup; +Cc: kfogel, ams, emacs-devel, rms, sdl.web

On 17 Jul 2007, at 17:02, David Kastrup wrote:

>  That it doesn't work when one has more than one Emacs active at one
> time.  It is not like we have not been through that already.

Then deal with that problem, e.g. by asking the user "scratch file  
changed on disk - really save?" at the end of the session.

One could even synchronize the buffer across sessions (automatic  
revert-buffer when needed). Are there no modes for collaborative  
editing around?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:05       ` Richard Stallman
  2007-07-17 15:28         ` David Reitter
@ 2007-07-17 16:36         ` Chong Yidong
  2007-07-18 20:53           ` Richard Stallman
  2007-07-17 17:48         ` Drew Adams
  2 siblings, 1 reply; 218+ messages in thread
From: Chong Yidong @ 2007-07-17 16:36 UTC (permalink / raw)
  To: rms; +Cc: kfogel, ams, sdl.web, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Wouldn't it be smarter to make the initial splash screen the current
>     buffer when Emacs starts instead?  It would make sense for that to be
>     read-only, and when one does C-x C-q, it could for example clear it
>     and toggle the read-only status of the buffer (with a brief note in
>     the initial splash screen that one can do C-x C-q to convert it into a
>     "scratch" buffer).
>
> It is an interesting idea.  What do others think?

What's wrong with my original suggestion?

  (i) offer an option to adopt the Emacs 22 behavior for the *scratch*
  buffer, i.e. with buffer-offer-save and auto-save disabled, and (ii)
  delete the auto-save file if the user answers "no" when asked if
  *scratch* should be saved.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 16:04             ` David Reitter
@ 2007-07-17 16:57               ` Tassilo Horn
  2007-07-17 19:37                 ` Robert J. Chassell
  0 siblings, 1 reply; 218+ messages in thread
From: Tassilo Horn @ 2007-07-17 16:57 UTC (permalink / raw)
  To: emacs-devel

David Reitter <david.reitter@gmail.com> writes:

Hi David,

>>> Oh, and it should be in text-mode, because most users will not want
>>> to hack Elisp.
>>
>> Probably, but I think it would be good if the mode was specified by a
>> variable, e.g. `scratch-buffer-mode' which defaulted to text-mode. So
>> users could easily configure what mode they want to use.
>
> It already is, `initial-major-mode'. People could set it back to
> lisp-interaction-mode' when needed.

Ah, then I'm satisfied with all your proposals.

Bye,
Tassilo

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-17 15:05       ` Richard Stallman
  2007-07-17 15:28         ` David Reitter
  2007-07-17 16:36         ` Chong Yidong
@ 2007-07-17 17:48         ` Drew Adams
  2007-07-18 20:29           ` Juri Linkov
  2007-07-18 20:53           ` Richard Stallman
  2 siblings, 2 replies; 218+ messages in thread
From: Drew Adams @ 2007-07-17 17:48 UTC (permalink / raw)
  To: rms, ams; +Cc: kfogel, sdl.web, emacs-devel

>     Wouldn't it be smarter to make the initial splash screen the current
>     buffer when Emacs starts instead?  It would make sense for that to be
>     read-only, and when one does C-x C-q, it could for example clear it
>     and toggle the read-only status of the buffer (with a brief note in
>     the initial splash screen that one can do C-x C-q to convert it into a
>     "scratch" buffer).
>
> It is an interesting idea.  What do others think?

There are two different questions: (1) what to do about saving *scratch*,
and (2) what to show/visit when Emacs is started.

1. Wrt #1, I agree with some others that *scratch* should not be read-only,
and it should not be automatically saved -  it is a scratch pad. And I think
you should not be asked whether you want to save it - "scratch" means
scratch, just as "toss" means toss. IOW, I prefer the traditional behavior.
I don't feel strongly about this, however.

I figure that you can use *scratch* without expecting to save or be reminded
about saving, or else you can visit a new file, in which case you are
reminded about saving. You also have the option, if you change your mind, of
using `C-x C-w' to save *scratch* to a file. If you want a file named
*scratch* from the beginning, then use `C-x C-f *scratch*' and set the mode
to `lisp-interaction-mode'. I use *scratch* rarely - I usually open a
throwaway file foo.el.


2. Wrt #2, I prefer my idea of having a user option, `visit-on-startup', to
specify the startup behavior. The default value could be whatever you like,
but users should be able to customize it. I personally prefer that the
default behavior be to visit a directory with Dired, and that the default
directory be `~/':

(defcustom visit-on-startup "~/"
  "What Emacs visits initially."
  :type '(choice
          (directory :tag "Directory"        :value "~/")
          (file      :tag "File"             :value "~/new.txt")
          (const     :tag "*scratch* buffer" :value "*scratch*")
          (const     :tag "Splash screen"    nil))
  :group 'emacs)

Note that if you visit a file or directory first, `C-x b' will quickly give
you *scratch*. IMO, *scratch* should definitely not be the default.

If the value is nil, then the current behavior is used: show the splash
screen. I suspect that you (RMS) will want the default value to be nil.

If you (RMS) in fact want the splash screen to _always_ show at first, then
we can eliminate the nil value, and `visit-on-startup' could then also
determine what is shown after the splash screen disappears (instead of
always showing *scratch*):

(defcustom visit-on-startup "~/"
  "What Emacs visits after the start-up splash screen."
  :type '(choice
          (directory :tag "Directory"        :value "~/")
          (file      :tag "File"             :value "~/new.txt")
          (const     :tag "*scratch* buffer" :value "*scratch*"))
  :group 'emacs)

The code that uses `visit-on-startup' could do something like this, when the
splash screen goes bye-bye:

(if (string= "*scratch*" visit-on-startup)
    (switch-to-buffer "*scratch*"))
  (find-file visit-on-startup))

If it's deemed important, we could have two different choices for a startup
file: `file' (new or existing) and `new-file' (new only). That way, a user
could be sure to start with a new file if s?he wanted - the name could add
"<2>" etc. as needed. BTW, is (file :must-match nil) allowed in a `choice'?
I see only (file :must-match t) documented.


3. Related to #1
: We could have a user option that is an alist of buffer names. When you
quit Emacs or kill such a buffer, the buffer is either automatically saved
or you are prompted to save it. The alist keys would be buffer names and the
values would be either `ask' or a file name (absolute or relative).

Those who want to save *scratch* should then be able to do so either with
prompting or without, and either in the same file each time or in a
different (relative) file, depending on the current default-directory. Those
of us who don't want to save *scratch* would not have an alist entry for it.
I'd argue for the default value of the option to be nil.

Perhaps something such as this exists already, but I'm unaware of it.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:50           ` Tassilo Horn
  2007-07-17 16:00             ` Johan Bockgård
  2007-07-17 16:04             ` David Reitter
@ 2007-07-17 18:42             ` Alfred M. Szmidt
  2007-07-17 19:50               ` Tassilo Horn
  2 siblings, 1 reply; 218+ messages in thread
From: Alfred M. Szmidt @ 2007-07-17 18:42 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

   >>     Wouldn't it be smarter to make the initial splash screen the
   >>     current buffer when Emacs starts instead?  It would make
   >>     sense for that to be read-only, and when one does C-x C-q,
   >>     it could for example clear it and toggle the read-only
   >>     status of the buffer (with a brief note in the initial
   >>     splash screen that one can do C-x C-q to convert it into a
   >>     "scratch" buffer).
   >>
   >> It is an interesting idea.  What do others think?
   >
   > This will make Emacs even more difficult to use for new or
   > occasional users. They would need to know a key combination just
   > to get started.  And it would be much more annoying than the
   > current situation.

   Then all users that like the scratch buffer as it is right now
   would need to `C-x C-q' on startup. And what if you don't want the
   splash-screen at all?

The splash screen can always be disabled using inhibit-splash-screen.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:28         ` David Reitter
  2007-07-17 15:50           ` Tassilo Horn
  2007-07-17 16:02           ` David Kastrup
@ 2007-07-17 18:42           ` Alfred M. Szmidt
  2007-07-17 18:55             ` David Kastrup
                               ` (2 more replies)
  2007-07-18 14:11           ` Richard Stallman
  3 siblings, 3 replies; 218+ messages in thread
From: Alfred M. Szmidt @ 2007-07-17 18:42 UTC (permalink / raw)
  To: David Reitter; +Cc: kfogel, emacs-devel, rms, sdl.web

   >     Wouldn't it be smarter to make the initial splash screen the
   >     current buffer when Emacs starts instead?  It would make
   >     sense for that to be read-only, and when one does C-x C-q, it
   >     could for example clear it and toggle the read-only status of
   >     the buffer (with a brief note in the initial splash screen
   >     that one can do C-x C-q to convert it into a "scratch"
   >     buffer).
   >
   > It is an interesting idea.  What do others think?

   This will make Emacs even more difficult to use for new or
   occasional users. They would need to know a key combination just to
   get started.  And it would be much more annoying than the current
   situation.

That would be documented in the splash screen.  Right now when a new
user does anything (click the mouse, hit a key) when emacs starts up,
the splash screen vanishes and you get the unwelcoming text of the
scratch buffer.  Using C-c C-q to make the scratch buffer writable is
not required to use emacs; it is there for those who wish to have a
scratch buffer.

   What's wrong with

   - automatically saving *scratch* in a place other than ~/ (where it
     is out of the way) via auto-save and before exiting Emacs,
     without any user interaction

As other have pointed out, this won't work when you have multiple
emacses running.

   - automatically restoring *scratch* from that file upon startup
     (i.e.  making it persistent)

This defeats the whole concept of *scratch* IMHO.

   - not offering to save it anywhere else (even though users may to C-x  
     C-w and save it, thereby converting it to a normal, non-persistent  
     buffer, and creating an empty *scratch* buffer automatically).

   This would preserve the equivalence to a real-life scratch paper
   that one keeps on one's desk, which will not magically disappear
   overnight, but which may be filed somewhere else when needed.

   It would be unobtrusive and solve the original problem.

I disagree, and strongly.  It defeats the whole concept of a scratch
buffer.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:42           ` Alfred M. Szmidt
@ 2007-07-17 18:55             ` David Kastrup
  2007-07-17 20:31               ` Mathias Dahl
  2007-07-17 21:56               ` Jason Rumney
  2007-07-17 19:59             ` Tassilo Horn
  2007-07-18 20:53             ` Richard Stallman
  2 siblings, 2 replies; 218+ messages in thread
From: David Kastrup @ 2007-07-17 18:55 UTC (permalink / raw)
  To: ams; +Cc: kfogel, David Reitter, rms, sdl.web, emacs-devel

"Alfred M. Szmidt" <ams@gnu.org> writes:

[...]

> That would be documented in the splash screen.  Right now when a new
> user does anything (click the mouse, hit a key) when emacs starts up,
> the splash screen vanishes and you get the unwelcoming text of the
> scratch buffer.  Using C-c C-q to make the scratch buffer writable is
> not required to use emacs; it is there for those who wish to have a
> scratch buffer.

For what it's worth: I think I would like this sort of setup very
much.  It is quite convenient.  However, there is no real logic in
replacing the buffer contents when the buffer is turned r/w, and it
does not address the original problem, namely that people seem to
blindly type into an editor they have started without any options and
complain when their work gets lost in this manner.

Now I personally don't want an "unnamed buffer" for starting stuff,
not least of all because it won't be in a suitable mode for doing so.

If the original splash screen persists read-only, however, it will
beep at any attempt of modifying it, so chances are people will read
what they should do.  If the splash screen offers "open or visit a new
file before starting to type", perhaps it will not be all bad.  And
maybe people will do it.

Sure, it means changing habits, but without a file extension to go by,
Emacs has no useful defaults for a file, anyway.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 16:57               ` Tassilo Horn
@ 2007-07-17 19:37                 ` Robert J. Chassell
  2007-07-17 22:15                   ` David Reitter
  2007-07-18 14:11                   ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Robert J. Chassell @ 2007-07-17 19:37 UTC (permalink / raw)
  To: emacs-devel

Please remember to

 1. provide a variable to prevent automatic saving of the *scratch*
    buffer when you exit;

 2. provide a variable to set the *scratch* buffer's initial major mode
    to lisp-interaction-mode.

Then I can put those settings in my .emacs file and forget about them.
Various people, including me, use the *scratch* buffer as intended and
as documented.  Indeed, the initial-scratch-message says `This buffer
is for notes you don't want to save ...' and the buffer is in
lisp-interaction-mode.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:42             ` Alfred M. Szmidt
@ 2007-07-17 19:50               ` Tassilo Horn
  2007-07-17 20:01                 ` Alfred M. Szmidt
  0 siblings, 1 reply; 218+ messages in thread
From: Tassilo Horn @ 2007-07-17 19:50 UTC (permalink / raw)
  To: emacs-devel

"Alfred M. Szmidt" <ams@gnu.org> writes:

Hi Alfred,

>    > This will make Emacs even more difficult to use for new or
>    > occasional users. They would need to know a key combination just
>    > to get started.  And it would be much more annoying than the
>    > current situation.
>
>    Then all users that like the scratch buffer as it is right now
>    would need to `C-x C-q' on startup. And what if you don't want the
>    splash-screen at all?
>
> The splash screen can always be disabled using inhibit-splash-screen.

Yes, I know that. But how would I get a *scratch* buffer if I've set
inhibit-splash-screen to t? Then I cannot read the "Type C-x C-q to get
a scratch buffer" message.

Well, of course I can add the command C-x C-q is bound to in the splash
screen to my ~/.emacs, but I like the fact that *scratch* is there by
default. Else a new user possibly won't find out how useful it is.

Bye,
Tassilo
-- 
A morning without coffee is like something without something else.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:42           ` Alfred M. Szmidt
  2007-07-17 18:55             ` David Kastrup
@ 2007-07-17 19:59             ` Tassilo Horn
  2007-07-17 20:28               ` Andreas Schwab
  2007-07-18 20:53               ` Richard Stallman
  2007-07-18 20:53             ` Richard Stallman
  2 siblings, 2 replies; 218+ messages in thread
From: Tassilo Horn @ 2007-07-17 19:59 UTC (permalink / raw)
  To: emacs-devel

"Alfred M. Szmidt" <ams@gnu.org> writes:

Hi Alfred,

>    What's wrong with
>
>    - automatically saving *scratch* in a place other than ~/ (where it
>      is out of the way) via auto-save and before exiting Emacs,
>      without any user interaction
>
> As other have pointed out, this won't work when you have multiple
> emacses running.

There are other modes facing the same problem. For example
`desktop-save-mode' uses a lock file and asks the user what to do.

And when multy-tty gets merged there are no good reasons to start
multiple emacsen anyway.

>    - automatically restoring *scratch* from that file upon startup
>      (i.e.  making it persistent)
>
> This defeats the whole concept of *scratch* IMHO.

I don't think so. If you scratch up some notes on a paper they will
still be there when you return to the office. (Well, maybe that depends
on the charwomen.)

And the effort to delete the contents of a buffer is not really a
matter.

>    - not offering to save it anywhere else (even though users may to C-x  
>      C-w and save it, thereby converting it to a normal, non-persistent  
>      buffer, and creating an empty *scratch* buffer automatically).
>
>    This would preserve the equivalence to a real-life scratch paper
>    that one keeps on one's desk, which will not magically disappear
>    overnight, but which may be filed somewhere else when needed.
>
>    It would be unobtrusive and solve the original problem.
>
> I disagree, and strongly.  It defeats the whole concept of a scratch
> buffer.

Well, I would like that new behavior. So users could use *scratch* to
quickly write down some todos that need to be done the next day.

Bye,
Tassilo
-- 
Chuck Norris can skeletize a cow in two minutes. 

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 19:50               ` Tassilo Horn
@ 2007-07-17 20:01                 ` Alfred M. Szmidt
  0 siblings, 0 replies; 218+ messages in thread
From: Alfred M. Szmidt @ 2007-07-17 20:01 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

   >    > This will make Emacs even more difficult to use for new or
   >    > occasional users. They would need to know a key combination
   >    > just to get started.  And it would be much more annoying
   >    > than the current situation.
   >
   >    Then all users that like the scratch buffer as it is right now
   >    would need to `C-x C-q' on startup. And what if you don't want
   >    the splash-screen at all?
   >
   > The splash screen can always be disabled using
   > inhibit-splash-screen.

   Yes, I know that. But how would I get a *scratch* buffer if I've
   set inhibit-splash-screen to t? Then I cannot read the "Type C-x
   C-q to get a scratch buffer" message.

That message could be in the scratch buffer, just like for the
splash-screen.  Infact, inhibit-splash-screen would become unnecessary
with this scheme, the splash-screen would be *scratch*.  One could
then have a inhibit-read-only-splash-screen variable that people could
flip to get what is the current behaviour.  

   Well, of course I can add the command C-x C-q is bound to in the splash
   screen to my ~/.emacs, but I like the fact that *scratch* is there by
   default. Else a new user possibly won't find out how useful it is.

New users have even less possibility to learn about emacs when the
splash-screen vanishes as soon as you do anything.  Making *scratch*
equivialent to the splash-screen, would be a good way to solve this,
and since it is read-only, those who by accident wish to use *scratch*
for non-scartch data would get beeps.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 19:59             ` Tassilo Horn
@ 2007-07-17 20:28               ` Andreas Schwab
  2007-07-18  9:22                 ` Jan Djärv
  2007-07-18 20:53               ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Andreas Schwab @ 2007-07-17 20:28 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

Tassilo Horn <tassilo@member.fsf.org> writes:

> And when multy-tty gets merged there are no good reasons to start
> multiple emacsen anyway.

There still is.  Emacs is not multi-threaded.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:55             ` David Kastrup
@ 2007-07-17 20:31               ` Mathias Dahl
  2007-07-17 21:56               ` Jason Rumney
  1 sibling, 0 replies; 218+ messages in thread
From: Mathias Dahl @ 2007-07-17 20:31 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, David Reitter, emacs-devel, kfogel, ams, sdl.web

> If the original splash screen persists read-only, however, it will
> beep at any attempt of modifying it, so chances are people will read
> what they should do.  If the splash screen offers "open or visit a new
> file before starting to type", perhaps it will not be all bad.  And
> maybe people will do it.

Another popular editor, vim, seems to work just like that. No way I
can edit as a new user of vim without following the on-screen
instructions.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:55             ` David Kastrup
  2007-07-17 20:31               ` Mathias Dahl
@ 2007-07-17 21:56               ` Jason Rumney
  2007-07-18  0:35                 ` Johan Bockgård
  1 sibling, 1 reply; 218+ messages in thread
From: Jason Rumney @ 2007-07-17 21:56 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, David Reitter, emacs-devel, kfogel, ams, sdl.web

David Kastrup wrote:
> However, there is no real logic in
> replacing the buffer contents when the buffer is turned r/w

Maybe another binding could be used, C-c C-c seems to be commonly used
by mode specific "I've finished with this" type commands. The point is
to force new users into consciously choosing what they want to do next
(edit something they might want to save, or create a *scratch* buffer in
Lisp Interaction mode for its traditional purpose. More advanced users
can customize inhibit-splash-screen to avoid the extra keypresses.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 19:37                 ` Robert J. Chassell
@ 2007-07-17 22:15                   ` David Reitter
  2007-07-18 14:11                   ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: David Reitter @ 2007-07-17 22:15 UTC (permalink / raw)
  To: bob, mathias.dahl; +Cc: emacs- devel

On 17 Jul 2007, at 20:37, Robert J. Chassell wrote:

>  1. provide a variable to prevent automatic saving of the *scratch*
>     buffer when you exit;

Can we implement this as a minor mode, which could be used for other  
buffers as well? That way, users could define further persistent  
buffers that would exist across Emacs sessions. I'd find that useful.

>  2. provide a variable to set the *scratch* buffer's initial major  
> mode
>     to lisp-interaction-mode.

`initial-major-mode' already exists and does just that.

> Indeed, the initial-scratch-message says `This buffer
> is for notes you don't want to save ...' and the buffer is in
> lisp-interaction-mode.

I just don't get why people would take "notes" in lisp-interaction-mode.

Mathias Dahl wrote:

> Another popular editor, vim, seems to work just like that. No way I
> can edit as a new user of vim without following the on-screen
> instructions.

Is that a good thing? I don't think so.

Alfred M Szmidt wrote:

> That message could be in the scratch buffer, just like for the
> splash-screen.  Infact, inhibit-splash-screen would become unnecessary
> with this scheme, the splash-screen would be *scratch*.  One could
> then have a inhibit-read-only-splash-screen variable that people could
> flip to get what is the current behaviour.

Why so complicated? Perhaps one could show an empty buffer that has  
buffer-offer-save set to t and leave *scratch* the way it is. People  
would then stop using *scratch* for important stuff that should  
really be saved, but they could start writing right away.

In Aquamacs, we don't display a splash screen, but we display the GNU  
message and copyrights in the Echo area. People get a *scratch*  
buffer in text-mode with buffer-offer-save. I think this gets the  
message across and still allows people to begin their work. But  
displaying an empty buffer as described before might be even better,  
if one really doesn't like the idea of a persistent scratch pad.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 21:56               ` Jason Rumney
@ 2007-07-18  0:35                 ` Johan Bockgård
  0 siblings, 0 replies; 218+ messages in thread
From: Johan Bockgård @ 2007-07-18  0:35 UTC (permalink / raw)
  To: emacs-devel

Jason Rumney <jasonr@gnu.org> writes:

> More advanced users can customize inhibit-splash-screen to avoid the
> extra keypresses.

FWIW, I use scratch buffers in `emacs -Q' several times a day. I hope
that they will work as traditional in this situation. (As -Q implies
--no-splash, maybe the proposed scheme takes care of that
automatically.)

-- 
Johan Bockgård

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 20:28               ` Andreas Schwab
@ 2007-07-18  9:22                 ` Jan Djärv
  2007-07-18 10:23                   ` Tassilo Horn
  0 siblings, 1 reply; 218+ messages in thread
From: Jan Djärv @ 2007-07-18  9:22 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Tassilo Horn, emacs-devel



Andreas Schwab skrev:
> Tassilo Horn <tassilo@member.fsf.org> writes:
> 
>> And when multy-tty gets merged there are no good reasons to start
>> multiple emacsen anyway.
> 
> There still is.  Emacs is not multi-threaded.
> 

I run several Emacs instances all the time so I can keep different projects 
separate and they can save desktop to different files.  I don't think 
multi-tty changes this.

	Jan D.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18  9:22                 ` Jan Djärv
@ 2007-07-18 10:23                   ` Tassilo Horn
  2007-07-18 10:56                     ` Jan Djärv
  0 siblings, 1 reply; 218+ messages in thread
From: Tassilo Horn @ 2007-07-18 10:23 UTC (permalink / raw)
  To: emacs-devel

Jan Djärv <jan.h.d@swipnet.se> writes:

Hi Jan,

> I run several Emacs instances all the time so I can keep different
> projects separate and they can save desktop to different files.

Maybe filesets are something useful for you.

,----[ (info "(emacs)Filesets") ]
| If you regularly edit a certain group of files, you can define them as
| a "fileset".
`----

Bye,
Tassilo
-- 
When Bruce Banner  gets mad, he turns into the Hulk.  When the Hulk gets
mad, he turns into Chuck Norris.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 10:23                   ` Tassilo Horn
@ 2007-07-18 10:56                     ` Jan Djärv
  0 siblings, 0 replies; 218+ messages in thread
From: Jan Djärv @ 2007-07-18 10:56 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

Tassilo Horn skrev:
> Jan Djärv <jan.h.d@swipnet.se> writes:
> 
> Hi Jan,
> 
>> I run several Emacs instances all the time so I can keep different
>> projects separate and they can save desktop to different files.
> 
> Maybe filesets are something useful for you.
> 
> ,----[ (info "(emacs)Filesets") ]
> | If you regularly edit a certain group of files, you can define them as
> | a "fileset".
> `----
> 

No, it is a different thing.  Say you are editing several similar source
trees, for example, Emacs HEAD, Emacs BASE_22, Emacs Unicode-2.  I wan't
different TAGS for them, different saved dekstop files, different compile
commands.  Things like speedbar are also faster in several instances instead
of moving around between trees.  Plus if there are similar files, remembering
which was xterm.c, xterm.c<2> and xterm.c<3> takes some effort.

In my day to day job (which isn't Emacs BTW :-) I usually work on 2-4 similar
branches.

	Jan D.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 19:37                 ` Robert J. Chassell
  2007-07-17 22:15                   ` David Reitter
@ 2007-07-18 14:11                   ` Richard Stallman
  2007-07-18 15:53                     ` Robert J. Chassell
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 14:11 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

     2. provide a variable to set the *scratch* buffer's initial major mode
	to lisp-interaction-mode.

initial-major-mode.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 15:28         ` David Reitter
                             ` (2 preceding siblings ...)
  2007-07-17 18:42           ` Alfred M. Szmidt
@ 2007-07-18 14:11           ` Richard Stallman
  3 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 14:11 UTC (permalink / raw)
  To: David Reitter; +Cc: kfogel, ams, sdl.web, emacs-devel

    - automatically saving *scratch* in a place other than ~/ (where it  
    is out of the way)
       via auto-save and before exiting Emacs, without any user interaction

That is a good idea, but remember that Emacs needs to create the directory
if it doesn't exist.  So just setting auto-save-file-name isn't quite enough.

    - automatically restoring *scratch* from that file upon startup (i.e.  
    making it persistent)

That could be good, but there should be a message saying
"Type M-x erase-buffer to clear this out."

    - not offering to save it anywhere else

Sure.

    Can we implement this as a minor mode, which could be used for other  
    buffers as well? That way, users could define further persistent  
    buffers that would exist across Emacs sessions. I'd find that useful.

That sounds good.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 14:11                   ` Richard Stallman
@ 2007-07-18 15:53                     ` Robert J. Chassell
  0 siblings, 0 replies; 218+ messages in thread
From: Robert J. Chassell @ 2007-07-18 15:53 UTC (permalink / raw)
  To: emacs-devel

         2. provide a variable to set the *scratch* buffer's initial
            major mode to lisp-interaction-mode.

    initial-major-mode.

 * The name of the variable initial-major-mode could mislead; and,

 * the if clause that implements initial-major-mode fails unless the
   `*scratch*' buffer is in Fundamental mode.  

   (That is what the clause should do.  It is documented.  Normally,
   the buffer is in Lisp Interaction mode.  Unfortunately, the Emacs
   Lisp for the clause tells us that one of the proposals, as written,
   prevents resetting the mode of the `*scratch*' buffer.)

Firstly, the documentation for the `*scratch*' buffer says

    Major mode command symbol to use for the initial `*scratch*' buffer.

which suggests the possibility that `initial' has priority over `*scratch*'.

Secondly, emacs/lisp/startup.el says,

  ;; If *scratch* exists and init file didn't change its mode, initialize it.
  (if (get-buffer "*scratch*")
      (with-current-buffer "*scratch*"
	(if (eq major-mode 'fundamental-mode)
	    (funcall initial-major-mode))
	;; Don't lose text that users type in *scratch*.
	(setq buffer-offer-save t)
	(auto-save-mode 1)))

If the major mode is Text, the clause will not change the major mode
to the value of initial-major-mode.

There are many people who never bother to read anything.  I understand
that.  Also, I understand that the goal is to change Emacs so they do
not lose because of their lack of reading.  That is fine.

I just want to make sure that I can return to the traditional,
documented intent of `*scratch*'.  Lightning burnt out a mother board
last summer and even though I have surge protectors, I am turning off
and unplugging this computer when the weather looks dicey and I am
going away or to sleep.  Also, I frequently test a new CVS snapshot of
Emacs by doing work on it.  So I am often running into `*scratch*'
buffer annoyance and would like to end that.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 17:48         ` Drew Adams
@ 2007-07-18 20:29           ` Juri Linkov
  2007-07-19  0:00             ` Drew Adams
                               ` (3 more replies)
  2007-07-18 20:53           ` Richard Stallman
  1 sibling, 4 replies; 218+ messages in thread
From: Juri Linkov @ 2007-07-18 20:29 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

> 2. Wrt #2, I prefer my idea of having a user option, `visit-on-startup', to
> specify the startup behavior. The default value could be whatever you like,
> but users should be able to customize it. I personally prefer that the
> default behavior be to visit a directory with Dired, and that the default
> directory be `~/':
>
> (defcustom visit-on-startup "~/"
>   "What Emacs visits initially."
>   :type '(choice
>           (directory :tag "Directory"        :value "~/")
>           (file      :tag "File"             :value "~/new.txt")
>           (const     :tag "*scratch* buffer" :value "*scratch*")
>           (const     :tag "Splash screen"    nil))
>   :group 'emacs)

The default depends on the question what is Emacs?  If Emacs is a file
browser then the default should be to visit the HOME directory with Dired.
If Emacs is a web browser then the default should be to visit its home
page.  If Emacs is a Lisp interpreter then the default should be the
*scratch* buffer in lisp-interaction-mode (as is supposed now).

Since Emacs can do everything then the splash screen could contain links
to the most common initial actions, e.g.:

[Visit home directory]
[Open new file]
[Open buffer for notes you don't want to save]
[Emacs Tutorial]
[Emacs FAQ]
[Read the Emacs Manual]
...

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 17:48         ` Drew Adams
  2007-07-18 20:29           ` Juri Linkov
@ 2007-07-18 20:53           ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 20:53 UTC (permalink / raw)
  To: Drew Adams; +Cc: kfogel, ams, sdl.web, emacs-devel

    2. Wrt #2, I prefer my idea of having a user option, `visit-on-startup', to
    specify the startup behavior.

I am in favor of this option -- would someone please add it?

However, that doesn't solve the problem of making *scratch* work
conveniently.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 16:02           ` David Kastrup
  2007-07-17 16:10             ` David Reitter
@ 2007-07-18 20:53             ` Richard Stallman
  2007-07-18 21:28               ` David Kastrup
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 20:53 UTC (permalink / raw)
  To: David Kastrup; +Cc: kfogel, david.reitter, ams, sdl.web, emacs-devel

    > - automatically saving *scratch* in a place other than ~/ (where it is
    > out of the way) via auto-save and before exiting Emacs, without any
    > user interaction

    That it doesn't work when one has more than one Emacs active at one
    time.  It is not like we have not been through that already.

It is easy to solve that by making the file name depend on the pid and
host name.

The code for reloading previous scratch buffers files will need to
take a certain amount of care to DTRT when there is more than one.
Including perhaps sometimes asking the user questions -- but we want
to try to avoid that if we can.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 18:42           ` Alfred M. Szmidt
  2007-07-17 18:55             ` David Kastrup
  2007-07-17 19:59             ` Tassilo Horn
@ 2007-07-18 20:53             ` Richard Stallman
  2 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 20:53 UTC (permalink / raw)
  To: ams; +Cc: kfogel, david.reitter, sdl.web, emacs-devel

       - automatically restoring *scratch* from that file upon startup
	 (i.e.  making it persistent)

    This defeats the whole concept of *scratch* IMHO.

The concept of *scratch* is that it is a place to put notes
that are not important enough to put in a specific file.
I see no conflict between this concept and preserving it from
session to session.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 19:59             ` Tassilo Horn
  2007-07-17 20:28               ` Andreas Schwab
@ 2007-07-18 20:53               ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 20:53 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

    > As other have pointed out, this won't work when you have multiple
    > emacses running.

    There are other modes facing the same problem. For example
    `desktop-save-mode' uses a lock file and asks the user what to do.

Maybe the same approach would be good for preserving *scratch*.  But
this suggests another idea: ask the question just once and have it
apply to all features to preserve anything and everything from a
previous session.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-17 16:36         ` Chong Yidong
@ 2007-07-18 20:53           ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-18 20:53 UTC (permalink / raw)
  To: Chong Yidong; +Cc: kfogel, ams, sdl.web, emacs-devel

    What's wrong with my original suggestion?

      (i) offer an option to adopt the Emacs 22 behavior for the *scratch*
      buffer, i.e. with buffer-offer-save and auto-save disabled, and (ii)
      delete the auto-save file if the user answers "no" when asked if
      *scratch* should be saved.

I understand the first point but not the second.

Regarding the first point, I am not strongly against such an option,
but that is a side issue.  The main issue is to make the default
behavior convenient.  Once we do that, the option may not be needed.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 20:53             ` Richard Stallman
@ 2007-07-18 21:28               ` David Kastrup
  2007-07-19 21:20                 ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-18 21:28 UTC (permalink / raw)
  To: rms; +Cc: kfogel, david.reitter, ams, sdl.web, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     > - automatically saving *scratch* in a place other than ~/ (where it is
>     > out of the way) via auto-save and before exiting Emacs, without any
>     > user interaction
>
>     That it doesn't work when one has more than one Emacs active at one
>     time.  It is not like we have not been through that already.
>
> It is easy to solve that by making the file name depend on the pid
> and host name.

Which will make those buffers survive into the next session just how?

> The code for reloading previous scratch buffers files will need to
> take a certain amount of care to DTRT when there is more than one.
> Including perhaps sometimes asking the user questions -- but we want
> to try to avoid that if we can.

I think this is a mess asking for trouble.  We are trying to patch
around a problem that comes from some default usage pattern for
single-mode single-session applications.  Emacs with its multiple
major modes and kitchen-sink usefulness is just not suited to this
paradigm.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-18 20:29           ` Juri Linkov
@ 2007-07-19  0:00             ` Drew Adams
  2007-07-19 14:25             ` Mathias Dahl
                               ` (2 subsequent siblings)
  3 siblings, 0 replies; 218+ messages in thread
From: Drew Adams @ 2007-07-19  0:00 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

> > 2. Wrt #2, I prefer my idea of having a user option,
> `visit-on-startup', to
> > specify the startup behavior. The default value could be
> whatever you like,
> > but users should be able to customize it. I personally prefer that the
> > default behavior be to visit a directory with Dired, and that
> the default
> > directory be `~/':
> >
> > (defcustom visit-on-startup "~/"
> >   "What Emacs visits initially."
> >   :type '(choice
> >           (directory :tag "Directory"        :value "~/")
> >           (file      :tag "File"             :value "~/new.txt")
> >           (const     :tag "*scratch* buffer" :value "*scratch*")
> >           (const     :tag "Splash screen"    nil))
> >   :group 'emacs)
>
> The default depends on the question what is Emacs?  If Emacs is a file
> browser then the default should be to visit the HOME directory with Dired.
> If Emacs is a web browser then the default should be to visit its home
> page.  If Emacs is a Lisp interpreter then the default should be the
> *scratch* buffer in lisp-interaction-mode (as is supposed now).
>
> Since Emacs can do everything then the splash screen could contain links
> to the most common initial actions, e.g.:
>
> [Visit home directory]
> [Open new file]
> [Open buffer for notes you don't want to save]
> [Emacs Tutorial]
> [Emacs FAQ]
> [Read the Emacs Manual]
> ...

Good idea: provide for more than just visiting *scratch* or a file or
directory.

But rather than putting a bunch of links on the splash page, we should
define the defcustom in such a way that users can customize it to do the
kinds of things you mention. The doc string and/or the tags of
`visit-on-startup' can make clear the kinds of things you can do.

This would be analogous to defining one's startup page for a Web browser:
some people want it to be Google, some people want it to be `blank', and so
on.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 20:29           ` Juri Linkov
  2007-07-19  0:00             ` Drew Adams
@ 2007-07-19 14:25             ` Mathias Dahl
  2007-07-19 14:45               ` David Kastrup
  2007-07-19 15:44               ` Peter Lee
  2007-07-19 18:28             ` Alfred M. Szmidt
  2007-07-21 17:13             ` Dieter Wilhelm
  3 siblings, 2 replies; 218+ messages in thread
From: Mathias Dahl @ 2007-07-19 14:25 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Drew Adams, emacs-devel

> Since Emacs can do everything then the splash screen could contain links
> to the most common initial actions, e.g.:
>
> [Visit home directory]
> [Open new file]
> [Open buffer for notes you don't want to save]
> [Emacs Tutorial]
> [Emacs FAQ]
> [Read the Emacs Manual]

I like that!

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-19 14:25             ` Mathias Dahl
@ 2007-07-19 14:45               ` David Kastrup
  2007-07-19 15:44               ` Peter Lee
  1 sibling, 0 replies; 218+ messages in thread
From: David Kastrup @ 2007-07-19 14:45 UTC (permalink / raw)
  To: Mathias Dahl; +Cc: Juri Linkov, Drew Adams, emacs-devel

"Mathias Dahl" <mathias.dahl@gmail.com> writes:

>> Since Emacs can do everything then the splash screen could contain links
>> to the most common initial actions, e.g.:
>>
>> [Visit home directory]
>> [Open new file]
>> [Open buffer for notes you don't want to save]
>> [Emacs Tutorial]
>> [Emacs FAQ]
>> [Read the Emacs Manual]
>
> I like that!

Yes.  Yes, oh YES!  I'd like to add

>> [Omit this screen in future when started with a file name]

That makes clear how to get back at the information, it makes clear
that the user will _have_ to read the splash screen before getting rid
of it, and... [Breaking down in tears]

This is so beautiful.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-19 14:25             ` Mathias Dahl
  2007-07-19 14:45               ` David Kastrup
@ 2007-07-19 15:44               ` Peter Lee
  2007-07-20 13:42                 ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Peter Lee @ 2007-07-19 15:44 UTC (permalink / raw)
  To: emacs-devel

>>>> Mathias Dahl writes:

    >> Since Emacs can do everything then the splash screen could contain links
    >> to the most common initial actions, e.g.:
    >> 
    >> [Visit home directory]
    >> [Open new file]
    >> [Open buffer for notes you don't want to save]
    >> [Emacs Tutorial]
    >> [Emacs FAQ]
    >> [Read the Emacs Manual]

    > I like that!

I would like this as well...

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 20:29           ` Juri Linkov
  2007-07-19  0:00             ` Drew Adams
  2007-07-19 14:25             ` Mathias Dahl
@ 2007-07-19 18:28             ` Alfred M. Szmidt
  2007-07-21 17:13             ` Dieter Wilhelm
  3 siblings, 0 replies; 218+ messages in thread
From: Alfred M. Szmidt @ 2007-07-19 18:28 UTC (permalink / raw)
  To: Juri Linkov; +Cc: drew.adams, emacs-devel

   Since Emacs can do everything then the splash screen could contain
   links to the most common initial actions, e.g.:

   [Visit home directory]
   [Open new file]
   [Open buffer for notes you don't want to save]
   [Emacs Tutorial]
   [Emacs FAQ]
   [Read the Emacs Manual]
   ...

And bind C-c C-c or C-x C-q to switch to the *scratch* buffer (or
clear the current buffer, and make it writable).

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 21:28               ` David Kastrup
@ 2007-07-19 21:20                 ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-19 21:20 UTC (permalink / raw)
  To: David Kastrup; +Cc: kfogel, david.reitter, ams, sdl.web, emacs-devel

    > It is easy to solve that by making the file name depend on the pid
    > and host name.

    Which will make those buffers survive into the next session just how?

By default, only one of them can be restored.  Perhaps it should
choose the one with the latest modtime.

Most people only run one Emacs.  For them, this won't be an issue.

    I think this is a mess asking for trouble.  We are trying to patch
    around a problem that comes from some default usage pattern for
    single-mode single-session applications.  Emacs with its multiple
    major modes and kitchen-sink usefulness is just not suited to this
    paradigm.

It's not that bad a mismatch.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-19 15:44               ` Peter Lee
@ 2007-07-20 13:42                 ` Richard Stallman
  2007-07-20 21:01                   ` Drew Adams
  2007-07-21 18:07                   ` Juri Linkov
  0 siblings, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-20 13:42 UTC (permalink / raw)
  To: Peter Lee; +Cc: emacs-devel

	>> Since Emacs can do everything then the splash screen could contain links
	>> to the most common initial actions, e.g.:
	>> 
	>> [Visit home directory]
	>> [Open new file]
	>> [Open buffer for notes you don't want to save]
	>> [Emacs Tutorial]
	>> [Emacs FAQ]
	>> [Read the Emacs Manual]

	> I like that!

    I would like this as well...

Would someone please try implementing this?  They we can see
what it is like.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-20 13:42                 ` Richard Stallman
@ 2007-07-20 21:01                   ` Drew Adams
  2007-07-21  8:54                     ` Mathias Dahl
  2007-07-21 18:07                   ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-07-20 21:01 UTC (permalink / raw)
  To: rms, Peter Lee; +Cc: emacs-devel

> 	>> Since Emacs can do everything then the splash screen
>     >> could contain links
> 	>> to the most common initial actions, e.g.:
> 	>>
> 	>> [Visit home directory]
> 	>> [Open new file]
> 	>> [Open buffer for notes you don't want to save]
> 	>> [Emacs Tutorial]
> 	>> [Emacs FAQ]
> 	>> [Read the Emacs Manual]
>
> Would someone please try implementing this?  They we can see
> what it is like.

How about adding a link at the end: [Customize Startup Screen]?

If you choose this link, you customize `visit-on-startup'. The default value
of `visit-on-startup' could be nil, which means the splash screen (with the
links).

That way, you get the splash screen with the links, by default, and one of
the links lets you set your startup preference. No need to hunt for a way to
customize the startup screen.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-20 21:01                   ` Drew Adams
@ 2007-07-21  8:54                     ` Mathias Dahl
  2007-07-21  9:35                       ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Mathias Dahl @ 2007-07-21  8:54 UTC (permalink / raw)
  To: Drew Adams; +Cc: Peter Lee, rms, emacs-devel

> How about adding a link at the end: [Customize Startup Screen]?

> That way, you get the splash screen with the links, by default, and one of
> the links lets you set your startup preference. No need to hunt for a way to
> customize the startup screen.

A good idea!

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21  8:54                     ` Mathias Dahl
@ 2007-07-21  9:35                       ` David Kastrup
  2007-07-21  9:48                         ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-21  9:35 UTC (permalink / raw)
  To: Mathias Dahl; +Cc: Peter Lee, rms, Drew Adams, emacs-devel

"Mathias Dahl" <mathias.dahl@gmail.com> writes:

>> How about adding a link at the end: [Customize Startup Screen]?
>
>> That way, you get the splash screen with the links, by default, and one of
>> the links lets you set your startup preference. No need to hunt for a way to
>> customize the startup screen.
>
> A good idea!

We should use the startup screen group for that with the same
interface as Emacs/Options/Browse Customization groups.  In that
manner, people get kicked into using the customize browser right from
the start.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21  9:35                       ` David Kastrup
@ 2007-07-21  9:48                         ` David Kastrup
  2007-07-21 15:14                           ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-21  9:48 UTC (permalink / raw)
  To: Mathias Dahl; +Cc: Peter Lee, rms, Drew Adams, emacs-devel

David Kastrup <dak@gnu.org> writes:

> "Mathias Dahl" <mathias.dahl@gmail.com> writes:
>
>>> How about adding a link at the end: [Customize Startup Screen]?
>>
>>> That way, you get the splash screen with the links, by default, and one of
>>> the links lets you set your startup preference. No need to hunt for a way to
>>> customize the startup screen.
>>
>> A good idea!
>
> We should use the startup screen group for that with the same
> interface as Emacs/Options/Browse Customization groups.  In that
> manner, people get kicked into using the customize browser right from
> the start.

To clarify: the link [Customize Startup Screen] should enter the
customize browser in the right customization group.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-21  9:48                         ` David Kastrup
@ 2007-07-21 15:14                           ` Drew Adams
  2007-07-21 15:46                             ` David Kastrup
  2007-07-22  1:49                             ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Drew Adams @ 2007-07-21 15:14 UTC (permalink / raw)
  To: David Kastrup, Mathias Dahl; +Cc: Peter Lee, rms, emacs-devel

> >>> How about adding a link at the end: [Customize Startup Screen]?
> >>
> >>> That way, you get the splash screen with the links, by
> >>> default, and one of the links lets you set your startup
> >>> preference. No need to hunt for a way to customize the
> >>> startup screen.
> >>
> >> A good idea!
> >
> > We should use the startup screen group for that with the same
> > interface as Emacs/Options/Browse Customization groups.  In that
> > manner, people get kicked into using the customize browser right from
> > the start.
>
> To clarify: the link [Customize Startup Screen] should enter the
> customize browser in the right customization group.

Thanks for the clarification; I understood something different from your
first post.

Even so, I'm not too sure what you mean. I think you are saying, in essence,
that we should open the book to the part of the table of contents that shows
the title of the target section, rather than opening the book directly to
that target section. The section title in the TOC is a link to the target,
but this is still an indirection.

Here are possible Customize destinations for this:

1. Open to the *Customize Browser* buffer.  I think you're proposing this.

2. Open to the *Customize Group* buffer (say *Customize Group:
convenience*).

3. Open to the *Customize Option: visit-on-startup* buffer.

For either #1 or #2, it would be important to put the cursor on the target
option and highlight that option, or else users will be easily disoriented.
It would not be enough, for instance, to just put the cursor on the option.
The user is asking for a particular tree branch, not for the forest. For #1,
the highlighting says "This is the way"; for #2, it says "You are here".

I agree that it is good, in general, to introduce users to the customize
browser. But where do you draw the line with your suggestion? Whenever the
user asks to customize a single option, should we just open the browser to a
browser display that shows that option or its group somewhere on it (and
highlight the target)? That would help introduce users to the browser, but
it would be an unnecessary inconvenience that would quickly have users
asking for a direct route.

I think we should go all the way, and get the user to the final destination
immediately: the customize entry for the target option. That would mean #2
(with highlighting of the option) or #3. I prefer #3, as it is the simplest
and least confusing for users. However, it provides the least customize
context, admittedly.

If your concern is a general one that, when a user is in a customize buffer
for a single option, or even for its group, s?he is not made aware of the
existence of the customize browser, then that is a separate issue, one that
is not specific to the startup display or to its option, `visit-on-startup'.

That concern is best dealt with by improving the final customize buffer, so
that the browser is pointed out with a link. In *Customize Option* and
*Customize Group*, instead of having just a list of links to the parent
groups, we could add a link to the *Customize Browser* too. This link would
take you to the browser, with the cursor on the current option or group and
with that option or group highlighted, to aid orientation. The link should
be near the links to the parent groups.

I think that would be a better way to introduce users to the browser than to
kick them into it when they ask to customize a single option. I do agree
that the customize browser needs more visibility - currently, it is visible
only (1) in the doc and (2) on the Options menu.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 15:14                           ` Drew Adams
@ 2007-07-21 15:46                             ` David Kastrup
  2007-07-22 10:05                               ` Richard Stallman
  2007-07-22  1:49                             ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-21 15:46 UTC (permalink / raw)
  To: Drew Adams; +Cc: Peter Lee, emacs-devel, rms, Mathias Dahl

"Drew Adams" <drew.adams@oracle.com> writes:

>> >>> How about adding a link at the end: [Customize Startup Screen]?
>> >>
>> >>> That way, you get the splash screen with the links, by
>> >>> default, and one of the links lets you set your startup
>> >>> preference. No need to hunt for a way to customize the
>> >>> startup screen.
>> >>
>> >> A good idea!
>> >
>> > We should use the startup screen group for that with the same
>> > interface as Emacs/Options/Browse Customization groups.  In that
>> > manner, people get kicked into using the customize browser right from
>> > the start.
>>
>> To clarify: the link [Customize Startup Screen] should enter the
>> customize browser in the right customization group.
>
> Thanks for the clarification; I understood something different from your
> first post.
>
> Even so, I'm not too sure what you mean.

`Raised' text indicates buttons; type RET or click mouse-1
on a button to invoke its action.
Invoke [+] to expand a group, and [-] to collapse an expanded group.
Invoke the [Group], [Face], and [Option] buttons below to edit that
item in another window.

[-]-\ Group Emacs
   [+]-- Group Editing
   [+]-- Group External
   [+]-- Group Convenience
   [+]-- Group Programming
   [+]-- Group Applications
   [-]-\ Group Development
    | [+]-- Group Processes
    | [+]-- Group Lisp
    | [+]-- Group Docs
    | [+]-- Group Extensions
    | [-]-\ Group Internal
    |  | [-]-\ Group Initialization
    |  |  |  |--- Option Inhibit Splash Screen
    |  |  |  |--- Option Inhibit Startup Echo Area Message
    |  |  |  |--- Option Inhibit Default Init
    |  |  |  |--- Option Inhibit Startup Buffer Menu
    |  |  |  |--- Option Initial Major Mode
    |  |  |  |--- Option Site Run File
    |  |  |  |--- Option Initial Scratch Message
    |  |  | [+]-- Group Fancy Splash Screen
    |  |  |--- Option Default Major Mode
    |  | [+]-- Group Storage Allocation
    |  | [+]-- Group Limits
    |  | [+]-- Group Columns
    | [+]-- Group Maintenance
    | [+]-- Group Debug
   [+]-- Group Environment
   [+]-- Group Data
   [+]-- Group Files
   [+]-- Group Wp
   [+]-- Group Faces
   [+]-- Group Hypermedia
   [+]-- Group Help
   [+]-- Group Multimedia
   [+]-- Group Local
   [+]-- Group PostScript

Cursor on the "Option Inhibit Splash Screen".  Anyway, whose idea of a
cruel joke was the hierarchy
"Emacs/Development/Internal/Initialization"?  I browsed for 15 minutes
before giving up and looking directly in the dialog for the variable
(the name of which I remembered) and then stepped upwards through the
parent groups.

I mean, Emacs/Development/Internal/Initialization?!?
EMACS/DEVELOPMENT/INTERNAL/INITIALIZATION?!?

For the splash screen?

For now, I withdraw my proposal.  It would be _far_ too embarrassing
to show off _that_.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-18 20:29           ` Juri Linkov
                               ` (2 preceding siblings ...)
  2007-07-19 18:28             ` Alfred M. Szmidt
@ 2007-07-21 17:13             ` Dieter Wilhelm
  2007-07-21 18:12               ` Juri Linkov
  3 siblings, 1 reply; 218+ messages in thread
From: Dieter Wilhelm @ 2007-07-21 17:13 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Drew Adams, emacs-devel

Juri Linkov <juri@jurta.org> writes:

> Since Emacs can do everything then the splash screen could contain links
> to the most common initial actions, e.g.:
>
> [Visit home directory]
> [Open new file]
> [Open buffer for notes you don't want to save]
> [Emacs Tutorial]
> [Emacs FAQ]
> [Read the Emacs Manual]
> ...

This is a mighty good idea!

Thinking in beginner scenarios it might be better to change the
sequence to

 [Open new file]
 [Visit home directory]
 ...

with :point on the first entry, a dired view could overwhelm some at
first, especially from the Windows world.  And when clicking the links
with the mouse--instead of a keyboard activation--the links reacting
in the same manner as if activating the commands from the menu-bar
i.e. with pop-up dialogs etc.

And, what others pointed out, an inclusion of a link to the splash
buffer customisation.  Perfect, I have to say!

-- 
    Best wishes

    H. Dieter Wilhelm
    Darmstadt, Germany

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-20 13:42                 ` Richard Stallman
  2007-07-20 21:01                   ` Drew Adams
@ 2007-07-21 18:07                   ` Juri Linkov
  2007-07-23  4:28                     ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-07-21 18:07 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> 	>> [Visit home directory]
> 	>> [Open new file]
> 	>> [Open buffer for notes you don't want to save]
> 	>> [Emacs Tutorial]
> 	>> [Emacs FAQ]
> 	>> [Read the Emacs Manual]
>
> 	> I like that!
>
>     I would like this as well...
>
> Would someone please try implementing this?  They we can see
> what it is like.

Below is an implementation that add links for the most common tasks to the
splash screen.  This requires some related modifications: the startup
screen should be static because when the user want to clink on a link, it
shouldn't disappear just before clicking on it when it happens to be at
the same time as to show the next splash screen.  This would be annoying.
Such flashing screens are more appropriate for the About screen called
from the Help menu (later more visual effects could be added to the About
screen such as a scrolling list of Emacs authors, etc.)

Another necessary change is to allow point movements commands in the
startup splash screen to be able to move point to the link and type RET to
activate it.  Currently, any key causes the splash screen to exit, and this
key is applied to the underlying buffer.  This is very dangerous because
settings in .emacs, site-start.el or the command line could create such
a configuration that typing a key on a buffer under the splash buffer
(so the user can't see this buffer at the moment of typing because the splash
screen covers it), after typing a key on the splash screen this key gets
delegated to the underlying buffer and may cause harm in it.

OTOH, the About screen goes to another extreme, and doesn't provide a key
to exit the About screen at all.

The following patch adds a keymap common to the startup splash screen and
the About screen with keys `q' and SPC to quit from them.  It also
reverses the logic of the argument `hide-on-input' and renames it to
`static'.  As a result, the startup screen is static and contains links
to the most common tasks, and the About screen switches repeatedly between
two splash screens.  `q' and SPC quit both screens.

This patch doesn't contain more necessary changes because including them
in one patch would create a mess.  A separate patch later will add more
links to the startup screen and to normal-splash-screen, revert changes to
save *scratch* buffer, and add a new option `visit-on-startup'.

Index: lisp/startup.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/startup.el,v
retrieving revision 1.440
diff -c -r1.440 startup.el
*** lisp/startup.el	3 Jul 2007 02:54:42 -0000	1.440
--- lisp/startup.el	21 Jul 2007 18:02:14 -0000
***************
*** 1168,1174 ****
  	 :face variable-pitch
  	 ".
  
! Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
  
  "
  	 :face (variable-pitch :weight bold)
--- 1168,1182 ----
  	 :face variable-pitch
  	 ".
  
! Emacs Guided Tour\t\tSee "
! 	 :face '(link variable-pitch)
! 	 (lambda ()
! 	   (propertize "http://www.gnu.org/software/emacs/tour/"
! 		       'keymap fancy-splash-link-keymap
! 		       'link "http://www.gnu.org/software/emacs/tour/"
! 		       'help-echo "mouse-2: browse this URL"))
! 	 :face variable-pitch
! 	 "
  
  "
  	 :face (variable-pitch :weight bold)
***************
*** 1216,1228 ****
  		 (file :tag "File")))
  
  
  ;; These are temporary storage areas for the splash screen display.
  
  (defvar fancy-current-text nil)
  (defvar fancy-splash-help-echo nil)
  (defvar fancy-splash-stop-time nil)
  (defvar fancy-splash-outer-buffer nil)
- (defvar fancy-splash-last-input-event nil)
  
  (defun fancy-splash-insert (&rest args)
    "Insert text into the current buffer, with faces.
--- 1224,1253 ----
  		 (file :tag "File")))
  
  
+ (defvar fancy-splash-keymap
+   (let ((map (make-sparse-keymap)))
+     (define-key map " " 'fancy-splash-quit)
+     (define-key map "q" 'fancy-splash-quit)
+     map)
+   "Keymap for splash screen buffer.")
+ 
+ (defvar fancy-splash-link-keymap
+   (let ((map (make-sparse-keymap)))
+     (set-keymap-parent map fancy-splash-keymap)
+     (define-key map "\C-m" 'fancy-splash-link-at-point)
+     (define-key map [mouse-2] 'fancy-splash-link-at-click)
+     (define-key map [down-mouse-2] 'ignore)
+     (define-key map [up-mouse-2] 'ignore)
+     (define-key map [follow-link] 'mouse-face)
+     map)
+   "Keymap for links in splash screen buffer.")
+ 
  ;; These are temporary storage areas for the splash screen display.
  
  (defvar fancy-current-text nil)
  (defvar fancy-splash-help-echo nil)
  (defvar fancy-splash-stop-time nil)
  (defvar fancy-splash-outer-buffer nil)
  
  (defun fancy-splash-insert (&rest args)
    "Insert text into the current buffer, with faces.
***************
*** 1297,1309 ****
       :face 'variable-pitch
       "Type "
       :face 'default
!      "Control-l"
       :face 'variable-pitch
!      " to begin editing"
!      (if (equal (buffer-name fancy-splash-outer-buffer)
! 		"*scratch*")
! 	 ".\n"
!        " your file.\n"))))
  
  (defun fancy-splash-tail ()
    "Insert the tail part of the splash screen into the current buffer."
--- 1322,1383 ----
       :face 'variable-pitch
       "Type "
       :face 'default
!      "`q'"
!      :face 'variable-pitch
!      " to quit from this screen.\n"))
!   (when (not fancy-splash-outer-buffer)
!     (fancy-splash-insert
!      ;; Insert links to the most common tasks.
!      ;; Create new file
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Create New File"
! 		   'keymap fancy-splash-link-keymap
! 		   'link 'find-file
! 		   'help-echo "mouse-2: create new file"))
!      :face 'default "\t\t"
       :face 'variable-pitch
!      "Visit new file.\n"
! 
!      ;; Visit home directory.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Visit Home Directory"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (dired "~"))
! 		   'help-echo "mouse-2: visit home directory"))
!      :face 'default "\t"
!      :face 'variable-pitch
!      "Visit home directory.\n"
! 
!      ;; Visit scratch buffer.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Visit *scratch* Buffer"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (switch-to-buffer (get-buffer-create "*scratch*")))
! 		   'help-echo "mouse-2: visit scratch buffer"))
!      :face 'default "\t"
!      :face 'variable-pitch
!      "Visit buffer for notes you don't want to save, and for Lisp evaluation.\n"
! 
!      ;; Customize this screen.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Customize Startup Screen"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (customize-variable 'inhibit-splash-screen))
! 		   'help-echo "mouse-2: customize this screen"))
!      :face 'default "\t"
!      :face 'variable-pitch
!      "Use customization to disable this splash screen.\n"
!      "\n")))
  
  (defun fancy-splash-tail ()
    "Insert the tail part of the splash screen into the current buffer."
***************
*** 1343,1349 ****
      (throw 'stop-splashing nil))
    (unless fancy-current-text
      (setq fancy-current-text fancy-splash-text))
!   (let ((text (car fancy-current-text)))
      (set-buffer buffer)
      (erase-buffer)
      (if pure-space-overflow
--- 1417,1424 ----
      (throw 'stop-splashing nil))
    (unless fancy-current-text
      (setq fancy-current-text fancy-splash-text))
!   (let ((text (car fancy-current-text))
! 	(inhibit-read-only t))
      (set-buffer buffer)
      (erase-buffer)
      (if pure-space-overflow
***************
*** 1360,1432 ****
      (force-mode-line-update)
      (setq fancy-current-text (cdr fancy-current-text))))
  
! 
! (defun fancy-splash-default-action ()
!   "Stop displaying the splash screen buffer.
! This is an internal function used to turn off the splash screen after
! the user caused an input event by hitting a key or clicking with the
! mouse."
!   (interactive)
!   (if (and (memq 'down (event-modifiers last-command-event))
! 	   (eq (posn-window (event-start last-command-event))
! 	       (selected-window)))
!       ;; This is a mouse-down event in the spash screen window.
!       ;; Ignore it and consume the corresponding mouse-up event.
!       (read-event)
!     (push last-command-event unread-command-events))
!   (throw 'exit nil))
! 
! (defun fancy-splash-special-event-action ()
!   "Save the last event and stop displaying the splash screen buffer.
! This is an internal function used to turn off the splash screen after
! the user caused an input event that is bound in `special-event-map'"
    (interactive)
!   (setq fancy-splash-last-input-event last-input-event)
!   (throw 'exit nil))
  
  
! (defun fancy-splash-screens (&optional hide-on-input)
    "Display fancy splash screens when Emacs starts."
!   (if hide-on-input
        (let ((old-hourglass display-hourglass)
  	    (fancy-splash-outer-buffer (current-buffer))
  	    splash-buffer
- 	    (old-minor-mode-map-alist minor-mode-map-alist)
- 	    (old-emulation-mode-map-alists emulation-mode-map-alists)
- 	    (old-special-event-map special-event-map)
  	    (frame (fancy-splash-frame))
  	    timer)
  	(save-selected-window
  	  (select-frame frame)
! 	  (switch-to-buffer " GNU Emacs")
  	  (make-local-variable 'cursor-type)
  	  (setq splash-buffer (current-buffer))
  	  (catch 'stop-splashing
  	    (unwind-protect
! 		(let ((map (make-sparse-keymap))
! 		      (cursor-type nil))
! 		  (use-local-map map)
! 		  (define-key map [switch-frame] 'ignore)
! 		  (define-key map [t] 'fancy-splash-default-action)
! 		  (define-key map [mouse-movement] 'ignore)
! 		  (define-key map [mode-line t] 'ignore)
! 		  ;; Temporarily bind special events to
! 		  ;; fancy-splash-special-event-action so as to stop
! 		  ;; displaying splash screens with such events.
! 		  ;; Otherwise, drag-n-drop into splash screens may
! 		  ;; leave us in recursive editing with invisible
! 		  ;; cursors for a while.
! 		  (setq special-event-map (make-sparse-keymap))
! 		  (map-keymap
! 		   (lambda (key def)
! 		     (define-key special-event-map (vector key)
! 		       (if (eq def 'ignore)
! 			   'ignore
! 			 'fancy-splash-special-event-action)))
! 		   old-special-event-map)
  		  (setq display-hourglass nil
- 			minor-mode-map-alist nil
- 			emulation-mode-map-alists nil
  			buffer-undo-list t
  			mode-line-format (propertize "---- %b %-"
  						     'face 'mode-line-buffer-id)
--- 1435,1479 ----
      (force-mode-line-update)
      (setq fancy-current-text (cdr fancy-current-text))))
  
! (defun fancy-splash-quit ()
!   "Stop displaying the splash screen buffer."
    (interactive)
!   (if fancy-splash-outer-buffer
!       (throw 'exit nil)
!     (kill-buffer splash-buffer)))
  
+ (defun fancy-splash-link-at-point ()
+   "Go to the link at point."
+   (interactive)
+   (let ((link (get-text-property (point) 'link)))
+     (when link
+       (cond ((stringp link) (browse-url link))
+ 	    ((commandp link) (command-execute link))
+ 	    ((functionp link) (funcall link))))))
+ 
+ (defun fancy-splash-link-at-click (click)
+   "Follow a link where you click."
+   (interactive "e")
+   (mouse-set-point click)
+   (fancy-splash-link-at-point))
  
! (defun fancy-splash-screens (&optional static)
    "Display fancy splash screens when Emacs starts."
!   (if (not static)
        (let ((old-hourglass display-hourglass)
  	    (fancy-splash-outer-buffer (current-buffer))
  	    splash-buffer
  	    (frame (fancy-splash-frame))
  	    timer)
  	(save-selected-window
  	  (select-frame frame)
! 	  (switch-to-buffer " About GNU Emacs")
  	  (make-local-variable 'cursor-type)
  	  (setq splash-buffer (current-buffer))
  	  (catch 'stop-splashing
  	    (unwind-protect
! 		(let ((cursor-type nil))
  		  (setq display-hourglass nil
  			buffer-undo-list t
  			mode-line-format (propertize "---- %b %-"
  						     'face 'mode-line-buffer-id)
***************
*** 1435,1459 ****
  			timer (run-with-timer 0 fancy-splash-delay
  					      #'fancy-splash-screens-1
  					      splash-buffer))
  		  (message "%s" (startup-echo-area-message))
  		  (recursive-edit))
  	      (cancel-timer timer)
! 	      (setq display-hourglass old-hourglass
! 		    minor-mode-map-alist old-minor-mode-map-alist
! 		    emulation-mode-map-alists old-emulation-mode-map-alists
! 		    special-event-map old-special-event-map)
! 	      (kill-buffer splash-buffer)
! 	      (when fancy-splash-last-input-event
! 		(setq last-input-event fancy-splash-last-input-event
! 		      fancy-splash-last-input-event nil)
! 		(command-execute (lookup-key special-event-map
! 					     (vector last-input-event))
! 				 nil (vector last-input-event) t))))))
!     ;; If hide-on-input is nil, don't hide the buffer on input.
      (if (or (window-minibuffer-p)
  	    (window-dedicated-p (selected-window)))
  	(pop-to-buffer (current-buffer))
!       (switch-to-buffer "*About GNU Emacs*"))
      (setq buffer-read-only nil)
      (erase-buffer)
      (if pure-space-overflow
--- 1482,1499 ----
  			timer (run-with-timer 0 fancy-splash-delay
  					      #'fancy-splash-screens-1
  					      splash-buffer))
+ 		  (use-local-map fancy-splash-keymap)
  		  (message "%s" (startup-echo-area-message))
+ 		  (setq buffer-read-only t)
  		  (recursive-edit))
  	      (cancel-timer timer)
! 	      (setq display-hourglass old-hourglass)
! 	      (kill-buffer splash-buffer)))))
!     ;; If static is nil, don't hide the buffer on input.
      (if (or (window-minibuffer-p)
  	    (window-dedicated-p (selected-window)))
  	(pop-to-buffer (current-buffer))
!       (switch-to-buffer " GNU Emacs"))
      (setq buffer-read-only nil)
      (erase-buffer)
      (if pure-space-overflow
***************
*** 1469,1478 ****
--- 1509,1520 ----
        (delete-region (point) (point-max))
        (insert "\n")
        (fancy-splash-tail)
+       (use-local-map fancy-splash-keymap)
        (set-buffer-modified-p nil)
        (setq buffer-read-only t)
        (if (and view-read-only (not view-mode))
  	  (view-mode-enter nil 'kill-buffer))
+       (setq splash-buffer (current-buffer))
        (goto-char (point-min)))))
  
  (defun fancy-splash-frame ()
***************
*** 1507,1521 ****
  	  (> frame-height (+ image-height 19)))))))
  
  
! (defun normal-splash-screen (&optional hide-on-input)
    "Display splash screen when Emacs starts."
    (let ((prev-buffer (current-buffer)))
      (unwind-protect
! 	(with-current-buffer (get-buffer-create "GNU Emacs")
  	  (setq buffer-read-only nil)
  	  (erase-buffer)
  	  (set (make-local-variable 'tab-width) 8)
! 	  (if hide-on-input
  	      (set (make-local-variable 'mode-line-format)
  		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
  
--- 1549,1563 ----
  	  (> frame-height (+ image-height 19)))))))
  
  
! (defun normal-splash-screen (&optional static)
    "Display splash screen when Emacs starts."
    (let ((prev-buffer (current-buffer)))
      (unwind-protect
! 	(with-current-buffer (get-buffer-create " About GNU Emacs")
  	  (setq buffer-read-only nil)
  	  (erase-buffer)
  	  (set (make-local-variable 'tab-width) 8)
! 	  (if (not static)
  	      (set (make-local-variable 'mode-line-format)
  		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
  
***************
*** 1533,1545 ****
                 ", one component of the GNU/Linux operating system.\n"
               ", a part of the GNU operating system.\n"))
  
! 	  (if hide-on-input
  	      (insert (substitute-command-keys
  		       (concat
! 			"\nType \\[recenter] to begin editing"
! 			(if (equal (buffer-name prev-buffer) "*scratch*")
! 			    ".\n"
! 			  " your file.\n")))))
  
            (if (display-mouse-p)
                ;; The user can use the mouse to activate menus
--- 1575,1584 ----
                 ", one component of the GNU/Linux operating system.\n"
               ", a part of the GNU operating system.\n"))
  
! 	  (if (not static)
  	      (insert (substitute-command-keys
  		       (concat
! 			"\nType \\[recenter] to quit from this screen.\n"))))
  
            (if (display-mouse-p)
                ;; The user can use the mouse to activate menus
***************
*** 1657,1666 ****
  	  (if (and view-read-only (not view-mode))
  	      (view-mode-enter nil 'kill-buffer))
            (goto-char (point-min))
!           (if hide-on-input
                (if (or (window-minibuffer-p)
                        (window-dedicated-p (selected-window)))
!                   ;; If hide-on-input is nil, creating a new frame will
                    ;; generate enough events that the subsequent `sit-for'
                    ;; will immediately return anyway.
                    nil ;; (pop-to-buffer (current-buffer))
--- 1696,1705 ----
  	  (if (and view-read-only (not view-mode))
  	      (view-mode-enter nil 'kill-buffer))
            (goto-char (point-min))
!           (if (not static)
                (if (or (window-minibuffer-p)
                        (window-dedicated-p (selected-window)))
!                   ;; If static is nil, creating a new frame will
                    ;; generate enough events that the subsequent `sit-for'
                    ;; will immediately return anyway.
                    nil ;; (pop-to-buffer (current-buffer))
***************
*** 1672,1681 ****
              ;; In case the window is dedicated or something.
              (error (pop-to-buffer (current-buffer))))))
        ;; Unwind ... ensure splash buffer is killed
!       (if hide-on-input
! 	  (kill-buffer "GNU Emacs")
! 	(switch-to-buffer "GNU Emacs")
! 	(rename-buffer "*About GNU Emacs*" t)))))
  
  
  (defun startup-echo-area-message ()
--- 1711,1720 ----
              ;; In case the window is dedicated or something.
              (error (pop-to-buffer (current-buffer))))))
        ;; Unwind ... ensure splash buffer is killed
!       (if (not static)
! 	  (kill-buffer " About GNU Emacs")
! 	(switch-to-buffer " About GNU Emacs")
! 	(rename-buffer " GNU Emacs" t)))))
  
  
  (defun startup-echo-area-message ()
***************
*** 1691,1706 ****
      (message "%s" (startup-echo-area-message))))
  
  
! (defun display-splash-screen (&optional hide-on-input)
    "Display splash screen according to display.
  Fancy splash screens are used on graphic displays,
  normal otherwise.
  With a prefix argument, any user input hides the splash screen."
    (interactive "P")
    (if (use-fancy-splash-screens-p)
!       (fancy-splash-screens hide-on-input)
!     (normal-splash-screen hide-on-input)))
  
  
  (defun command-line-1 (command-line-args-left)
    (or noninteractive (input-pending-p) init-file-had-error
--- 1730,1746 ----
      (message "%s" (startup-echo-area-message))))
  
  
! (defun display-splash-screen (&optional static)
    "Display splash screen according to display.
  Fancy splash screens are used on graphic displays,
  normal otherwise.
  With a prefix argument, any user input hides the splash screen."
    (interactive "P")
    (if (use-fancy-splash-screens-p)
!       (fancy-splash-screens static)
!     (normal-splash-screen static)))
  
+ (defalias 'about-emacs 'display-splash-screen)
  
  (defun command-line-1 (command-line-args-left)
    (or noninteractive (input-pending-p) init-file-had-error

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 17:13             ` Dieter Wilhelm
@ 2007-07-21 18:12               ` Juri Linkov
  2007-07-21 18:52                 ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-07-21 18:12 UTC (permalink / raw)
  To: Dieter Wilhelm; +Cc: Drew Adams, emacs-devel

>> [Visit home directory]
>> [Open new file]
>> [Open buffer for notes you don't want to save]
>> [Emacs Tutorial]
>> [Emacs FAQ]
>> [Read the Emacs Manual]
>> ...
>
> This is a mighty good idea!
>
> Thinking in beginner scenarios it might be better to change the
> sequence to
>
>  [Open new file]
>  [Visit home directory]
>  ...

In the latest patch, the order is the following:

[Create New File]        Visit new file.
[Visit Home Directory]   Visit home directory.
[Visit *scratch* Buffer] Visit buffer for notes you don't want to save,
                         and for Lisp evaluation.

This seems good because [Create New File] is before [Visit *scratch* Buffer],
so when a writer starts writing a story, the first link to click will be
[Create New File], and not [Visit *scratch* Buffer], so he wouldn't lose
his masterpiece.

> with :point on the first entry, a dired view could overwhelm some at
> first, especially from the Windows world.  And when clicking the links
> with the mouse--instead of a keyboard activation--the links reacting
> in the same manner as if activating the commands from the menu-bar
> i.e. with pop-up dialogs etc.

Clicking on [Create New File] pop-ups the File Open dialog in the same way
as clicking [Visit New File] in the File menu.

> And, what others pointed out, an inclusion of a link to the splash
> buffer customisation.  Perfect, I have to say!

In the latest patch, the customization link points to the inhibit-splash-screen,
but later should be changed to customize `visit-on-startup'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-21 18:12               ` Juri Linkov
@ 2007-07-21 18:52                 ` Drew Adams
  2007-07-21 19:24                   ` David Kastrup
  2007-07-22 19:41                   ` Drew Adams
  0 siblings, 2 replies; 218+ messages in thread
From: Drew Adams @ 2007-07-21 18:52 UTC (permalink / raw)
  To: Juri Linkov, Dieter Wilhelm; +Cc: emacs-devel

> >> splash screen could contain links to the most common initial actions:
> >>
> >> [Visit home directory]
> >> [Open new file]
> >> [Open buffer for notes you don't want to save]
> >> [Emacs Tutorial]
> >> [Emacs FAQ]
> >> [Read the Emacs Manual]
> >> ...
> >
> > it might be better to change the sequence to
> >
> >  [Open new file]
> >  [Visit home directory]
> >  ...
>
> In the latest patch, the order is the following:
>
> [Create New File]        Visit new file.
> [Visit Home Directory]   Visit home directory.
> [Visit *scratch* Buffer] Visit buffer for notes you don't want
>                          to save, and for Lisp evaluation.

1. I agree about the order: create new file first.


2. Instead of [Visit *scratch* Buffer], it should say [Visit Scratch Lisp
Buffer].


3. We should get rid of the descriptions next to the links. "Visit new file"
is wrong, anyway; "Create New File" is better on its own. "Visit home
directory" adds nothing. "Scratch" implies not automatically saving - think
of scratch pad and scratch paper.

If we must have descriptions next to the links, then use this for *scratch*:
"Visit buffer *scratch* for Lisp interaction that is not saved
automatically".


4. Instead of [Visit home directory], it should say [Visit directory]. Which
directory to visit should be customizable, with `~/' as the default value.
Add an option `splash-screen-directory-to-visit' to custom group
`fancy-splash-screen'.


5. Option `visit-on-startup' should be in a new custom group,
`startup-display'. This would be a child of group `initialization', and it
would include custom group `fancy-splash-screen' as a subgroup.
(`visit-on-startup' does not belong in group `fancy-splash-screen'.)


6. The final link of the splash screen, [Customize Startup Display], would
then send you to the customize buffer for this group, `startup-display',
which would show this:

  `visit-on-startup' [Hide Value] [Value Menu]
  What to show/visit on startup.

  `fancy-splash-screen' group: Go to Group
  Fancy splash screen when Emacs starts.


7. BTW, if we add `visit-on-startup', do we still need
`inhibit-splash-screen'? (no)


8. Here's a summary of the new custom stuff proposed:

(defgroup startup-display ()
  "Options for what is displayed when Emacs starts up."
  :version "22" :group 'initialization)

(defcustom visit-on-startup "~/"
  "What Emacs visits initially."
  :type '(choice
          (directory :tag "Directory"      :value "~/")
          (file      :tag "File"           :value "~/new.txt")
          (const     :tag "Scratch buffer" :value "*scratch*")
          (const     :tag "Splash screen"  nil))
  :group 'startup-display)


(defgroup fancy-splash-screen ()
  "Fancy splash screen when Emacs starts."
  :version "21.1" :group 'startup-display)

(defcustom splash-screen-directory-to-visit "~/"
  "Directory to visit when you click [Visit directory] on splash screen."
  :version "22" :group 'fancy-splash-screen)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 18:52                 ` Drew Adams
@ 2007-07-21 19:24                   ` David Kastrup
  2007-07-22 18:37                     ` Richard Stallman
  2007-07-22 19:41                   ` Drew Adams
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-21 19:24 UTC (permalink / raw)
  To: Drew Adams; +Cc: Juri Linkov, Dieter Wilhelm, emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> 2. Instead of [Visit *scratch* Buffer], it should say [Visit Scratch Lisp
> Buffer].
>
>
> 3. We should get rid of the descriptions next to the links. "Visit new file"
> is wrong, anyway; "Create New File" is better on its own. "Visit home
> directory" adds nothing. "Scratch" implies not automatically saving - think
> of scratch pad and scratch paper.
>
> If we must have descriptions next to the links, then use this for *scratch*:
> "Visit buffer *scratch* for Lisp interaction that is not saved
> automatically".
>
>
> 4. Instead of [Visit home directory], it should say [Visit directory]. Which
> directory to visit should be customizable, with `~/' as the default value.
> Add an option `splash-screen-directory-to-visit' to custom group
> `fancy-splash-screen'.

I consider all of those proposals a change for the worse for a
beginner, and the splash screen is a tool dedicated to the beginner.
If you really must have a customizable splash screen, then it makes
sense to make the _whole_ list a single customizable list, with
several preselectable functions and parameters and texts which one can
replace.

But the default text should _not_ try to take into account that people
might want to mangle the function without having to mangle the button
inscriptions.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 15:14                           ` Drew Adams
  2007-07-21 15:46                             ` David Kastrup
@ 2007-07-22  1:49                             ` Richard Stallman
  2007-07-22 13:26                               ` Drew Adams
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-22  1:49 UTC (permalink / raw)
  To: Drew Adams; +Cc: pete.a.lee, emacs-devel, mathias.dahl

    1. Open to the *Customize Browser* buffer.  I think you're proposing this.

    2. Open to the *Customize Group* buffer (say *Customize Group:
    convenience*).

    3. Open to the *Customize Option: visit-on-startup* buffer.

#3 sounds too specific.  Yes, it would enable someone to turn
off the splash screen, but it wouldn't show that there are other
possibilities.

I think #2 is best.  It avoids unnecessary indirection while showing
more than just one option.

    Whenever the
    user asks to customize a single option, should we just open the browser to a
    browser display that shows that option or its group somewhere on it

That's a different issue.  When the user specifically asks to customize
one option, we should provide that option.  But here the user
would be asking to "customize the startup screen".  That is NOT
a request for one option.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 15:46                             ` David Kastrup
@ 2007-07-22 10:05                               ` Richard Stallman
  2007-07-22 10:40                                 ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-22 10:05 UTC (permalink / raw)
  To: David Kastrup; +Cc: pete.a.lee, emacs-devel, drew.adams, mathias.dahl

    I mean, Emacs/Development/Internal/Initialization?!?
    EMACS/DEVELOPMENT/INTERNAL/INITIALIZATION?!?

Instead of gagging, would you like to propose another location in the
structure?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 10:05                               ` Richard Stallman
@ 2007-07-22 10:40                                 ` David Kastrup
  2007-07-23  4:29                                   ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-22 10:40 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     I mean, Emacs/Development/Internal/Initialization?!?
>     EMACS/DEVELOPMENT/INTERNAL/INITIALIZATION?!?
>
> Instead of gagging, would you like to propose another location in the
> structure?

Both Emacs/Convenience/Startup and Emacs/Environment/Startup (one can
specify multiple parent groups if I remember correctly).  But actually
not just the Startup but the whole Development/Internal customization
group is a complete misnomer since it has nothing to do with
development.  It might better be moved to Emacs/General Setup (does
not exist yet).  "General Setup" might also be a better name for parts
or all of the current Emacs/Environment group.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-22  1:49                             ` Richard Stallman
@ 2007-07-22 13:26                               ` Drew Adams
  2007-07-23  4:28                                 ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-07-22 13:26 UTC (permalink / raw)
  To: rms; +Cc: pete.a.lee, emacs-devel, mathias.dahl

>     1. Open to the *Customize Browser* buffer.  I think you're
>        proposing this.
>
>     2. Open to the *Customize Group* buffer (say *Customize Group:
>     convenience*).
>
>     3. Open to the *Customize Option: visit-on-startup* buffer.
>
> #3 sounds too specific.  Yes, it would enable someone to turn
> off the splash screen, but it wouldn't show that there are other
> possibilities.
>
> I think #2 is best.  It avoids unnecessary indirection while showing
> more than just one option.
>
>     Whenever the user asks to customize a single option, should
>     we just open the browser to a browser display that shows
>     that option or its group somewhere on it
>
> That's a different issue.  When the user specifically asks to customize
> one option, we should provide that option.  But here the user
> would be asking to "customize the startup screen".  That is NOT
> a request for one option.

It was at the time of the message you replied to - the single option was
`visit-on-startup'. However, since then, the discussion moved on.

My last proposal was that the link [Customize Startup Display] lead to
`customize-group' for a customize group `startup-display'. That buffer,
`*Customize Group: startup-display*' would show everything for the startup
display:

>   `visit-on-startup' [Hide Value] [Value Menu]
>   What to show/visit on startup.
>
>   `fancy-splash-screen' group: Go to Group
>   Fancy splash screen when Emacs starts.

With this approach, #2 above becomes the same thing: go to the customize
group, which would be `startup-display'.

Startup display deserves its own group because (1) most of the stuff in
group `initialization' has nothing to do with the startup display, and (2)
`visit-on-startup' is about the startup display, but it is not about the
`fancy-splash-screen'. This new goldilocks group is just right for
everything about the startup display. It doesn't include everything about
initialization, and it includes more than just the splash screen.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 19:24                   ` David Kastrup
@ 2007-07-22 18:37                     ` Richard Stallman
  2007-07-22 19:09                       ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-22 18:37 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, dieter, drew.adams, emacs-devel

    I consider all of those proposals a change for the worse for a
    beginner, and the splash screen is a tool dedicated to the beginner.

Why do you think it is worse for the beginner?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 18:37                     ` Richard Stallman
@ 2007-07-22 19:09                       ` David Kastrup
  2007-07-22 21:43                         ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-22 19:09 UTC (permalink / raw)
  To: rms; +Cc: juri, dieter, drew.adams, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     I consider all of those proposals a change for the worse for a
>     beginner, and the splash screen is a tool dedicated to the beginner.
>
> Why do you think it is worse for the beginner?

"all of those proposals" meant the three concrete suggestions by Drew
(which you did not also cite, and for which I explained the reason of
me not liking them): the discussed state of the proposal was quite
better without his amendments.

But it would be much better than what we have now in CVS in either
case.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-21 18:52                 ` Drew Adams
  2007-07-21 19:24                   ` David Kastrup
@ 2007-07-22 19:41                   ` Drew Adams
  2007-07-22 19:58                     ` David Kastrup
  1 sibling, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-07-22 19:41 UTC (permalink / raw)
  To: Juri Linkov, Dieter Wilhelm; +Cc: emacs-devel

1. We can drop the verbs "Create", "Visit", and "Read", and we can drop
"Emacs":

 [New File]
 [Directory]
 [Scratch Lisp Buffer]
 [Tutorial]
 [FAQ]
 [Manual]

 [Customize Startup Display]


2. I don't use Emacs as a Web browser, so I don't know how feasible or how
useful this might be (e.g. current status of w3), but if it makes sense we
could also add a [URL] link, to a (customizable) URL. The default value
could be http://www.gnu.org/software/emacs.

We could then also add a URL choice to the possibilities for
`visit-on-startup'. That way, if a user used Emacs itself as a Web browser,
then s?he could choose to start Emacs on a Web page (browser home page).

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 19:41                   ` Drew Adams
@ 2007-07-22 19:58                     ` David Kastrup
  0 siblings, 0 replies; 218+ messages in thread
From: David Kastrup @ 2007-07-22 19:58 UTC (permalink / raw)
  To: Drew Adams; +Cc: Juri Linkov, Dieter Wilhelm, emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> 1. We can drop the verbs "Create", "Visit", and "Read", and we can drop
> "Emacs":
>
>  [New File]
>  [Directory]
>  [Scratch Lisp Buffer]
>  [Tutorial]
>  [FAQ]
>  [Manual]
>
>  [Customize Startup Display]

Why would we want to do that?  This is a splash screen, not a side bar.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 19:09                       ` David Kastrup
@ 2007-07-22 21:43                         ` Juri Linkov
  2007-07-23 18:07                           ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-07-22 21:43 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, emacs-devel

>>     I consider all of those proposals a change for the worse for a
>>     beginner, and the splash screen is a tool dedicated to the beginner.
>>
>> Why do you think it is worse for the beginner?
>
> "all of those proposals" meant the three concrete suggestions by Drew
> (which you did not also cite, and for which I explained the reason of
> me not liking them): the discussed state of the proposal was quite
> better without his amendments.
>
> But it would be much better than what we have now in CVS in either
> case.

Then perhaps now we should install the patch that adds three links to the
splash screen, revert auto-saving *scratch* buffer, and continue this
discussion about new customization options and more links on the splash
screen.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 13:26                               ` Drew Adams
@ 2007-07-23  4:28                                 ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-23  4:28 UTC (permalink / raw)
  To: Drew Adams; +Cc: pete.a.lee, emacs-devel, mathias.dahl

    My last proposal was that the link [Customize Startup Display] lead to
    `customize-group' for a customize group `startup-display'. That buffer,
    `*Customize Group: startup-display*' would show everything for the startup
    display:

Sounds right to me.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-21 18:07                   ` Juri Linkov
@ 2007-07-23  4:28                     ` Richard Stallman
  2007-07-23 21:45                       ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-23  4:28 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

      This requires some related modifications: the startup
    screen should be static because when the user want to clink on a link, it
    shouldn't disappear just before clicking on it when it happens to be at
    the same time as to show the next splash screen.  This would be annoying.

I agree.  However, part of the reason why there are two fancy splash
screens is to present more information than will fit comfortably in
one.  If we don't use the current solution (switching between two
splash screens), we need another solution.

    Another necessary change is to allow point movements commands in the
    startup splash screen to be able to move point to the link and type RET to
    activate it.  Currently, any key causes the splash screen to exit, and this
    key is applied to the underlying buffer.

Obviously part of this change is that that won't happen any more.

    The following patch adds a keymap common to the startup splash screen and
    the About screen with keys `q' and SPC to quit from them.

I don't understand -- what does it mean to "quit" from the splash
screen?

    This patch doesn't contain more necessary changes because including them
    in one patch would create a mess.  A separate patch later will add more
    links to the startup screen and to normal-splash-screen, revert changes to
    save *scratch* buffer, and add a new option `visit-on-startup'.

In this one case, I think we want to see all the patches put together.
The reason is that I am not ready, now, to decide to take this route.
I might choose it once I see it in its mature form.

In other words, it is needful to develop the mature form and present
the combined patch.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 10:40                                 ` David Kastrup
@ 2007-07-23  4:29                                   ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-23  4:29 UTC (permalink / raw)
  To: David Kastrup; +Cc: emacs-devel

    Both Emacs/Convenience/Startup and Emacs/Environment/Startup (one can
    specify multiple parent groups if I remember correctly).

Semantically this does not fit in Convenience, but it does fit in
Environment.  Would you please move it?

      But actually
    not just the Startup but the whole Development/Internal customization
    group is a complete misnomer since it has nothing to do with
    development.

Even worse, those various things don't really have anything to do with
each other.  Most of them should be individually moved elsewhere.

Would you like to do that?

      It might better be moved to Emacs/General Setup (does
    not exist yet).

Maybe so.  Could you propose what the meaning of that group
would be?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-22 21:43                         ` Juri Linkov
@ 2007-07-23 18:07                           ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-23 18:07 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Then perhaps now we should install the patch that adds three links to the
    splash screen, revert auto-saving *scratch* buffer, and continue this
    discussion about new customization options and more links on the splash
    screen.

We are not yet ready.  I asked a few questions yesterday about details
of this feature.

When this is ready, we should install it as an option, so we can try it
out.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-23  4:28                     ` Richard Stallman
@ 2007-07-23 21:45                       ` Juri Linkov
  2007-07-24 16:45                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-07-23 21:45 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>       This requires some related modifications: the startup
>     screen should be static because when the user want to clink on a link, it
>     shouldn't disappear just before clicking on it when it happens to be at
>     the same time as to show the next splash screen.  This would be annoying.
>
> I agree.  However, part of the reason why there are two fancy splash
> screens is to present more information than will fit comfortably in
> one.  If we don't use the current solution (switching between two
> splash screens), we need another solution.

With the patch it displays both screens on one.  The second screen was just
4 additional lines, so information fits perfectly on one screen.

>     Another necessary change is to allow point movements commands in the
>     startup splash screen to be able to move point to the link and type RET to
>     activate it.  Currently, any key causes the splash screen to exit, and this
>     key is applied to the underlying buffer.
>
> Obviously part of this change is that that won't happen any more.

OK, so this is a good change.

>     The following patch adds a keymap common to the startup splash screen and
>     the About screen with keys `q' and SPC to quit from them.
>
> I don't understand -- what does it mean to "quit" from the splash
> screen?

"quit" means to kill the buffer with the splash screen.

>     This patch doesn't contain more necessary changes because including them
>     in one patch would create a mess.  A separate patch later will add more
>     links to the startup screen and to normal-splash-screen, revert changes to
>     save *scratch* buffer, and add a new option `visit-on-startup'.
>
> In this one case, I think we want to see all the patches put together.
> The reason is that I am not ready, now, to decide to take this route.
> I might choose it once I see it in its mature form.
>
> In other words, it is needful to develop the mature form and present
> the combined patch.

I'll present the combined patch after an agreement on a new
customizable option.  Is it OK to add `visit-on-startup'?
Should it obsolete `inhibit-splash-screen'?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-23 21:45                       ` Juri Linkov
@ 2007-07-24 16:45                         ` Richard Stallman
  2007-07-25  0:12                           ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-24 16:45 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    With the patch it displays both screens on one.  The second screen was just
    4 additional lines, so information fits perfectly on one screen.

That is good.

    > I don't understand -- what does it mean to "quit" from the splash
    > screen?

    "quit" means to kill the buffer with the splash screen.

It seems a bit strange to speak of "quitting" in this context.

    I'll present the combined patch after an agreement on a new
    customizable option.  Is it OK to add `visit-on-startup'?

Please do!

    Should it obsolete `inhibit-splash-screen'?

No, I don't think so.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-24 16:45                         ` Richard Stallman
@ 2007-07-25  0:12                           ` Juri Linkov
  2007-07-25  5:24                             ` David Kastrup
  2007-07-27 21:16                             ` Juri Linkov
  0 siblings, 2 replies; 218+ messages in thread
From: Juri Linkov @ 2007-07-25  0:12 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     I'll present the combined patch after an agreement on a new
>     customizable option.  Is it OK to add `visit-on-startup'?
>
> Please do!

In the following patch the name of the new option is `initial-buffer'.
I think it better fits to the existing option names in the same group
`initialization'.  Depending on the non-nil value of the new option
`initial-buffer' either *scratch* buffer is displayed on startup, or
a directory/file is visited.  The parent group of `initialization' was
changed from `internal' to `environment' as was suggested.  The recent
change that sets buffer-offer-save in *scratch* and enables auto-save was
reverted.

New links on the startup splash screen are the following:

Visit New File
Visit Home Directory
Visit *scratch* Buffer
Customize Startup Screen
Exit This Screen

All the rest changes are the same as I already described earlier.

Index: lisp/startup.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/startup.el,v
retrieving revision 1.442
diff -c -r1.442 startup.el
*** lisp/startup.el	24 Jul 2007 04:48:03 -0000	1.442
--- lisp/startup.el	25 Jul 2007 00:11:57 -0000
***************
*** 38,44 ****
  
  (defgroup initialization nil
    "Emacs start-up procedure."
!   :group 'internal)
  
  (defcustom inhibit-splash-screen nil
    "Non-nil inhibits the startup screen.
--- 38,54 ----
  
  (defgroup initialization nil
    "Emacs start-up procedure."
!   :group 'environment)
! 
! (defcustom initial-buffer nil
!   "Buffer to show after starting Emacs."
!   :type '(choice
!           (directory :tag "Directory"        :value "~/")
!           (file      :tag "File"             :value "~/new.txt")
!           (const     :tag "*scratch* buffer" :value "*scratch*")
!           (const     :tag "Splash screen"    nil))
!   :version "23.1"
!   :group 'initialization)
  
  (defcustom inhibit-splash-screen nil
    "Non-nil inhibits the startup screen.
***************
*** 1055,1064 ****
    (if (get-buffer "*scratch*")
        (with-current-buffer "*scratch*"
  	(if (eq major-mode 'fundamental-mode)
! 	    (funcall initial-major-mode))
! 	;; Don't lose text that users type in *scratch*.
! 	(setq buffer-offer-save t)
! 	(auto-save-mode 1)))
  
    ;; Load library for our terminal type.
    ;; User init file can set term-file-prefix to nil to prevent this.
--- 1065,1071 ----
    (if (get-buffer "*scratch*")
        (with-current-buffer "*scratch*"
  	(if (eq major-mode 'fundamental-mode)
! 	    (funcall initial-major-mode))))
  
    ;; Load library for our terminal type.
    ;; User init file can set term-file-prefix to nil to prevent this.
***************
*** 1168,1174 ****
  	 :face variable-pitch
  	 ".
  
! Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
  
  "
  	 :face (variable-pitch :weight bold)
--- 1175,1189 ----
  	 :face variable-pitch
  	 ".
  
! Emacs Guided Tour\t\tSee "
! 	 :face '(link variable-pitch)
! 	 (lambda ()
! 	   (propertize "http://www.gnu.org/software/emacs/tour/"
! 		       'keymap fancy-splash-link-keymap
! 		       'link "http://www.gnu.org/software/emacs/tour/"
! 		       'help-echo "mouse-2: browse this URL"))
! 	 :face variable-pitch
! 	 "
  
  "
  	 :face (variable-pitch :weight bold)
***************
*** 1216,1228 ****
  		 (file :tag "File")))
  
  
  ;; These are temporary storage areas for the splash screen display.
  
  (defvar fancy-current-text nil)
  (defvar fancy-splash-help-echo nil)
  (defvar fancy-splash-stop-time nil)
  (defvar fancy-splash-outer-buffer nil)
- (defvar fancy-splash-last-input-event nil)
  
  (defun fancy-splash-insert (&rest args)
    "Insert text into the current buffer, with faces.
--- 1231,1260 ----
  		 (file :tag "File")))
  
  
+ (defvar fancy-splash-keymap
+   (let ((map (make-sparse-keymap)))
+     (define-key map " " 'fancy-splash-quit)
+     (define-key map "q" 'fancy-splash-quit)
+     map)
+   "Keymap for splash screen buffer.")
+ 
+ (defvar fancy-splash-link-keymap
+   (let ((map (make-sparse-keymap)))
+     (set-keymap-parent map fancy-splash-keymap)
+     (define-key map "\C-m" 'fancy-splash-link-at-point)
+     (define-key map [mouse-2] 'fancy-splash-link-at-click)
+     (define-key map [down-mouse-2] 'ignore)
+     (define-key map [up-mouse-2] 'ignore)
+     (define-key map [follow-link] 'mouse-face)
+     map)
+   "Keymap for links in splash screen buffer.")
+ 
  ;; These are temporary storage areas for the splash screen display.
  
  (defvar fancy-current-text nil)
  (defvar fancy-splash-help-echo nil)
  (defvar fancy-splash-stop-time nil)
  (defvar fancy-splash-outer-buffer nil)
  
  (defun fancy-splash-insert (&rest args)
    "Insert text into the current buffer, with faces.
***************
*** 1297,1309 ****
       :face 'variable-pitch
       "Type "
       :face 'default
!      "Control-l"
       :face 'variable-pitch
!      " to begin editing"
!      (if (equal (buffer-name fancy-splash-outer-buffer)
! 		"*scratch*")
! 	 ".\n"
!        " your file.\n"))))
  
  (defun fancy-splash-tail ()
    "Insert the tail part of the splash screen into the current buffer."
--- 1329,1395 ----
       :face 'variable-pitch
       "Type "
       :face 'default
!      "`q'"
       :face 'variable-pitch
!      " to quit from this screen.\n"))
!   (when (not fancy-splash-outer-buffer)
!     (fancy-splash-insert
!      ;; Insert links to the most common tasks.
! 
!      ;; Create new file
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Visit New File"
! 		   'keymap fancy-splash-link-keymap
! 		   'link 'find-file
! 		   'help-echo "mouse-2: visit or create a new file"))
!      :face 'default "\n"
! 
!      ;; Visit home directory.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Visit Home Directory"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (find-file "~/"))
! 		   'help-echo "mouse-2: visit home directory"))
!      :face 'default "\n"
! 
!      ;; Visit scratch buffer.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Visit *scratch* Buffer"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (switch-to-buffer (get-buffer-create "*scratch*")))
! 		   'help-echo "mouse-2: visit buffer for notes you don't want to save, and for Lisp evaluation"))
!      :face 'default "\n"
! 
!      ;; Customize this screen.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Customize Startup Screen"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (customize-group 'initialization))
! 		   'help-echo "mouse-2: customize this screen"))
!      :face 'default "\n"
! 
!      ;; Exit this screen.
!      :face '(link variable-pitch)
!      (lambda ()
!        (propertize "Exit This Screen"
! 		   'keymap fancy-splash-link-keymap
! 		   'link (lambda ()
! 			   (interactive)
! 			   (kill-buffer splash-buffer))
! 		   'help-echo "mouse-2: exit this screen"))
!      :face 'default "\n"
! 
!      "\n")))
  
  (defun fancy-splash-tail ()
    "Insert the tail part of the splash screen into the current buffer."
***************
*** 1343,1349 ****
      (throw 'stop-splashing nil))
    (unless fancy-current-text
      (setq fancy-current-text fancy-splash-text))
!   (let ((text (car fancy-current-text)))
      (set-buffer buffer)
      (erase-buffer)
      (if pure-space-overflow
--- 1429,1436 ----
      (throw 'stop-splashing nil))
    (unless fancy-current-text
      (setq fancy-current-text fancy-splash-text))
!   (let ((text (car fancy-current-text))
! 	(inhibit-read-only t))
      (set-buffer buffer)
      (erase-buffer)
      (if pure-space-overflow
***************
*** 1360,1432 ****
      (force-mode-line-update)
      (setq fancy-current-text (cdr fancy-current-text))))
  
! 
! (defun fancy-splash-default-action ()
!   "Stop displaying the splash screen buffer.
! This is an internal function used to turn off the splash screen after
! the user caused an input event by hitting a key or clicking with the
! mouse."
!   (interactive)
!   (if (and (memq 'down (event-modifiers last-command-event))
! 	   (eq (posn-window (event-start last-command-event))
! 	       (selected-window)))
!       ;; This is a mouse-down event in the spash screen window.
!       ;; Ignore it and consume the corresponding mouse-up event.
!       (read-event)
!     (push last-command-event unread-command-events))
!   (throw 'exit nil))
! 
! (defun fancy-splash-special-event-action ()
!   "Save the last event and stop displaying the splash screen buffer.
! This is an internal function used to turn off the splash screen after
! the user caused an input event that is bound in `special-event-map'"
    (interactive)
!   (setq fancy-splash-last-input-event last-input-event)
!   (throw 'exit nil))
  
  
! (defun fancy-splash-screens (&optional hide-on-input)
    "Display fancy splash screens when Emacs starts."
!   (if hide-on-input
        (let ((old-hourglass display-hourglass)
  	    (fancy-splash-outer-buffer (current-buffer))
  	    splash-buffer
- 	    (old-minor-mode-map-alist minor-mode-map-alist)
- 	    (old-emulation-mode-map-alists emulation-mode-map-alists)
- 	    (old-special-event-map special-event-map)
  	    (frame (fancy-splash-frame))
  	    timer)
  	(save-selected-window
  	  (select-frame frame)
! 	  (switch-to-buffer " GNU Emacs")
  	  (make-local-variable 'cursor-type)
  	  (setq splash-buffer (current-buffer))
  	  (catch 'stop-splashing
  	    (unwind-protect
! 		(let ((map (make-sparse-keymap))
! 		      (cursor-type nil))
! 		  (use-local-map map)
! 		  (define-key map [switch-frame] 'ignore)
! 		  (define-key map [t] 'fancy-splash-default-action)
! 		  (define-key map [mouse-movement] 'ignore)
! 		  (define-key map [mode-line t] 'ignore)
! 		  ;; Temporarily bind special events to
! 		  ;; fancy-splash-special-event-action so as to stop
! 		  ;; displaying splash screens with such events.
! 		  ;; Otherwise, drag-n-drop into splash screens may
! 		  ;; leave us in recursive editing with invisible
! 		  ;; cursors for a while.
! 		  (setq special-event-map (make-sparse-keymap))
! 		  (map-keymap
! 		   (lambda (key def)
! 		     (define-key special-event-map (vector key)
! 		       (if (eq def 'ignore)
! 			   'ignore
! 			 'fancy-splash-special-event-action)))
! 		   old-special-event-map)
  		  (setq display-hourglass nil
- 			minor-mode-map-alist nil
- 			emulation-mode-map-alists nil
  			buffer-undo-list t
  			mode-line-format (propertize "---- %b %-"
  						     'face 'mode-line-buffer-id)
--- 1447,1491 ----
      (force-mode-line-update)
      (setq fancy-current-text (cdr fancy-current-text))))
  
! (defun fancy-splash-quit ()
!   "Stop displaying the splash screen buffer."
    (interactive)
!   (if fancy-splash-outer-buffer
!       (throw 'exit nil)
!     (kill-buffer splash-buffer)))
  
+ (defun fancy-splash-link-at-point ()
+   "Go to the link at point."
+   (interactive)
+   (let ((link (get-text-property (point) 'link)))
+     (when link
+       (cond ((stringp link) (browse-url link))
+ 	    ((commandp link) (command-execute link))
+ 	    ((functionp link) (funcall link))))))
+ 
+ (defun fancy-splash-link-at-click (click)
+   "Follow a link where you click."
+   (interactive "e")
+   (mouse-set-point click)
+   (fancy-splash-link-at-point))
  
! (defun fancy-splash-screens (&optional static)
    "Display fancy splash screens when Emacs starts."
!   (if (not static)
        (let ((old-hourglass display-hourglass)
  	    (fancy-splash-outer-buffer (current-buffer))
  	    splash-buffer
  	    (frame (fancy-splash-frame))
  	    timer)
  	(save-selected-window
  	  (select-frame frame)
! 	  (switch-to-buffer " About GNU Emacs")
  	  (make-local-variable 'cursor-type)
  	  (setq splash-buffer (current-buffer))
  	  (catch 'stop-splashing
  	    (unwind-protect
! 		(let ((cursor-type nil))
  		  (setq display-hourglass nil
  			buffer-undo-list t
  			mode-line-format (propertize "---- %b %-"
  						     'face 'mode-line-buffer-id)
***************
*** 1435,1459 ****
  			timer (run-with-timer 0 fancy-splash-delay
  					      #'fancy-splash-screens-1
  					      splash-buffer))
  		  (message "%s" (startup-echo-area-message))
  		  (recursive-edit))
  	      (cancel-timer timer)
! 	      (setq display-hourglass old-hourglass
! 		    minor-mode-map-alist old-minor-mode-map-alist
! 		    emulation-mode-map-alists old-emulation-mode-map-alists
! 		    special-event-map old-special-event-map)
! 	      (kill-buffer splash-buffer)
! 	      (when fancy-splash-last-input-event
! 		(setq last-input-event fancy-splash-last-input-event
! 		      fancy-splash-last-input-event nil)
! 		(command-execute (lookup-key special-event-map
! 					     (vector last-input-event))
! 				 nil (vector last-input-event) t))))))
!     ;; If hide-on-input is nil, don't hide the buffer on input.
      (if (or (window-minibuffer-p)
  	    (window-dedicated-p (selected-window)))
  	(pop-to-buffer (current-buffer))
!       (switch-to-buffer "*About GNU Emacs*"))
      (setq buffer-read-only nil)
      (erase-buffer)
      (if pure-space-overflow
--- 1494,1511 ----
  			timer (run-with-timer 0 fancy-splash-delay
  					      #'fancy-splash-screens-1
  					      splash-buffer))
+ 		  (use-local-map fancy-splash-keymap)
  		  (message "%s" (startup-echo-area-message))
+ 		  (setq buffer-read-only t)
  		  (recursive-edit))
  	      (cancel-timer timer)
! 	      (setq display-hourglass old-hourglass)
! 	      (kill-buffer splash-buffer)))))
!     ;; If static is nil, don't hide the buffer on input.
      (if (or (window-minibuffer-p)
  	    (window-dedicated-p (selected-window)))
  	(pop-to-buffer (current-buffer))
!       (switch-to-buffer " GNU Emacs"))
      (setq buffer-read-only nil)
      (erase-buffer)
      (if pure-space-overflow
***************
*** 1469,1478 ****
--- 1521,1532 ----
        (delete-region (point) (point-max))
        (insert "\n")
        (fancy-splash-tail)
+       (use-local-map fancy-splash-keymap)
        (set-buffer-modified-p nil)
        (setq buffer-read-only t)
        (if (and view-read-only (not view-mode))
  	  (view-mode-enter nil 'kill-buffer))
+       (setq splash-buffer (current-buffer))
        (goto-char (point-min)))))
  
  (defun fancy-splash-frame ()
***************
*** 1507,1521 ****
  	  (> frame-height (+ image-height 19)))))))
  
  
! (defun normal-splash-screen (&optional hide-on-input)
    "Display splash screen when Emacs starts."
    (let ((prev-buffer (current-buffer)))
      (unwind-protect
! 	(with-current-buffer (get-buffer-create "GNU Emacs")
  	  (setq buffer-read-only nil)
  	  (erase-buffer)
  	  (set (make-local-variable 'tab-width) 8)
! 	  (if hide-on-input
  	      (set (make-local-variable 'mode-line-format)
  		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
  
--- 1561,1575 ----
  	  (> frame-height (+ image-height 19)))))))
  
  
! (defun normal-splash-screen (&optional static)
    "Display splash screen when Emacs starts."
    (let ((prev-buffer (current-buffer)))
      (unwind-protect
! 	(with-current-buffer (get-buffer-create " About GNU Emacs")
  	  (setq buffer-read-only nil)
  	  (erase-buffer)
  	  (set (make-local-variable 'tab-width) 8)
! 	  (if (not static)
  	      (set (make-local-variable 'mode-line-format)
  		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
  
***************
*** 1533,1545 ****
                 ", one component of the GNU/Linux operating system.\n"
               ", a part of the GNU operating system.\n"))
  
! 	  (if hide-on-input
  	      (insert (substitute-command-keys
  		       (concat
! 			"\nType \\[recenter] to begin editing"
! 			(if (equal (buffer-name prev-buffer) "*scratch*")
! 			    ".\n"
! 			  " your file.\n")))))
  
            (if (display-mouse-p)
                ;; The user can use the mouse to activate menus
--- 1587,1596 ----
                 ", one component of the GNU/Linux operating system.\n"
               ", a part of the GNU operating system.\n"))
  
! 	  (if (not static)
  	      (insert (substitute-command-keys
  		       (concat
! 			"\nType \\[recenter] to quit from this screen.\n"))))
  
            (if (display-mouse-p)
                ;; The user can use the mouse to activate menus
***************
*** 1655,1664 ****
  	  (if (and view-read-only (not view-mode))
  	      (view-mode-enter nil 'kill-buffer))
            (goto-char (point-min))
!           (if hide-on-input
                (if (or (window-minibuffer-p)
                        (window-dedicated-p (selected-window)))
!                   ;; If hide-on-input is nil, creating a new frame will
                    ;; generate enough events that the subsequent `sit-for'
                    ;; will immediately return anyway.
                    nil ;; (pop-to-buffer (current-buffer))
--- 1706,1715 ----
  	  (if (and view-read-only (not view-mode))
  	      (view-mode-enter nil 'kill-buffer))
            (goto-char (point-min))
!           (if (not static)
                (if (or (window-minibuffer-p)
                        (window-dedicated-p (selected-window)))
!                   ;; If static is nil, creating a new frame will
                    ;; generate enough events that the subsequent `sit-for'
                    ;; will immediately return anyway.
                    nil ;; (pop-to-buffer (current-buffer))
***************
*** 1670,1679 ****
              ;; In case the window is dedicated or something.
              (error (pop-to-buffer (current-buffer))))))
        ;; Unwind ... ensure splash buffer is killed
!       (if hide-on-input
! 	  (kill-buffer "GNU Emacs")
! 	(switch-to-buffer "GNU Emacs")
! 	(rename-buffer "*About GNU Emacs*" t)))))
  
  
  (defun startup-echo-area-message ()
--- 1721,1730 ----
              ;; In case the window is dedicated or something.
              (error (pop-to-buffer (current-buffer))))))
        ;; Unwind ... ensure splash buffer is killed
!       (if (not static)
! 	  (kill-buffer " About GNU Emacs")
! 	(switch-to-buffer " About GNU Emacs")
! 	(rename-buffer " GNU Emacs" t)))))
  
  
  (defun startup-echo-area-message ()
***************
*** 1689,1704 ****
      (message "%s" (startup-echo-area-message))))
  
  
! (defun display-splash-screen (&optional hide-on-input)
    "Display splash screen according to display.
  Fancy splash screens are used on graphic displays,
  normal otherwise.
  With a prefix argument, any user input hides the splash screen."
    (interactive "P")
    (if (use-fancy-splash-screens-p)
!       (fancy-splash-screens hide-on-input)
!     (normal-splash-screen hide-on-input)))
  
  
  (defun command-line-1 (command-line-args-left)
    (or noninteractive (input-pending-p) init-file-had-error
--- 1740,1756 ----
      (message "%s" (startup-echo-area-message))))
  
  
! (defun display-splash-screen (&optional static)
    "Display splash screen according to display.
  Fancy splash screens are used on graphic displays,
  normal otherwise.
  With a prefix argument, any user input hides the splash screen."
    (interactive "P")
    (if (use-fancy-splash-screens-p)
!       (fancy-splash-screens static)
!     (normal-splash-screen static)))
  
+ (defalias 'about-emacs 'display-splash-screen)
  
  (defun command-line-1 (command-line-args-left)
    (or noninteractive (input-pending-p) init-file-had-error
***************
*** 1958,1965 ****
--- 2010,2025 ----
             (or (get-buffer-window first-file-buffer)
                 (list-buffers)))))
  
+   (when initial-buffer
+     (cond ((and (equal "*scratch*" initial-buffer)
+ 		(get-buffer "*scratch*"))
+ 	   (switch-to-buffer "*scratch*"))
+ 	  ((file-exists-p initial-buffer)
+ 	   (find-file initial-buffer))))
+ 
    ;; Maybe display a startup screen.
    (unless (or inhibit-startup-message
+ 	      initial-buffer
  	      noninteractive
  	      emacs-quick-startup)
      ;; Display a startup screen, after some preparations.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-25  0:12                           ` Juri Linkov
@ 2007-07-25  5:24                             ` David Kastrup
  2007-07-27 21:20                               ` Juri Linkov
  2007-07-27 21:16                             ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-25  5:24 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov <juri@jurta.org> writes:

> In the following patch the name of the new option is `initial-buffer'.
> I think it better fits to the existing option names in the same group
> `initialization'.

> Index: lisp/startup.el
              ^^^^^^^^^^

>   (defgroup initialization nil
>     "Emacs start-up procedure."
             ^^^^^^^^
> !   :group 'internal)
>   
>   (defcustom inhibit-splash-screen nil
>     "Non-nil inhibits the startup screen.
                            ^^^^^^^

>   (defgroup initialization nil
>     "Emacs start-up procedure."
             ^^^^^^^^

> ! (defcustom initial-buffer nil
> !   "Buffer to show after starting Emacs."
                            ^^^^^^^^

>   (defcustom inhibit-splash-screen nil
>     "Non-nil inhibits the startup screen.
                            ^^^^^^^

>     ;; Maybe display a startup screen.
                         ^^^^^^^

>       ;; Display a startup screen, after some preparations.
                     ^^^^^^^

Something is wrong here: DOC strings and comments very consistently
talk of "startup screen", yet the variable and group names themselves
draw from some irregular use of "initial", "initialization" and
"splash".

If all the explanations find "startup" the most understandable term to
use, there is no sense in being more creative when naming the
variables and groups.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-25  0:12                           ` Juri Linkov
  2007-07-25  5:24                             ` David Kastrup
@ 2007-07-27 21:16                             ` Juri Linkov
  2007-07-29  2:23                               ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-07-27 21:16 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Is it OK to install the patch I submitted three days ago?

>> Please do!
>
> In the following patch the name of the new option is `initial-buffer'.
> I think it better fits to the existing option names in the same group
> `initialization'.  Depending on the non-nil value of the new option
> `initial-buffer' either *scratch* buffer is displayed on startup, or
> a directory/file is visited.  The parent group of `initialization' was
> changed from `internal' to `environment' as was suggested.  The recent
> change that sets buffer-offer-save in *scratch* and enables auto-save was
> reverted.
>
> New links on the startup splash screen are the following:
>
> Visit New File
> Visit Home Directory
> Visit *scratch* Buffer
> Customize Startup Screen
> Exit This Screen
>
> All the rest changes are the same as I already described earlier.
>
> Index: lisp/startup.el
> ===================================================================
> RCS file: /sources/emacs/emacs/lisp/startup.el,v
> retrieving revision 1.442
> diff -c -r1.442 startup.el
> *** lisp/startup.el	24 Jul 2007 04:48:03 -0000	1.442
> --- lisp/startup.el	25 Jul 2007 00:11:57 -0000
> ***************
> *** 38,44 ****
>   
>   (defgroup initialization nil
>     "Emacs start-up procedure."
> !   :group 'internal)
>   
>   (defcustom inhibit-splash-screen nil
>     "Non-nil inhibits the startup screen.
> --- 38,54 ----
>   
>   (defgroup initialization nil
>     "Emacs start-up procedure."
> !   :group 'environment)
> ! 
> ! (defcustom initial-buffer nil
> !   "Buffer to show after starting Emacs."
> !   :type '(choice
> !           (directory :tag "Directory"        :value "~/")
> !           (file      :tag "File"             :value "~/new.txt")
> !           (const     :tag "*scratch* buffer" :value "*scratch*")
> !           (const     :tag "Splash screen"    nil))
> !   :version "23.1"
> !   :group 'initialization)
>   
>   (defcustom inhibit-splash-screen nil
>     "Non-nil inhibits the startup screen.
> ***************
> *** 1055,1064 ****
>     (if (get-buffer "*scratch*")
>         (with-current-buffer "*scratch*"
>   	(if (eq major-mode 'fundamental-mode)
> ! 	    (funcall initial-major-mode))
> ! 	;; Don't lose text that users type in *scratch*.
> ! 	(setq buffer-offer-save t)
> ! 	(auto-save-mode 1)))
>   
>     ;; Load library for our terminal type.
>     ;; User init file can set term-file-prefix to nil to prevent this.
> --- 1065,1071 ----
>     (if (get-buffer "*scratch*")
>         (with-current-buffer "*scratch*"
>   	(if (eq major-mode 'fundamental-mode)
> ! 	    (funcall initial-major-mode))))
>   
>     ;; Load library for our terminal type.
>     ;; User init file can set term-file-prefix to nil to prevent this.
> ***************
> *** 1168,1174 ****
>   	 :face variable-pitch
>   	 ".
>   
> ! Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
>   
>   "
>   	 :face (variable-pitch :weight bold)
> --- 1175,1189 ----
>   	 :face variable-pitch
>   	 ".
>   
> ! Emacs Guided Tour\t\tSee "
> ! 	 :face '(link variable-pitch)
> ! 	 (lambda ()
> ! 	   (propertize "http://www.gnu.org/software/emacs/tour/"
> ! 		       'keymap fancy-splash-link-keymap
> ! 		       'link "http://www.gnu.org/software/emacs/tour/"
> ! 		       'help-echo "mouse-2: browse this URL"))
> ! 	 :face variable-pitch
> ! 	 "
>   
>   "
>   	 :face (variable-pitch :weight bold)
> ***************
> *** 1216,1228 ****
>   		 (file :tag "File")))
>   
>   
>   ;; These are temporary storage areas for the splash screen display.
>   
>   (defvar fancy-current-text nil)
>   (defvar fancy-splash-help-echo nil)
>   (defvar fancy-splash-stop-time nil)
>   (defvar fancy-splash-outer-buffer nil)
> - (defvar fancy-splash-last-input-event nil)
>   
>   (defun fancy-splash-insert (&rest args)
>     "Insert text into the current buffer, with faces.
> --- 1231,1260 ----
>   		 (file :tag "File")))
>   
>   
> + (defvar fancy-splash-keymap
> +   (let ((map (make-sparse-keymap)))
> +     (define-key map " " 'fancy-splash-quit)
> +     (define-key map "q" 'fancy-splash-quit)
> +     map)
> +   "Keymap for splash screen buffer.")
> + 
> + (defvar fancy-splash-link-keymap
> +   (let ((map (make-sparse-keymap)))
> +     (set-keymap-parent map fancy-splash-keymap)
> +     (define-key map "\C-m" 'fancy-splash-link-at-point)
> +     (define-key map [mouse-2] 'fancy-splash-link-at-click)
> +     (define-key map [down-mouse-2] 'ignore)
> +     (define-key map [up-mouse-2] 'ignore)
> +     (define-key map [follow-link] 'mouse-face)
> +     map)
> +   "Keymap for links in splash screen buffer.")
> + 
>   ;; These are temporary storage areas for the splash screen display.
>   
>   (defvar fancy-current-text nil)
>   (defvar fancy-splash-help-echo nil)
>   (defvar fancy-splash-stop-time nil)
>   (defvar fancy-splash-outer-buffer nil)
>   
>   (defun fancy-splash-insert (&rest args)
>     "Insert text into the current buffer, with faces.
> ***************
> *** 1297,1309 ****
>        :face 'variable-pitch
>        "Type "
>        :face 'default
> !      "Control-l"
>        :face 'variable-pitch
> !      " to begin editing"
> !      (if (equal (buffer-name fancy-splash-outer-buffer)
> ! 		"*scratch*")
> ! 	 ".\n"
> !        " your file.\n"))))
>   
>   (defun fancy-splash-tail ()
>     "Insert the tail part of the splash screen into the current buffer."
> --- 1329,1395 ----
>        :face 'variable-pitch
>        "Type "
>        :face 'default
> !      "`q'"
>        :face 'variable-pitch
> !      " to quit from this screen.\n"))
> !   (when (not fancy-splash-outer-buffer)
> !     (fancy-splash-insert
> !      ;; Insert links to the most common tasks.
> ! 
> !      ;; Create new file
> !      :face '(link variable-pitch)
> !      (lambda ()
> !        (propertize "Visit New File"
> ! 		   'keymap fancy-splash-link-keymap
> ! 		   'link 'find-file
> ! 		   'help-echo "mouse-2: visit or create a new file"))
> !      :face 'default "\n"
> ! 
> !      ;; Visit home directory.
> !      :face '(link variable-pitch)
> !      (lambda ()
> !        (propertize "Visit Home Directory"
> ! 		   'keymap fancy-splash-link-keymap
> ! 		   'link (lambda ()
> ! 			   (interactive)
> ! 			   (find-file "~/"))
> ! 		   'help-echo "mouse-2: visit home directory"))
> !      :face 'default "\n"
> ! 
> !      ;; Visit scratch buffer.
> !      :face '(link variable-pitch)
> !      (lambda ()
> !        (propertize "Visit *scratch* Buffer"
> ! 		   'keymap fancy-splash-link-keymap
> ! 		   'link (lambda ()
> ! 			   (interactive)
> ! 			   (switch-to-buffer (get-buffer-create "*scratch*")))
> ! 		   'help-echo "mouse-2: visit buffer for notes you don't want to save, and for Lisp evaluation"))
> !      :face 'default "\n"
> ! 
> !      ;; Customize this screen.
> !      :face '(link variable-pitch)
> !      (lambda ()
> !        (propertize "Customize Startup Screen"
> ! 		   'keymap fancy-splash-link-keymap
> ! 		   'link (lambda ()
> ! 			   (interactive)
> ! 			   (customize-group 'initialization))
> ! 		   'help-echo "mouse-2: customize this screen"))
> !      :face 'default "\n"
> ! 
> !      ;; Exit this screen.
> !      :face '(link variable-pitch)
> !      (lambda ()
> !        (propertize "Exit This Screen"
> ! 		   'keymap fancy-splash-link-keymap
> ! 		   'link (lambda ()
> ! 			   (interactive)
> ! 			   (kill-buffer splash-buffer))
> ! 		   'help-echo "mouse-2: exit this screen"))
> !      :face 'default "\n"
> ! 
> !      "\n")))
>   
>   (defun fancy-splash-tail ()
>     "Insert the tail part of the splash screen into the current buffer."
> ***************
> *** 1343,1349 ****
>       (throw 'stop-splashing nil))
>     (unless fancy-current-text
>       (setq fancy-current-text fancy-splash-text))
> !   (let ((text (car fancy-current-text)))
>       (set-buffer buffer)
>       (erase-buffer)
>       (if pure-space-overflow
> --- 1429,1436 ----
>       (throw 'stop-splashing nil))
>     (unless fancy-current-text
>       (setq fancy-current-text fancy-splash-text))
> !   (let ((text (car fancy-current-text))
> ! 	(inhibit-read-only t))
>       (set-buffer buffer)
>       (erase-buffer)
>       (if pure-space-overflow
> ***************
> *** 1360,1432 ****
>       (force-mode-line-update)
>       (setq fancy-current-text (cdr fancy-current-text))))
>   
> ! 
> ! (defun fancy-splash-default-action ()
> !   "Stop displaying the splash screen buffer.
> ! This is an internal function used to turn off the splash screen after
> ! the user caused an input event by hitting a key or clicking with the
> ! mouse."
> !   (interactive)
> !   (if (and (memq 'down (event-modifiers last-command-event))
> ! 	   (eq (posn-window (event-start last-command-event))
> ! 	       (selected-window)))
> !       ;; This is a mouse-down event in the spash screen window.
> !       ;; Ignore it and consume the corresponding mouse-up event.
> !       (read-event)
> !     (push last-command-event unread-command-events))
> !   (throw 'exit nil))
> ! 
> ! (defun fancy-splash-special-event-action ()
> !   "Save the last event and stop displaying the splash screen buffer.
> ! This is an internal function used to turn off the splash screen after
> ! the user caused an input event that is bound in `special-event-map'"
>     (interactive)
> !   (setq fancy-splash-last-input-event last-input-event)
> !   (throw 'exit nil))
>   
>   
> ! (defun fancy-splash-screens (&optional hide-on-input)
>     "Display fancy splash screens when Emacs starts."
> !   (if hide-on-input
>         (let ((old-hourglass display-hourglass)
>   	    (fancy-splash-outer-buffer (current-buffer))
>   	    splash-buffer
> - 	    (old-minor-mode-map-alist minor-mode-map-alist)
> - 	    (old-emulation-mode-map-alists emulation-mode-map-alists)
> - 	    (old-special-event-map special-event-map)
>   	    (frame (fancy-splash-frame))
>   	    timer)
>   	(save-selected-window
>   	  (select-frame frame)
> ! 	  (switch-to-buffer " GNU Emacs")
>   	  (make-local-variable 'cursor-type)
>   	  (setq splash-buffer (current-buffer))
>   	  (catch 'stop-splashing
>   	    (unwind-protect
> ! 		(let ((map (make-sparse-keymap))
> ! 		      (cursor-type nil))
> ! 		  (use-local-map map)
> ! 		  (define-key map [switch-frame] 'ignore)
> ! 		  (define-key map [t] 'fancy-splash-default-action)
> ! 		  (define-key map [mouse-movement] 'ignore)
> ! 		  (define-key map [mode-line t] 'ignore)
> ! 		  ;; Temporarily bind special events to
> ! 		  ;; fancy-splash-special-event-action so as to stop
> ! 		  ;; displaying splash screens with such events.
> ! 		  ;; Otherwise, drag-n-drop into splash screens may
> ! 		  ;; leave us in recursive editing with invisible
> ! 		  ;; cursors for a while.
> ! 		  (setq special-event-map (make-sparse-keymap))
> ! 		  (map-keymap
> ! 		   (lambda (key def)
> ! 		     (define-key special-event-map (vector key)
> ! 		       (if (eq def 'ignore)
> ! 			   'ignore
> ! 			 'fancy-splash-special-event-action)))
> ! 		   old-special-event-map)
>   		  (setq display-hourglass nil
> - 			minor-mode-map-alist nil
> - 			emulation-mode-map-alists nil
>   			buffer-undo-list t
>   			mode-line-format (propertize "---- %b %-"
>   						     'face 'mode-line-buffer-id)
> --- 1447,1491 ----
>       (force-mode-line-update)
>       (setq fancy-current-text (cdr fancy-current-text))))
>   
> ! (defun fancy-splash-quit ()
> !   "Stop displaying the splash screen buffer."
>     (interactive)
> !   (if fancy-splash-outer-buffer
> !       (throw 'exit nil)
> !     (kill-buffer splash-buffer)))
>   
> + (defun fancy-splash-link-at-point ()
> +   "Go to the link at point."
> +   (interactive)
> +   (let ((link (get-text-property (point) 'link)))
> +     (when link
> +       (cond ((stringp link) (browse-url link))
> + 	    ((commandp link) (command-execute link))
> + 	    ((functionp link) (funcall link))))))
> + 
> + (defun fancy-splash-link-at-click (click)
> +   "Follow a link where you click."
> +   (interactive "e")
> +   (mouse-set-point click)
> +   (fancy-splash-link-at-point))
>   
> ! (defun fancy-splash-screens (&optional static)
>     "Display fancy splash screens when Emacs starts."
> !   (if (not static)
>         (let ((old-hourglass display-hourglass)
>   	    (fancy-splash-outer-buffer (current-buffer))
>   	    splash-buffer
>   	    (frame (fancy-splash-frame))
>   	    timer)
>   	(save-selected-window
>   	  (select-frame frame)
> ! 	  (switch-to-buffer " About GNU Emacs")
>   	  (make-local-variable 'cursor-type)
>   	  (setq splash-buffer (current-buffer))
>   	  (catch 'stop-splashing
>   	    (unwind-protect
> ! 		(let ((cursor-type nil))
>   		  (setq display-hourglass nil
>   			buffer-undo-list t
>   			mode-line-format (propertize "---- %b %-"
>   						     'face 'mode-line-buffer-id)
> ***************
> *** 1435,1459 ****
>   			timer (run-with-timer 0 fancy-splash-delay
>   					      #'fancy-splash-screens-1
>   					      splash-buffer))
>   		  (message "%s" (startup-echo-area-message))
>   		  (recursive-edit))
>   	      (cancel-timer timer)
> ! 	      (setq display-hourglass old-hourglass
> ! 		    minor-mode-map-alist old-minor-mode-map-alist
> ! 		    emulation-mode-map-alists old-emulation-mode-map-alists
> ! 		    special-event-map old-special-event-map)
> ! 	      (kill-buffer splash-buffer)
> ! 	      (when fancy-splash-last-input-event
> ! 		(setq last-input-event fancy-splash-last-input-event
> ! 		      fancy-splash-last-input-event nil)
> ! 		(command-execute (lookup-key special-event-map
> ! 					     (vector last-input-event))
> ! 				 nil (vector last-input-event) t))))))
> !     ;; If hide-on-input is nil, don't hide the buffer on input.
>       (if (or (window-minibuffer-p)
>   	    (window-dedicated-p (selected-window)))
>   	(pop-to-buffer (current-buffer))
> !       (switch-to-buffer "*About GNU Emacs*"))
>       (setq buffer-read-only nil)
>       (erase-buffer)
>       (if pure-space-overflow
> --- 1494,1511 ----
>   			timer (run-with-timer 0 fancy-splash-delay
>   					      #'fancy-splash-screens-1
>   					      splash-buffer))
> + 		  (use-local-map fancy-splash-keymap)
>   		  (message "%s" (startup-echo-area-message))
> + 		  (setq buffer-read-only t)
>   		  (recursive-edit))
>   	      (cancel-timer timer)
> ! 	      (setq display-hourglass old-hourglass)
> ! 	      (kill-buffer splash-buffer)))))
> !     ;; If static is nil, don't hide the buffer on input.
>       (if (or (window-minibuffer-p)
>   	    (window-dedicated-p (selected-window)))
>   	(pop-to-buffer (current-buffer))
> !       (switch-to-buffer " GNU Emacs"))
>       (setq buffer-read-only nil)
>       (erase-buffer)
>       (if pure-space-overflow
> ***************
> *** 1469,1478 ****
> --- 1521,1532 ----
>         (delete-region (point) (point-max))
>         (insert "\n")
>         (fancy-splash-tail)
> +       (use-local-map fancy-splash-keymap)
>         (set-buffer-modified-p nil)
>         (setq buffer-read-only t)
>         (if (and view-read-only (not view-mode))
>   	  (view-mode-enter nil 'kill-buffer))
> +       (setq splash-buffer (current-buffer))
>         (goto-char (point-min)))))
>   
>   (defun fancy-splash-frame ()
> ***************
> *** 1507,1521 ****
>   	  (> frame-height (+ image-height 19)))))))
>   
>   
> ! (defun normal-splash-screen (&optional hide-on-input)
>     "Display splash screen when Emacs starts."
>     (let ((prev-buffer (current-buffer)))
>       (unwind-protect
> ! 	(with-current-buffer (get-buffer-create "GNU Emacs")
>   	  (setq buffer-read-only nil)
>   	  (erase-buffer)
>   	  (set (make-local-variable 'tab-width) 8)
> ! 	  (if hide-on-input
>   	      (set (make-local-variable 'mode-line-format)
>   		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
>   
> --- 1561,1575 ----
>   	  (> frame-height (+ image-height 19)))))))
>   
>   
> ! (defun normal-splash-screen (&optional static)
>     "Display splash screen when Emacs starts."
>     (let ((prev-buffer (current-buffer)))
>       (unwind-protect
> ! 	(with-current-buffer (get-buffer-create " About GNU Emacs")
>   	  (setq buffer-read-only nil)
>   	  (erase-buffer)
>   	  (set (make-local-variable 'tab-width) 8)
> ! 	  (if (not static)
>   	      (set (make-local-variable 'mode-line-format)
>   		   (propertize "---- %b %-" 'face 'mode-line-buffer-id)))
>   
> ***************
> *** 1533,1545 ****
>                  ", one component of the GNU/Linux operating system.\n"
>                ", a part of the GNU operating system.\n"))
>   
> ! 	  (if hide-on-input
>   	      (insert (substitute-command-keys
>   		       (concat
> ! 			"\nType \\[recenter] to begin editing"
> ! 			(if (equal (buffer-name prev-buffer) "*scratch*")
> ! 			    ".\n"
> ! 			  " your file.\n")))))
>   
>             (if (display-mouse-p)
>                 ;; The user can use the mouse to activate menus
> --- 1587,1596 ----
>                  ", one component of the GNU/Linux operating system.\n"
>                ", a part of the GNU operating system.\n"))
>   
> ! 	  (if (not static)
>   	      (insert (substitute-command-keys
>   		       (concat
> ! 			"\nType \\[recenter] to quit from this screen.\n"))))
>   
>             (if (display-mouse-p)
>                 ;; The user can use the mouse to activate menus
> ***************
> *** 1655,1664 ****
>   	  (if (and view-read-only (not view-mode))
>   	      (view-mode-enter nil 'kill-buffer))
>             (goto-char (point-min))
> !           (if hide-on-input
>                 (if (or (window-minibuffer-p)
>                         (window-dedicated-p (selected-window)))
> !                   ;; If hide-on-input is nil, creating a new frame will
>                     ;; generate enough events that the subsequent `sit-for'
>                     ;; will immediately return anyway.
>                     nil ;; (pop-to-buffer (current-buffer))
> --- 1706,1715 ----
>   	  (if (and view-read-only (not view-mode))
>   	      (view-mode-enter nil 'kill-buffer))
>             (goto-char (point-min))
> !           (if (not static)
>                 (if (or (window-minibuffer-p)
>                         (window-dedicated-p (selected-window)))
> !                   ;; If static is nil, creating a new frame will
>                     ;; generate enough events that the subsequent `sit-for'
>                     ;; will immediately return anyway.
>                     nil ;; (pop-to-buffer (current-buffer))
> ***************
> *** 1670,1679 ****
>               ;; In case the window is dedicated or something.
>               (error (pop-to-buffer (current-buffer))))))
>         ;; Unwind ... ensure splash buffer is killed
> !       (if hide-on-input
> ! 	  (kill-buffer "GNU Emacs")
> ! 	(switch-to-buffer "GNU Emacs")
> ! 	(rename-buffer "*About GNU Emacs*" t)))))
>   
>   
>   (defun startup-echo-area-message ()
> --- 1721,1730 ----
>               ;; In case the window is dedicated or something.
>               (error (pop-to-buffer (current-buffer))))))
>         ;; Unwind ... ensure splash buffer is killed
> !       (if (not static)
> ! 	  (kill-buffer " About GNU Emacs")
> ! 	(switch-to-buffer " About GNU Emacs")
> ! 	(rename-buffer " GNU Emacs" t)))))
>   
>   
>   (defun startup-echo-area-message ()
> ***************
> *** 1689,1704 ****
>       (message "%s" (startup-echo-area-message))))
>   
>   
> ! (defun display-splash-screen (&optional hide-on-input)
>     "Display splash screen according to display.
>   Fancy splash screens are used on graphic displays,
>   normal otherwise.
>   With a prefix argument, any user input hides the splash screen."
>     (interactive "P")
>     (if (use-fancy-splash-screens-p)
> !       (fancy-splash-screens hide-on-input)
> !     (normal-splash-screen hide-on-input)))
>   
>   
>   (defun command-line-1 (command-line-args-left)
>     (or noninteractive (input-pending-p) init-file-had-error
> --- 1740,1756 ----
>       (message "%s" (startup-echo-area-message))))
>   
>   
> ! (defun display-splash-screen (&optional static)
>     "Display splash screen according to display.
>   Fancy splash screens are used on graphic displays,
>   normal otherwise.
>   With a prefix argument, any user input hides the splash screen."
>     (interactive "P")
>     (if (use-fancy-splash-screens-p)
> !       (fancy-splash-screens static)
> !     (normal-splash-screen static)))
>   
> + (defalias 'about-emacs 'display-splash-screen)
>   
>   (defun command-line-1 (command-line-args-left)
>     (or noninteractive (input-pending-p) init-file-had-error
> ***************
> *** 1958,1965 ****
> --- 2010,2025 ----
>              (or (get-buffer-window first-file-buffer)
>                  (list-buffers)))))
>   
> +   (when initial-buffer
> +     (cond ((and (equal "*scratch*" initial-buffer)
> + 		(get-buffer "*scratch*"))
> + 	   (switch-to-buffer "*scratch*"))
> + 	  ((file-exists-p initial-buffer)
> + 	   (find-file initial-buffer))))
> + 
>     ;; Maybe display a startup screen.
>     (unless (or inhibit-startup-message
> + 	      initial-buffer
>   	      noninteractive
>   	      emacs-quick-startup)
>       ;; Display a startup screen, after some preparations.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-25  5:24                             ` David Kastrup
@ 2007-07-27 21:20                               ` Juri Linkov
  0 siblings, 0 replies; 218+ messages in thread
From: Juri Linkov @ 2007-07-27 21:20 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, emacs-devel

>> Index: lisp/startup.el
>>             ^^^^^^^^^^
>>   (defgroup initialization nil
>>     "Emacs start-up procedure."
>>            ^^^^^^^^
>> !   :group 'internal)
>>   (defcustom inhibit-splash-screen nil
>>     "Non-nil inhibits the startup screen.
>>                            ^^^^^^^
>>   (defgroup initialization nil
>>     "Emacs start-up procedure."
>>            ^^^^^^^^
>> ! (defcustom initial-buffer nil
>> !   "Buffer to show after starting Emacs."
>>                           ^^^^^^^^
>>   (defcustom inhibit-splash-screen nil
>>     "Non-nil inhibits the startup screen.
>>                           ^^^^^^^
>>     ;; Maybe display a startup screen.
>>                        ^^^^^^^
>>       ;; Display a startup screen, after some preparations.
>>                    ^^^^^^^
>
> Something is wrong here: DOC strings and comments very consistently
> talk of "startup screen", yet the variable and group names themselves
> draw from some irregular use of "initial", "initialization" and
> "splash".

I think these names could be unified under the same name later after
achieving an agreement on the best one.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-27 21:16                             ` Juri Linkov
@ 2007-07-29  2:23                               ` Richard Stallman
  2007-07-29  9:18                                 ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-07-29  2:23 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    > ! (defcustom initial-buffer nil
    > !   "Buffer to show after starting Emacs."
    > !   :type '(choice
    > !           (directory :tag "Directory"        :value "~/")
    > !           (file      :tag "File"             :value "~/new.txt")
    > !           (const     :tag "*scratch* buffer" :value "*scratch*")
    > !           (const     :tag "Splash screen"    nil))

That variable name is misleading because the value is not a buffer.
Please change the variable name to one that fits the meaning.

Aside from that, it seems plausible, but I'd like people
to try it and report on it before it is installed.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  2:23                               ` Richard Stallman
@ 2007-07-29  9:18                                 ` Juri Linkov
  2007-07-29  9:46                                   ` David Kastrup
                                                     ` (5 more replies)
  0 siblings, 6 replies; 218+ messages in thread
From: Juri Linkov @ 2007-07-29  9:18 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     > ! (defcustom initial-buffer nil
>     > !   "Buffer to show after starting Emacs."
>     > !   :type '(choice
>     > !           (directory :tag "Directory"        :value "~/")
>     > !           (file      :tag "File"             :value "~/new.txt")
>     > !           (const     :tag "*scratch* buffer" :value "*scratch*")
>     > !           (const     :tag "Splash screen"    nil))
>
> That variable name is misleading because the value is not a buffer.
> Please change the variable name to one that fits the meaning.

The name `initial-buffer' means what the current buffer the user gets
after startup: a buffer with the home directory, a buffer with some
specified file, the *scratch* buffer, or the buffer with startup screen.

I don't see a better name.  Maybe, `initial-display-buffer' or
`initial-current-buffer'?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
@ 2007-07-29  9:46                                   ` David Kastrup
  2007-07-29 14:28                                     ` Drew Adams
  2007-07-30 16:44                                   ` Richard Stallman
                                                     ` (4 subsequent siblings)
  5 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-29  9:46 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov <juri@jurta.org> writes:

>>     > ! (defcustom initial-buffer nil
>>     > !   "Buffer to show after starting Emacs."
>>     > !   :type '(choice
>>     > !           (directory :tag "Directory"        :value "~/")
>>     > !           (file      :tag "File"             :value "~/new.txt")
>>     > !           (const     :tag "*scratch* buffer" :value "*scratch*")
>>     > !           (const     :tag "Splash screen"    nil))
>>
>> That variable name is misleading because the value is not a buffer.
>> Please change the variable name to one that fits the meaning.
>
> The name `initial-buffer' means what the current buffer the user gets
> after startup: a buffer with the home directory, a buffer with some
> specified file, the *scratch* buffer, or the buffer with startup screen.
>
> I don't see a better name.  Maybe, `initial-display-buffer' or
> `initial-current-buffer'?

initial-visit maybe?  Actually, "*scratch*" is a value with a
different logic, so one should perhaps explain what makes it special.
I could not guess, for example, what "*Messages*" would do here.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-29  9:46                                   ` David Kastrup
@ 2007-07-29 14:28                                     ` Drew Adams
  0 siblings, 0 replies; 218+ messages in thread
From: Drew Adams @ 2007-07-29 14:28 UTC (permalink / raw)
  To: emacs-devel

> >>     > ! (defcustom initial-buffer nil
> >>
> >> That variable name is misleading because the value is not a buffer.
> >> Please change the variable name to one that fits the meaning.
> >
> > The name `initial-buffer' means what the current buffer the user gets
> > after startup: a buffer with the home directory, a buffer with some
> > specified file, the *scratch* buffer, or the buffer with startup screen.
> >
> > I don't see a better name.  Maybe, `initial-display-buffer' or
> > `initial-current-buffer'?
>
> initial-visit maybe?


1. `visit-on-startup' (the original proposal).

Or `show-on-startup' if you don't like "visit". As David pointed out,
"startup" is clear and is consistently used to describe the startup stuff in
doc strings. If you reject "startup" and insist on "initial", then
`visit-initially' or `show-initially'.


2. Many newbies won't even know at this point what a buffer is. "*scratch*"
won't mean much to them either, but calling it a "Lisp buffer" or, better, a
"scratch Lisp buffer" will give them an idea what it is.


3. And the verbs "create", "visit", and "read" are not needed. It's obvious
what you do with each of these: new file, directory, scratch buffer,
tutorial, FAQ, manual.

So, as I suggested earlier, keep it simple:

>  [New File]
>  [Directory]
>  [Scratch Lisp Buffer]
>  [Tutorial]
>  [FAQ]
>  [Manual]
>  [Customize Startup Display]

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
  2007-07-29  9:46                                   ` David Kastrup
@ 2007-07-30 16:44                                   ` Richard Stallman
  2007-07-31  8:51                                   ` Miles Bader
                                                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-30 16:44 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    The name `initial-buffer' means what the current buffer the user gets
    after startup: a buffer with the home directory, a buffer with some
    specified file, the *scratch* buffer, or the buffer with startup screen.

    I don't see a better name.  Maybe, `initial-display-buffer' or
    `initial-current-buffer'?

Those names are no better.  The problem is in the word "buffer".  The
value is never a buffer.

    >>     > !           (const     :tag "*scratch* buffer" :value "*scratch*")
    >>     > !           (const     :tag "Splash screen"    nil))
    >>
    >> That variable name is misleading because the value is not a buffer.
    >> Please change the variable name to one that fits the meaning.
    >
    > The name `initial-buffer' means what the current buffer the user gets
    > after startup: a buffer with the home directory, a buffer with some
    > specified file, the *scratch* buffer, or the buffer with startup screen.
    >
    > I don't see a better name.  Maybe, `initial-display-buffer' or
    > `initial-current-buffer'?

    initial-visit maybe?  Actually, "*scratch*" is a value with a
    different logic, so one should perhaps explain what makes it special.
    I could not guess, for example, what "*Messages*" would do here.

It should treat all strings alike -- as file names.
The value that means "scratch buffer" should not be a string.

Here's an idea: if the value is a non-nil symbol, create a buffer called
`*scratch*' and put it in that mode.  Thus, the value that stands
for the current scratch buffer would be `lisp-interaction-mode'.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
  2007-07-29  9:46                                   ` David Kastrup
  2007-07-30 16:44                                   ` Richard Stallman
@ 2007-07-31  8:51                                   ` Miles Bader
  2007-07-31 13:09                                     ` Stefan Monnier
  2007-07-31  8:54                                   ` Miles Bader
                                                     ` (2 subsequent siblings)
  5 siblings, 1 reply; 218+ messages in thread
From: Miles Bader @ 2007-07-31  8:51 UTC (permalink / raw)
  To: emacs-devel

Juri Linkov <juri@jurta.org> writes:
>> That variable name is misleading because the value is not a buffer.
>> Please change the variable name to one that fits the meaning.
>
> I don't see a better name.  Maybe, `initial-display-buffer' or
> `initial-current-buffer'?

`initial-buffer-name'

-Miles

-- 
80% of success is just showing up.  --Woody Allen

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
                                                     ` (2 preceding siblings ...)
  2007-07-31  8:51                                   ` Miles Bader
@ 2007-07-31  8:54                                   ` Miles Bader
  2007-07-31 13:09                                   ` Stefan Monnier
  2007-07-31 14:29                                   ` Andreas Schwab
  5 siblings, 0 replies; 218+ messages in thread
From: Miles Bader @ 2007-07-31  8:54 UTC (permalink / raw)
  To: emacs-devel

Juri Linkov <juri@jurta.org> writes:
>> That variable name is misleading because the value is not a buffer.
>> Please change the variable name to one that fits the meaning.
>
> I don't see a better name.  Maybe, `initial-display-buffer' or
> `initial-current-buffer'?

`initial-buffer-name'

-Miles

-- 
Come now, if we were really planning to harm you, would we be waiting here,
 beside the path, in the very darkest part of the forest?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31  8:51                                   ` Miles Bader
@ 2007-07-31 13:09                                     ` Stefan Monnier
  2007-07-31 14:29                                       ` David Kastrup
                                                         ` (3 more replies)
  0 siblings, 4 replies; 218+ messages in thread
From: Stefan Monnier @ 2007-07-31 13:09 UTC (permalink / raw)
  To: Miles Bader; +Cc: emacs-devel

>>> That variable name is misleading because the value is not a buffer.
>>> Please change the variable name to one that fits the meaning.
>> 
>> I don't see a better name.  Maybe, `initial-display-buffer' or
>> `initial-current-buffer'?

> `initial-buffer-name'

Since it's not a name, that's probably not the best choice either.
How 'bout initial-buffer-content?  initial-buffer-target?
initial-buffer-specification?


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
                                                     ` (3 preceding siblings ...)
  2007-07-31  8:54                                   ` Miles Bader
@ 2007-07-31 13:09                                   ` Stefan Monnier
  2007-07-31 14:29                                   ` Andreas Schwab
  5 siblings, 0 replies; 218+ messages in thread
From: Stefan Monnier @ 2007-07-31 13:09 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

>> > ! (defcustom initial-buffer nil
>> > !   "Buffer to show after starting Emacs."
>> > !   :type '(choice
>> > !           (directory :tag "Directory"        :value "~/")
>> > !           (file      :tag "File"             :value "~/new.txt")
>> > !           (const     :tag "*scratch* buffer" :value "*scratch*")
>> > !           (const     :tag "Splash screen"    nil))

We need to add ".".


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 13:09                                     ` Stefan Monnier
@ 2007-07-31 14:29                                       ` David Kastrup
  2007-07-31 20:22                                         ` Richard Stallman
  2007-08-01  4:34                                       ` Miles Bader
                                                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-31 14:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Miles Bader, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>>> That variable name is misleading because the value is not a buffer.
>>>> Please change the variable name to one that fits the meaning.
>>> 
>>> I don't see a better name.  Maybe, `initial-display-buffer' or
>>> `initial-current-buffer'?
>
>> `initial-buffer-name'
>
> Since it's not a name, that's probably not the best choice either.
> How 'bout initial-buffer-content?  initial-buffer-target?
> initial-buffer-specification?

startup-item

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-29  9:18                                 ` Juri Linkov
                                                     ` (4 preceding siblings ...)
  2007-07-31 13:09                                   ` Stefan Monnier
@ 2007-07-31 14:29                                   ` Andreas Schwab
  2007-07-31 14:42                                     ` David Kastrup
  5 siblings, 1 reply; 218+ messages in thread
From: Andreas Schwab @ 2007-07-31 14:29 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov <juri@jurta.org> writes:

>>     > ! (defcustom initial-buffer nil
>>     > !   "Buffer to show after starting Emacs."
>>     > !   :type '(choice
>>     > !           (directory :tag "Directory"        :value "~/")
>>     > !           (file      :tag "File"             :value "~/new.txt")
>>     > !           (const     :tag "*scratch* buffer" :value "*scratch*")
>>     > !           (const     :tag "Splash screen"    nil))

"*scratch*" should be represented differently, since it is used as a
buffer name instead of a file name.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 14:29                                   ` Andreas Schwab
@ 2007-07-31 14:42                                     ` David Kastrup
  2007-08-01 16:45                                       ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-07-31 14:42 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Juri Linkov, rms, emacs-devel

Andreas Schwab <schwab@suse.de> writes:

> Juri Linkov <juri@jurta.org> writes:
>
>>>     > ! (defcustom initial-buffer nil
>>>     > !   "Buffer to show after starting Emacs."
>>>     > !   :type '(choice
>>>     > !           (directory :tag "Directory"        :value "~/")
>>>     > !           (file      :tag "File"             :value "~/new.txt")
>>>     > !           (const     :tag "*scratch* buffer" :value "*scratch*")
>>>     > !           (const     :tag "Splash screen"    nil))
>
> "*scratch*" should be represented differently, since it is used as a
> buffer name instead of a file name.

I found Richard's proposal to use 'lisp-interaction-mode here
appealing.  However, this leaves open what initial-major-mode should
do.

Maybe we should have
initial-visitor just evaluated.  Then one can set it to (find-file
"~/") or (display-splash-screen) or (switch-to-buffer "*scratch*").

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 14:29                                       ` David Kastrup
@ 2007-07-31 20:22                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-07-31 20:22 UTC (permalink / raw)
  To: David Kastrup; +Cc: emacs-devel, monnier, miles.bader

    > Since it's not a name, that's probably not the best choice either.
    > How 'bout initial-buffer-content?  initial-buffer-target?
    > initial-buffer-specification?

    startup-item

"Item" doesn't say much.   `initial-buffer-contents'
or `startup-buffer-contents' seem to be the best ideas so far.

(It should be "contents", not "content".)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 13:09                                     ` Stefan Monnier
  2007-07-31 14:29                                       ` David Kastrup
@ 2007-08-01  4:34                                       ` Miles Bader
  2007-08-01  4:35                                       ` Miles Bader
  2007-08-01  5:14                                       ` Drew Adams
  3 siblings, 0 replies; 218+ messages in thread
From: Miles Bader @ 2007-08-01  4:34 UTC (permalink / raw)
  To: emacs-devel


-- 
`The suburb is an obsolete and contradictory form of human settlement'

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 13:09                                     ` Stefan Monnier
  2007-07-31 14:29                                       ` David Kastrup
  2007-08-01  4:34                                       ` Miles Bader
@ 2007-08-01  4:35                                       ` Miles Bader
  2007-08-01  5:14                                       ` Drew Adams
  3 siblings, 0 replies; 218+ messages in thread
From: Miles Bader @ 2007-08-01  4:35 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> I don't see a better name.  Maybe, `initial-display-buffer' or
>>> `initial-current-buffer'?
>
>> `initial-buffer-name'
>
> Since it's not a name, that's probably not the best choice either.
> How 'bout initial-buffer-content?  initial-buffer-target?
> initial-buffer-specification?

Oh, whoops... :-)

Yeah, then I agree, `initial-buffer-contents' seems best.

-Miles

-- 
`Life is a boundless sea of bitterness'

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-07-31 13:09                                     ` Stefan Monnier
                                                         ` (2 preceding siblings ...)
  2007-08-01  4:35                                       ` Miles Bader
@ 2007-08-01  5:14                                       ` Drew Adams
  2007-08-01  5:55                                         ` David Kastrup
  2007-08-01  8:34                                         ` Jason Rumney
  3 siblings, 2 replies; 218+ messages in thread
From: Drew Adams @ 2007-08-01  5:14 UTC (permalink / raw)
  To: emacs-devel

> >>> That variable name is misleading because the value is not a buffer.
> >>> Please change the variable name to one that fits the meaning.
> >>
> >> I don't see a better name.  Maybe, `initial-display-buffer' or
> >> `initial-current-buffer'?
>
> > `initial-buffer-name'
>
> Since it's not a name, that's probably not the best choice either.
> How 'bout initial-buffer-content?  initial-buffer-target?
> initial-buffer-specification?

This is the craziest thread. Much ado about nothing.

Everyone seems to be tip-toeing around using a string that names a buffer as
a possible value. Why? Having a :tag that describes the value as `Buffer' is
not a problem - it is just a tag. Customize controls the type, enforcing a
string value.

It will be obvious to users that the value is a buffer name, not a buffer.
If there is any doubt, then the doc string is the place to point that out.
If a user can provide a file name, then why not a buffer name? I don't get
it.

Something like this is what we should use (change the option name, if you
must):

(defcustom visit-on-startup nil
  "What Emacs visits when it starts up.
A non-nil value is a string naming a directory, file, or buffer to visit.
If nil, then the splash screen is displayed."
  :type '(choice
          (directory :tag "Directory"      :value "~/")
          (file      :tag "File"           :value "~/new.txt")
          (string    :tag "Buffer"         :value "*scratch*")
          (const     :tag "Splash Screen"  nil))
  :group 'startup-display)

The value is a string or nil. If you choose `Buffer', then you can enter any
string (without completion). If the string names a buffer that exists at
startup, such as *scratch* or *Messages*, then that buffer is visited (in
the proper mode). If the string names a nonexistent buffer, then that buffer
is created and visited.

What am I missing? Why is this thread so Byzantine?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01  5:14                                       ` Drew Adams
@ 2007-08-01  5:55                                         ` David Kastrup
  2007-08-01  6:18                                           ` Drew Adams
  2007-08-01  8:34                                         ` Jason Rumney
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-01  5:55 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> (defcustom visit-on-startup nil
>   "What Emacs visits when it starts up.
> A non-nil value is a string naming a directory, file, or buffer to visit.
> If nil, then the splash screen is displayed."
>   :type '(choice
>           (directory :tag "Directory"      :value "~/")
>           (file      :tag "File"           :value "~/new.txt")
>           (string    :tag "Buffer"         :value "*scratch*")
>           (const     :tag "Splash Screen"  nil))
>   :group 'startup-display)
>
> The value is a string or nil. If you choose `Buffer', then you can enter any
> string (without completion). If the string names a buffer that exists at
> startup, such as *scratch* or *Messages*, then that buffer is visited (in
> the proper mode). If the string names a nonexistent buffer, then that buffer
> is created and visited.

You mean: then that _file_ is visited.  It does not make sense to
visit a buffer.

> What am I missing? Why is this thread so Byzantine?

What does "exist at startup" mean?  At the time the splash screen
might get displayed, .emacs is already processed, and any number of
buffers might be loaded already (including a whole desktop).  Those
numbers in general _don't_ have a buffer name corresponding to an
actual complete file name (there certainly won't be a buffer named ~/
even if ~/ is already visited at the time the splash screen might get
displayed).

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01  5:55                                         ` David Kastrup
@ 2007-08-01  6:18                                           ` Drew Adams
  2007-08-01  7:46                                             ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-08-01  6:18 UTC (permalink / raw)
  To: emacs-devel

> > (defcustom visit-on-startup nil
> >   "What Emacs visits when it starts up.
> > A non-nil value is a string naming a directory, file, or buffer
> to visit.
> > If nil, then the splash screen is displayed."
> >   :type '(choice
> >           (directory :tag "Directory"      :value "~/")
> >           (file      :tag "File"           :value "~/new.txt")
> >           (string    :tag "Buffer"         :value "*scratch*")
> >           (const     :tag "Splash Screen"  nil))
> >   :group 'startup-display)
> >
> > The value is a string or nil. If you choose `Buffer', then you
> > can enter any string (without completion). If the string names a
> > buffer that exists at startup, such as *scratch* or *Messages*,
> > then that buffer is visited (in the proper mode). If the string
> > names a nonexistent buffer, then that buffer is created and
> > visited.
>
> You mean: then that _file_ is visited.  It does not make sense to
> visit a buffer.

Oh, if you insist. I think we could use "visit" loosely here, to get the
point across, but if you want to be pedantic about it, then we shouldn't say
"visit" the splash screen either. So change it to speak of "visiting" a file
or directory, "displaying and selecting" a buffer, and "displaying" the
splash screen. Or whatever terminology is PC.

Call the option "what-to-do-at-startup" if you like ("And tomorrow morning,
we shall have what to do after firing. But today, today we have naming of
parts.").

> What does "exist at startup" mean?  At the time the splash screen
> might get displayed, .emacs is already processed, and any number of
> buffers might be loaded already (including a whole desktop).

And?

If the string value of the option names a file or directory, then visit it.
If not, and if the value names one of those numerous buffers "loaded
already" (do we "load" buffers, BTW?), then display and select it. If not,
and the value is a string, create, display, and select a buffer with that
name.

> Those numbers in general _don't_ have a buffer name corresponding to an
> actual complete file name (there certainly won't be a buffer named ~/
> even if ~/ is already visited at the time the splash screen might get
> displayed).

And?

If the string value is "~/", then visit the home directory.

If the string names an existing buffer, then display and select it; if not,
create, display, and select a buffer with that name. Why would such a buffer
need to "have a buffer name corresponding to an actual complete file name"?

I still don't get the point or the difficulty here.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01  6:18                                           ` Drew Adams
@ 2007-08-01  7:46                                             ` David Kastrup
  2007-08-01 14:32                                               ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-01  7:46 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

>> > (defcustom visit-on-startup nil
>> >   "What Emacs visits when it starts up.
>> > A non-nil value is a string naming a directory, file, or buffer
>> to visit.
>> > If nil, then the splash screen is displayed."
>> >   :type '(choice
>> >           (directory :tag "Directory"      :value "~/")
>> >           (file      :tag "File"           :value "~/new.txt")
>> >           (string    :tag "Buffer"         :value "*scratch*")
>> >           (const     :tag "Splash Screen"  nil))
>> >   :group 'startup-display)
>> >
>> > The value is a string or nil. If you choose `Buffer', then you
>> > can enter any string (without completion). If the string names a
>> > buffer that exists at startup, such as *scratch* or *Messages*,
>> > then that buffer is visited (in the proper mode). If the string
>> > names a nonexistent buffer, then that buffer is created and
>> > visited.
>>
>> You mean: then that _file_ is visited.  It does not make sense to
>> visit a buffer.
>
> Oh, if you insist. I think we could use "visit" loosely here, to get the
> point across, but if you want to be pedantic about it, then we shouldn't say
> "visit" the splash screen either. So change it to speak of "visiting" a file
> or directory, "displaying and selecting" a buffer, and "displaying" the
> splash screen. Or whatever terminology is PC.
>
> Call the option "what-to-do-at-startup" if you like ("And tomorrow morning,
> we shall have what to do after firing. But today, today we have naming of
> parts.").
>
>> What does "exist at startup" mean?  At the time the splash screen
>> might get displayed, .emacs is already processed, and any number of
>> buffers might be loaded already (including a whole desktop).
>
> And?
>
> If the string value of the option names a file or directory, then
> visit it.

You mean, if the name is "*scratch*" and in the current directory
at the time the desktop finished loading, there exists a file named
"*scratch*", this should be visited?

And if the current directory at the time of the startup happens to be
"/dak@fencepost.gnu.org:/home/g/gnudist" because there was the last
file loaded, then it should go through a remote connection and check
for the existence of "*scratch*" there?

> If not, and if the value names one of those numerous buffers "loaded
> already" (do we "load" buffers, BTW?),

No.  Files are visited by loading them into buffers.

> then display and select it. If not, and the value is a string,
> create, display, and select a buffer with that name.
>
>> Those numbers in general _don't_ have a buffer name corresponding to an
>> actual complete file name (there certainly won't be a buffer named ~/
>> even if ~/ is already visited at the time the splash screen might get
>> displayed).
>
> And?
>
> If the string value is "~/", then visit the home directory.

You have provided no coherent logic that would have this effect
without a lot of drawbacks.

> If the string names an existing buffer, then display and select it;
> if not, create, display, and select a buffer with that name. Why
> would such a buffer need to "have a buffer name corresponding to an
> actual complete file name"?

Because visiting a random file depending on just where we are at
startup is not useful behavior.

> I still don't get the point or the difficulty here.

On that point I agree.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01  5:14                                       ` Drew Adams
  2007-08-01  5:55                                         ` David Kastrup
@ 2007-08-01  8:34                                         ` Jason Rumney
  2007-08-01 14:32                                           ` Drew Adams
  1 sibling, 1 reply; 218+ messages in thread
From: Jason Rumney @ 2007-08-01  8:34 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

Drew Adams wrote:

> (defcustom visit-on-startup nil
>   "What Emacs visits when it starts up.
> A non-nil value is a string naming a directory, file, or buffer to visit.
> If nil, then the splash screen is displayed."
>   :type '(choice
>           (directory :tag "Directory"      :value "~/")
>           (file      :tag "File"           :value "~/new.txt")
>           (string    :tag "Buffer"         :value "*scratch*")
>           (const     :tag "Splash Screen"  nil))
>   :group 'startup-display)
>
> The value is a string or nil. If you choose `Buffer', then you can enter any
> string (without completion). If the string names a buffer that exists at
> startup, such as *scratch* or *Messages*, then that buffer is visited (in
> the proper mode). If the string names a nonexistent buffer, then that buffer
> is created and visited.
>
> What am I missing? Why is this thread so Byzantine?
>   

You are making a distinction in the UI between buffer and file. But the
distinction is thrown away immediately because buffer, file and
directory all map to strings.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01  7:46                                             ` David Kastrup
@ 2007-08-01 14:32                                               ` Drew Adams
  0 siblings, 0 replies; 218+ messages in thread
From: Drew Adams @ 2007-08-01 14:32 UTC (permalink / raw)
  To: emacs-devel

> > If the string value of the option names a file or directory, then
> > visit it.
>
> You mean, if the name is "*scratch*" and in the current directory
> at the time the desktop finished loading, there exists a file named
> "*scratch*", this should be visited?

So require the file and directory names to be absolute names.

> And if the current directory at the time of the startup happens to be
> "/dak@fencepost.gnu.org:/home/g/gnudist" because there was the last
> file loaded, then it should go through a remote connection and check
> for the existence of "*scratch*" there?

Require an absolute file name.

[Or tell users that they take a chance if they use a relative name.]

> > > ...any number of buffers might be loaded already...
> >
> > If not, and if the value names one of those numerous buffers "loaded
> > already" (do we "load" buffers, BTW?),
>
> No.  Files are visited by loading them into buffers.

See how easy it is to use terms loosely? I said "visit" a buffer; you said
"load" a buffer. Let us both do penance ;-).

> > then display and select it. If not, and the value is a string,
> > create, display, and select a buffer with that name.
> >
> >> Those numbers in general _don't_ have a buffer name corresponding to an
> >> actual complete file name (there certainly won't be a buffer named ~/
> >> even if ~/ is already visited at the time the splash screen might get
> >> displayed).
> >
> > And? If the string value is "~/", then visit the home directory.
>
> You have provided no coherent logic that would have this effect
> without a lot of drawbacks.

Don't know what that means. What is the problem with interpreting "~/" as an
absolute directory name (after expansion of `~')? Please elaborate on "a lot
of drawbacks".

> > If the string names an existing buffer, then display and select it;
> > if not, create, display, and select a buffer with that name. Why
> > would such a buffer need to "have a buffer name corresponding to an
> > actual complete file name"?
>
> Because visiting a random file depending on just where we are at
> startup is not useful behavior.

It's not random if its address is provided by the user as the option value.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01  8:34                                         ` Jason Rumney
@ 2007-08-01 14:32                                           ` Drew Adams
  2007-08-01 15:41                                             ` Andreas Schwab
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-08-01 14:32 UTC (permalink / raw)
  To: emacs-devel

> > What am I missing? Why is this thread so Byzantine?
>
> You are making a distinction in the UI between buffer and file. But the
> distinction is thrown away immediately because buffer, file and
> directory all map to strings.

If Customize can determine whether a string is a proper file or directory
name (types `file' and `directory'), then Emacs can tell whether a string is
a file or directory name.

If you're worried about interpreting relative file names in the wrong
default directory, as David is, then require an absolute file name as the
value. [Or warn users that if they use a relative name then the behavior
depends on the current directory.]

So, if the string is an absolute file or directory name, then visit the file
or directory; if not, interpret the string as a buffer name.

If there is a problem (e.g. error) visiting that file or directory, then
punt in some reasonable way - e.g. show the splash screen and an error
message.

We could also require that the file to visit exist, but I don't think that
is even necessary. There might be other details to work out, but, honestly,
this just doesn't seem that complex. We ought to be able to get something
reasonable up and running before 2010. Of course, then there's the name of
the option to worry about...

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 14:32                                           ` Drew Adams
@ 2007-08-01 15:41                                             ` Andreas Schwab
  2007-08-01 16:53                                               ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: Andreas Schwab @ 2007-08-01 15:41 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> If Customize can determine whether a string is a proper file or directory
> name (types `file' and `directory'),

It doesn't.  The difference is only in the UI, but otherwise matches any
string.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-07-31 14:42                                     ` David Kastrup
@ 2007-08-01 16:45                                       ` Juri Linkov
  2007-08-01 17:05                                         ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-01 16:45 UTC (permalink / raw)
  To: David Kastrup; +Cc: Andreas Schwab, rms, emacs-devel

> Maybe we should have
> initial-visitor just evaluated.  Then one can set it to (find-file
> "~/") or (display-splash-screen) or (switch-to-buffer "*scratch*").

Yes, then it would be easier to customize and precisely distinguish
different meanings of string values:

(defcustom startup-function nil
  "Function to call after starting Emacs."
  :type '(choice
          (const :tag "Splash screen" nil)
          (list :tag "Directory"
		(const :value dired)
		(directory :tag "Directory name" :value "~/"))
          (list :tag "File"
		(const :value find-file)
		(file :tag "File name" :value "~/new.txt"))
          (list :tag "Buffer"
		(const :value switch-to-buffer)
		(string :tag "Buffer name" :value "*scratch*")))
  :version "23.1"
  :group 'initialization)

And to eval one of the predefined non-nil funcalls:

(dired "~/")
(find-file "~/new.txt")
(switch-to-buffer "*scratch*")

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01 15:41                                             ` Andreas Schwab
@ 2007-08-01 16:53                                               ` Drew Adams
  2007-08-01 17:19                                                 ` Stefan Monnier
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-08-01 16:53 UTC (permalink / raw)
  To: emacs-devel

> > If Customize can determine whether a string is a proper file or
> > directory name (types `file' and `directory'),
>
> It doesn't.  The difference is only in the UI, but otherwise matches any
> string.

I see; I wasn't aware of that. Why is that?

Then shouldn't the doc (e.g. Elisp manual) be corrected to explain that
strong statements such as "The value must be a directory name" don't mean
what they say, that they mean only that you can use completion to insert an
existing directory name? They apparently mean nothing about the value
itself. If there is really no requirement that "the value _must_ be a
directory name", then why say that?

Wrt requiring an absolute name for a file or directory: We already do that
elsewhere - note the doc string here:

(defcustom auto-insert-directory "~/insert/"
  "*Directory from which auto-inserted files are taken.
The value must be an absolute directory name..."
  :type 'directory :group 'auto-insert)

Presumably, it is the code that uses `auto-insert-directory' that ensures
that the value is in fact an absolute directory name. The same could be done
for `visit-on-startup': check its value at startup time, to see if it is
`file-name-absolute-p', and use a buffer if it is not. And document this
behavior in the doc string.

Going beyond control at startup time, couldn't we use, instead of `file' and
`directory' for :type, a suitable `restricted-sexp' expression, to ensure
that the saved value is in fact a string that satisfies
`file-name-absolute-p'? I'm no expert on custom types, but what about
something like this - its seems to work OK:

:type '(restricted-sexp :match-alternatives
        ((lambda (x) (and (stringp x) (file-name-absolute-p x)))))

Anyway, this doesn't sound like an unsurmountable problem, however we
approach it. We should be able to let a user specify an absolute file or
directory name or a buffer name.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01 16:45                                       ` Juri Linkov
@ 2007-08-01 17:05                                         ` Drew Adams
  2007-08-01 18:09                                           ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-08-01 17:05 UTC (permalink / raw)
  To: emacs-devel

> > Maybe we should have
> > initial-visitor just evaluated.  Then one can set it to (find-file
> > "~/") or (display-splash-screen) or (switch-to-buffer "*scratch*").
>
> Yes, then it would be easier to customize and precisely distinguish
> different meanings of string values:
>
> (defcustom startup-function nil
>   "Function to call after starting Emacs."
>   :type '(choice
>           (const :tag "Splash screen" nil)
>           (list :tag "Directory"
> 		(const :value dired)
> 		(directory :tag "Directory name" :value "~/"))
>           (list :tag "File"
> 		(const :value find-file)
> 		(file :tag "File name" :value "~/new.txt"))
>           (list :tag "Buffer"
> 		(const :value switch-to-buffer)
> 		(string :tag "Buffer name" :value "*scratch*")))
>   :version "23.1"
>   :group 'initialization)
>
> And to eval one of the predefined non-nil funcalls:
>
> (dired "~/")
> (find-file "~/new.txt")
> (switch-to-buffer "*scratch*")

I wouldn't strongly argue against having a value that is evaled, but I don't
really see that as needed. And users, especially newbies, might get into
more trouble if we do that.

I don't think it would be "easier to customize" - I think the opposite. A
user would need to provide both the destination string and the action
function to apply to it. That could be confusing - for little or no gain
(for the user).

Why not just make sure that the value is a literal string of the right kind,
and provide only for `dired', `find-file', and `switch-to-buffer' as the
actions? Is there a real need to go beyond that to evaluation and arbitrary
actions?

If there is a _user_ need (benefit) for an evaled expression, then let's
hear it, but if this proposal is just because we seem to be having
difficulty finding a good way to implement file, directory, and buffer
values, then that's wrong. Let's not burden the user if we can avoid it.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 16:53                                               ` Drew Adams
@ 2007-08-01 17:19                                                 ` Stefan Monnier
  2007-08-01 17:54                                                   ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: Stefan Monnier @ 2007-08-01 17:19 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

> Wrt requiring an absolute name for a file or directory: We already do that
> elsewhere - note the doc string here:

My favorite choice would be "." and I don't mean "a buffer called .".


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01 17:19                                                 ` Stefan Monnier
@ 2007-08-01 17:54                                                   ` Drew Adams
  0 siblings, 0 replies; 218+ messages in thread
From: Drew Adams @ 2007-08-01 17:54 UTC (permalink / raw)
  To: emacs-devel

> > Wrt requiring an absolute name for a file or directory: We
> > already do that elsewhere - note the doc string here:
>
> My favorite choice would be "." and I don't mean "a buffer called .".

I see. Do you think we should have an additional choice that is a sexp to
eval at startup? (In your case, it could be (find-file ".").)

That should cover anyone's personal needs, and it could be ignored by most
users, including newbies. The doc string could even say something to the
effect that that choice is for "advanced" use, warn about potential gotchas,
and so on.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 17:05                                         ` Drew Adams
@ 2007-08-01 18:09                                           ` David Kastrup
  2007-08-01 18:29                                             ` Drew Adams
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-01 18:09 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

> I wouldn't strongly argue

You argue against anything not designed by yourself until everybody is
exhausted, so the strength is irrelevant.

> against having a value that is evaled, but I don't really see that
> as needed. And users, especially newbies, might get into more
> trouble if we do that.

Newbies are to use customize, and thus can't get into trouble.

> I don't think it would be "easier to customize" - I think the
> opposite.  A user would need to provide both the destination string
> and the action function to apply to it.  That could be confusing -
> for little or no gain (for the user).
>
> Why not just make sure that the value is a literal string of the
> right kind,

Drew, get a grip.  A string is of kind string, period.  There is no
"right" or "wrong" kind.  That is precisely the problem.

> and provide only for `dired', `find-file', and `switch-to-buffer' as
> the actions?

Well, have you actually taken a look at the code?  That is exactly
what the customization type provided.

> Is there a real need to go beyond that to evaluation and arbitrary
> actions?
>
> If there is a _user_ need (benefit) for an evaled expression, then
> let's hear it, but if this proposal is just because we seem to be
> having difficulty finding a good way to implement file, directory,
> and buffer values, then that's wrong. Let's not burden the user if
> we can avoid it.

There is no burden whatsoever for the user involved.  He gets the
right customization choices, and nothing else.  A fuzzy "Please try
figuring out what I mean by it" string of "the right kind" where the
user has no chance to figure out what action will result (since not
even Emacs has a chance to figure out without trying) is _not_ _at_
_all_ helpful for the user.

So please stop pretending that there are no valid objections and you
already have addressed them by handwaving.

It is likely possible to use a funcall here instead of an eval, but
the customized forms will be quite the same, and there are no savings
of confusion involved.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* RE: Scratch buffer annoyance
  2007-08-01 18:09                                           ` David Kastrup
@ 2007-08-01 18:29                                             ` Drew Adams
  2007-08-01 19:43                                               ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Drew Adams @ 2007-08-01 18:29 UTC (permalink / raw)
  To: emacs-devel

> You argue against anything not designed by yourself
> until everybody is exhausted

Please drop the personal attacks, David.

I was trying to help this interminable thread come to a conclusion, but you
can have it back. Carry on.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 18:29                                             ` Drew Adams
@ 2007-08-01 19:43                                               ` David Kastrup
  2007-08-01 19:54                                                 ` Davis Herring
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-01 19:43 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

"Drew Adams" <drew.adams@oracle.com> writes:

>> You argue against anything not designed by yourself
>> until everybody is exhausted
>
> Please drop the personal attacks, David.

Why the plural tense?  This was the first remark in this thread where
you (not for the first time) simply ignore others' explanations and
keep restating your initial not-thought-through proposal time and
again.

> I was trying to help this interminable thread come to a conclusion,

But wearing the others out is not going to address the underlying
technical _facts_ of their objections.  It is not a matter of opinion
that a string does not carry "file", "buffer", "whatever" markers
associated with it.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 19:43                                               ` David Kastrup
@ 2007-08-01 19:54                                                 ` Davis Herring
  2007-08-01 21:09                                                   ` David Kastrup
  2007-08-02 15:09                                                   ` Stefan Monnier
  0 siblings, 2 replies; 218+ messages in thread
From: Davis Herring @ 2007-08-01 19:54 UTC (permalink / raw)
  To: David Kastrup; +Cc: Drew Adams, emacs-devel

> But wearing the others out is not going to address the underlying
> technical _facts_ of their objections.  It is not a matter of opinion
> that a string does not carry "file", "buffer", "whatever" markers
> associated with it.

Why do you think we have text properties?  We can even propertize
different parts of the string differently.  So we can have "namename" with
(file t) on the first four characters and (buffer t) on the others to name
both the file and the buffer into which it goes.  Stefan (who wants ".")
can mark that as (directory t absolute nil) which takes care of the
where-emacs-is-run-or-not problem, and if the string is exactly "eval",
then its property list is evalled and we can do whatever else is needed. 
Add a 'mode property, and a 'vars property which is a list of buffer-local
bindings to set (to support buffer-offer-save for persistent *scratch*)...
I bet with this one string-valued variable we could do away with .emacs
altogether!

Davis

PS - What little of this idea isn't sheer madness is of course the same as
what's already proposed: (tag . str) where tag reflects the user's choice
of action: t for a buffer or 'file (or 'url, or...), with support for ~ in
filenames to make absolute names easy to type.

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 19:54                                                 ` Davis Herring
@ 2007-08-01 21:09                                                   ` David Kastrup
  2007-08-01 23:15                                                     ` Miles Bader
  2007-08-02 15:09                                                   ` Stefan Monnier
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-01 21:09 UTC (permalink / raw)
  To: herring; +Cc: Drew Adams, emacs-devel

"Davis Herring" <herring@lanl.gov> writes:

>> But wearing the others out is not going to address the underlying
>> technical _facts_ of their objections.  It is not a matter of opinion
>> that a string does not carry "file", "buffer", "whatever" markers
>> associated with it.
>
> Why do you think we have text properties?  We can even propertize
> different parts of the string differently.  So we can have
> "namename" with (file t) on the first four characters and (buffer t)
> on the others to name both the file and the buffer into which it
> goes.  Stefan (who wants ".")  can mark that as (directory t
> absolute nil) which takes care of the where-emacs-is-run-or-not
> problem, and if the string is exactly "eval", then its property list
> is evalled and we can do whatever else is needed.

It is good to see a solution that is not confusing to beginners.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 21:09                                                   ` David Kastrup
@ 2007-08-01 23:15                                                     ` Miles Bader
  2007-08-01 23:21                                                       ` Davis Herring
  2007-08-02 23:42                                                       ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Miles Bader @ 2007-08-01 23:15 UTC (permalink / raw)
  To: David Kastrup; +Cc: Drew Adams, emacs-devel

David Kastrup <dak@gnu.org> writes:
>> Why do you think we have text properties?
>
> It is good to see a solution that is not confusing to beginners.

I'm not sure which one you think is confusing to beginners, but I think
the text property solution would be far more confusing.

I mean really, something like (buffer "foo") or (file "~/bar")
seems pretty clear, even if you don't know what lisp is.

Text properties, on the other hand are _invisible_, and having strings
whose meaning differs based on invisible properties doesn't seems like a
very good interface at all for beginners... (or experts for that matter)

-Miles

-- 
We live, as we dream -- alone....

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 23:15                                                     ` Miles Bader
@ 2007-08-01 23:21                                                       ` Davis Herring
  2007-08-02  0:45                                                         ` Miles Bader
  2007-08-02 23:42                                                       ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Davis Herring @ 2007-08-01 23:21 UTC (permalink / raw)
  To: Miles Bader; +Cc: Drew Adams, emacs-devel

Davis: Why do you think we have text properties? ...
David: It is good to see a solution that is not confusing to beginners.

Miles:
> I'm not sure which one you think is confusing to beginners, but I think
> the text property solution would be far more confusing.
>
> I mean really, something like (buffer "foo") or (file "~/bar")
> seems pretty clear, even if you don't know what lisp is.
>
> Text properties, on the other hand are _invisible_, and having strings
> whose meaning differs based on invisible properties doesn't seems like a
> very good interface at all for beginners... (or experts for that matter)

In case I wasn't obvious enough, I was joking.  And from the shortness of
his reply, I am sure that David was joking too.  Text properties are more
than inappropriate here because they are attached to the characters and
not to the string: three different substrings could all be marked, say,
'buffer!

Davis

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 23:21                                                       ` Davis Herring
@ 2007-08-02  0:45                                                         ` Miles Bader
  0 siblings, 0 replies; 218+ messages in thread
From: Miles Bader @ 2007-08-02  0:45 UTC (permalink / raw)
  To: herring; +Cc: Drew Adams, emacs-devel

On 8/2/07, Davis Herring <herring@lanl.gov> wrote:
> In case I wasn't obvious enough, I was joking.  And from the shortness of
> his reply, I am sure that David was joking too.

D'oh!  :-/

-miles

-- 
Do not taunt Happy Fun Ball.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 19:54                                                 ` Davis Herring
  2007-08-01 21:09                                                   ` David Kastrup
@ 2007-08-02 15:09                                                   ` Stefan Monnier
  2007-08-02 23:42                                                     ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Stefan Monnier @ 2007-08-02 15:09 UTC (permalink / raw)
  To: herring; +Cc: Drew Adams, emacs-devel

> Why do you think we have text properties?  We can even propertize
> different parts of the string differently.  So we can have "namename" with
> (file t) on the first four characters and (buffer t) on the others to name
> both the file and the buffer into which it goes.  Stefan (who wants ".")
> can mark that as (directory t absolute nil) which takes care of the
> where-emacs-is-run-or-not problem, and if the string is exactly "eval",
> then its property list is evalled and we can do whatever else is needed. 

Great idea.  This way we can even extend this to allow opening several
files/buffers at startup: we just have to concatenate the corresponding file
names and buffer names (separated by spaces, for example) and place the
corresponding `buffer' or `file' property on each part.

And it's all trivial for the beginner since it still just a string: none of
that sexp madness.


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-01 23:15                                                     ` Miles Bader
  2007-08-01 23:21                                                       ` Davis Herring
@ 2007-08-02 23:42                                                       ` Richard Stallman
  2007-08-03 18:16                                                         ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-02 23:42 UTC (permalink / raw)
  To: Miles Bader; +Cc: drew.adams, emacs-devel

I recommend defining the value this way:

A string is a file name to visit.

A symbol that's a command is an initial major mode for *scratch*.

nil means keep the splash screen.

It does what we want and it is clear.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-02 15:09                                                   ` Stefan Monnier
@ 2007-08-02 23:42                                                     ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-02 23:42 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: drew.adams, emacs-devel

    Great idea.  This way we can even extend this to allow opening several
    files/buffers at startup: we just have to concatenate the corresponding file
    names and buffer names (separated by spaces, for example) and place the
    corresponding `buffer' or `file' property on each part.

    And it's all trivial for the beginner since it still just a string: none of
    that sexp madness.

I hope you are joking, because it if taken seriously, the idea is terrible.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-02 23:42                                                       ` Richard Stallman
@ 2007-08-03 18:16                                                         ` Juri Linkov
  2007-08-03 22:02                                                           ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-03 18:16 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> I recommend defining the value this way:
>
> A string is a file name to visit.

Then there is no distinction between file and directory names, but maybe
this is not needed provided that this string is always used as an argument
of `find-file'.

> A symbol that's a command is an initial major mode for *scratch*.

There is already a user option `initial-major-mode' that defines
an initial major mode for *scratch*.  Using two user options
for the same setting would be confusing.

> nil means keep the splash screen.
>
> It does what we want and it is clear.

Neither a string or a major mode makes it clear what the value is used for.
And I don't know what a variable name would be suitable for this option.

If an idea of setting this option to a function call like
(switch-to-buffer "*scratch*") is not acceptable (maybe this fits
better to adding such a funcall to a hook variable), then what is wrong
with using self-explanatory values like (buffer "foo") or (file "~/bar")?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-03 18:16                                                         ` Juri Linkov
@ 2007-08-03 22:02                                                           ` Richard Stallman
  2007-08-04  7:02                                                             ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-03 22:02 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    > A string is a file name to visit.

    Then there is no distinction between file and directory names, but maybe
    this is not needed provided that this string is always used as an argument
    of `find-file'.

Exactly.

    > A symbol that's a command is an initial major mode for *scratch*.

    There is already a user option `initial-major-mode' that defines
    an initial major mode for *scratch*.  Using two user options
    for the same setting would be confusing.

We could alias this variable to `initial-major-mode', or we
could say that t means use a *scratch* buffer.

    > It does what we want and it is clear.

    Neither a string or a major mode makes it clear what the value is used for.

So what?  That's what the doc string is for.

    And I don't know what a variable name would be suitable for this option.

`initial-buffer-contents' seems good.

    If an idea of setting this option to a function call like
    (switch-to-buffer "*scratch*") is not acceptable (maybe this fits
    better to adding such a funcall to a hook variable), then what is wrong
    with using self-explanatory values like (buffer "foo") or (file "~/bar")?

This complexity is unnecessary.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-03 22:02                                                           ` Richard Stallman
@ 2007-08-04  7:02                                                             ` David Kastrup
  2007-08-05  3:05                                                               ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-04  7:02 UTC (permalink / raw)
  To: rms; +Cc: Juri Linkov, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     > A string is a file name to visit.
>
>     Then there is no distinction between file and directory names, but maybe
>     this is not needed provided that this string is always used as an argument
>     of `find-file'.
>
> Exactly.
>
>     > A symbol that's a command is an initial major mode for *scratch*.
>
>     There is already a user option `initial-major-mode' that defines
>     an initial major mode for *scratch*.  Using two user options
>     for the same setting would be confusing.
>
> We could alias this variable to `initial-major-mode', or we
> could say that t means use a *scratch* buffer.

Then it would not be possible to specify a mode for *scratch* unless
one also makes *scratch* the startup screen.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-04  7:02                                                             ` David Kastrup
@ 2007-08-05  3:05                                                               ` Richard Stallman
  2007-08-05  6:57                                                                 ` David Kastrup
  2007-08-05 16:59                                                                 ` Juri Linkov
  0 siblings, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-05  3:05 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    Then it would not be possible to specify a mode for *scratch* unless
    one also makes *scratch* the startup screen.

As I understand it, part of the idea of this change is that
there won't BE a *scratch* buffer if you don't request it
in `initial-buffer-contents'.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-05  3:05                                                               ` Richard Stallman
@ 2007-08-05  6:57                                                                 ` David Kastrup
  2007-08-05 20:54                                                                   ` Richard Stallman
  2007-08-05 16:59                                                                 ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-05  6:57 UTC (permalink / raw)
  To: rms; +Cc: juri, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Then it would not be possible to specify a mode for *scratch* unless
>     one also makes *scratch* the startup screen.
>
> As I understand it, part of the idea of this change is that
> there won't BE a *scratch* buffer if you don't request it
> in `initial-buffer-contents'.

Certainly not at startup.  But I use a Lisp mode *scratch* buffer
regularly in the normal work.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-05  3:05                                                               ` Richard Stallman
  2007-08-05  6:57                                                                 ` David Kastrup
@ 2007-08-05 16:59                                                                 ` Juri Linkov
  2007-08-06 14:19                                                                   ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-05 16:59 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     Then it would not be possible to specify a mode for *scratch* unless
>     one also makes *scratch* the startup screen.
>
> As I understand it, part of the idea of this change is that
> there won't BE a *scratch* buffer if you don't request it
> in `initial-buffer-contents'.

It is very useful to create a *scratch* buffer at startup, even if it is
not displayed immediately.

But there is no need to replace `initial-major-mode' with using your idea
that t of a new option means display a *scratch* buffer created in mode
specified by `initial-major-mode'.

The only problem remains I think that the name `initial-buffer-contents'
is worse than simply `initial-buffer'.  It gives a false impression that
that some contents gets insterted into some fixed initial buffer.

Perhaps, a better name is `initial-display'?  This has clear semantics:
display the startup screen initially, display a *scratch* buffer, display the
home directory...

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-05  6:57                                                                 ` David Kastrup
@ 2007-08-05 20:54                                                                   ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-05 20:54 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    > As I understand it, part of the idea of this change is that
    > there won't BE a *scratch* buffer if you don't request it
    > in `initial-buffer-contents'.

    Certainly not at startup.  But I use a Lisp mode *scratch* buffer
    regularly in the normal work.

It is totally straightforward to set that up in .emacs, so I don't
think we need to set it up in this option.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-05 16:59                                                                 ` Juri Linkov
@ 2007-08-06 14:19                                                                   ` Richard Stallman
  2007-08-06 14:35                                                                     ` David Kastrup
  2007-08-08 22:59                                                                     ` Scratch buffer annoyance Juri Linkov
  0 siblings, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-06 14:19 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    > As I understand it, part of the idea of this change is that
    > there won't BE a *scratch* buffer if you don't request it
    > in `initial-buffer-contents'.

    It is very useful to create a *scratch* buffer at startup, even if it is
    not displayed immediately.

Why do you find it particularly useful?  I want to try to gauge
how many users would find it desirable.  Would they be so many
that it would be unacceptable to recommend they use this recipe
to set it up?

  (with-current-buffer (get-buffer-create "*scratch*")
    (lisp-interaction-mode))


    The only problem remains I think that the name `initial-buffer-contents'
    is worse than simply `initial-buffer'.

Sorry, I disagree.

					    It gives a false impression that
    that some contents gets insterted into some fixed initial buffer.

It doesn't seem like a big flaw to me, but I agree it is a small flaw.

    Perhaps, a better name is `initial-display'?

That seems a little less clear than `initial-buffer-contents'.
However, perhaps `initial-buffer-setup' is better.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-06 14:19                                                                   ` Richard Stallman
@ 2007-08-06 14:35                                                                     ` David Kastrup
  2007-08-07  1:22                                                                       ` Richard Stallman
  2007-08-08 22:59                                                                     ` Scratch buffer annoyance Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-06 14:35 UTC (permalink / raw)
  To: rms; +Cc: Juri Linkov, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     > As I understand it, part of the idea of this change is that
>     > there won't BE a *scratch* buffer if you don't request it
>     > in `initial-buffer-contents'.
>
>     It is very useful to create a *scratch* buffer at startup, even if it is
>     not displayed immediately.
>
> Why do you find it particularly useful?  I want to try to gauge
> how many users would find it desirable.  Would they be so many
> that it would be unacceptable to recommend they use this recipe
> to set it up?
>
>   (with-current-buffer (get-buffer-create "*scratch*")
>     (lisp-interaction-mode))

Personally, my workflow happens to make me delete the scratch buffer
occasionally, and revisit it later.  So I want to be able to have it,
when it gets recreated, to be in lisp-interaction-mode.

In fact, people thought this so desirable that we have

    * Changes in Emacs 21.2

    [...]

    ** When the *scratch* buffer is recreated, its mode is set from
    initial-major-mode, which normally is lisp-interaction-mode,
    instead of using default-major-mode.

I would like to retain the ability to do this, though I agree that
"initial-major-mode" is a completely misleading name for it under the
new startup design and should become a deprecated alias (do we have
that?) for something more fitting.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-06 14:35                                                                     ` David Kastrup
@ 2007-08-07  1:22                                                                       ` Richard Stallman
  2007-08-07  6:13                                                                         ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-07  1:22 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    In fact, people thought this so desirable that we have

	* Changes in Emacs 21.2

	[...]

	** When the *scratch* buffer is recreated, its mode is set from
	initial-major-mode, which normally is lisp-interaction-mode,
	instead of using default-major-mode.

    I would like to retain the ability to do this, though I agree that
    "initial-major-mode" is a completely misleading name for it under the
    new startup design and should become a deprecated alias (do we have
    that?) for something more fitting.

We could have something like auto-mode-alist
for buffer names.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-07  1:22                                                                       ` Richard Stallman
@ 2007-08-07  6:13                                                                         ` David Kastrup
  2007-08-07 20:11                                                                           ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-07  6:13 UTC (permalink / raw)
  To: rms; +Cc: juri, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     In fact, people thought this so desirable that we have
>
> 	* Changes in Emacs 21.2
>
> 	[...]
>
> 	** When the *scratch* buffer is recreated, its mode is set from
> 	initial-major-mode, which normally is lisp-interaction-mode,
> 	instead of using default-major-mode.
>
>     I would like to retain the ability to do this, though I agree that
>     "initial-major-mode" is a completely misleading name for it under the
>     new startup design and should become a deprecated alias (do we have
>     that?) for something more fitting.
>
> We could have something like auto-mode-alist
> for buffer names.

That was my first thought, too, and I looked for something like that
in vain.

auto-mode-buffer-alist or something.

We could even misuse auto-mode-alist as a last-resort fallback here:
buffer names corresponding to already checked file names won't match,
anyway, and the buffer names not associated with files usually start
with "*" or " *", and it is very unlikely we'll ever need to match a
file name like that.

And, after all, it is called auto-mode-alist and not
auto-filename-mode-alist.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-07  6:13                                                                         ` David Kastrup
@ 2007-08-07 20:11                                                                           ` Richard Stallman
  2007-08-07 20:57                                                                             ` David Kastrup
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-07 20:11 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    That was my first thought, too, and I looked for something like that
    in vain.

    auto-mode-buffer-alist or something.

buffer-auto-mode-alist seems clearer.
Would you like to implement it?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-07 20:11                                                                           ` Richard Stallman
@ 2007-08-07 20:57                                                                             ` David Kastrup
  2007-08-09  0:07                                                                               ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-07 20:57 UTC (permalink / raw)
  To: rms; +Cc: juri, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     That was my first thought, too, and I looked for something like that
>     in vain.
>
>     auto-mode-buffer-alist or something.
>
> buffer-auto-mode-alist seems clearer.
> Would you like to implement it?

On second thought, I think that it can be wrapped into
auto-mode-alist.  If someone does C-x b unnamed.c RET, chances are
that he won't find it strange to see the buffer in C mode rather than
fundamental mode.  And the only buffers that are not file-related tend
to start with *.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-06 14:19                                                                   ` Richard Stallman
  2007-08-06 14:35                                                                     ` David Kastrup
@ 2007-08-08 22:59                                                                     ` Juri Linkov
  2007-08-08 23:53                                                                       ` David Kastrup
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-08 22:59 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     It is very useful to create a *scratch* buffer at startup, even if it is
>     not displayed immediately.
>
> Why do you find it particularly useful?

Emacs without a *scratch* buffer is not Emacs :-)

>     Perhaps, a better name is `initial-display'?
>
> That seems a little less clear than `initial-buffer-contents'.
> However, perhaps `initial-buffer-setup' is better.

With a new naming scheme David proposed this name could be
`setup-initial-buffer'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-08 22:59                                                                     ` Scratch buffer annoyance Juri Linkov
@ 2007-08-08 23:53                                                                       ` David Kastrup
  2007-08-09 19:47                                                                         ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-08 23:53 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov <juri@jurta.org> writes:

>>     It is very useful to create a *scratch* buffer at startup, even if it is
>>     not displayed immediately.
>>
>> Why do you find it particularly useful?
>
> Emacs without a *scratch* buffer is not Emacs :-)
>
>>     Perhaps, a better name is `initial-display'?
>>
>> That seems a little less clear than `initial-buffer-contents'.
>> However, perhaps `initial-buffer-setup' is better.
>
> With a new naming scheme David proposed this name could be
> `setup-initial-buffer'.

Don't put schemes into my mouth.  I seem to remember that my
proposition boiled down to `startup-*', where the details about * were
still fuzzy, so feel free to start expanding form there.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-07 20:57                                                                             ` David Kastrup
@ 2007-08-09  0:07                                                                               ` Richard Stallman
  2007-08-09 19:54                                                                                 ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-09  0:07 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    On second thought, I think that it can be wrapped into
    auto-mode-alist.  If someone does C-x b unnamed.c RET, chances are
    that he won't find it strange to see the buffer in C mode rather than
    fundamental mode.  And the only buffers that are not file-related tend
    to start with *.

You might be right, but the change seems too radical to me.
I would rather introduce a new buffer-auto-mode-alist
just to avoid the incompatible change.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-08 23:53                                                                       ` David Kastrup
@ 2007-08-09 19:47                                                                         ` Juri Linkov
  2007-08-09 20:09                                                                           ` David Kastrup
  2007-08-11  5:05                                                                           ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-09 19:47 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, emacs-devel

>> With a new naming scheme David proposed this name could be
>> `setup-initial-buffer'.
>
> Don't put schemes into my mouth.  I seem to remember that my
> proposition boiled down to `startup-*', where the details about * were
> still fuzzy, so feel free to start expanding form there.

Sorry, I meant `startup-', not `setup-'.  I am already too entangled in
this naming mess.  So let's name this new option with all proposed words
`startup-initial-buffer-visit-contents-display-setup'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-09  0:07                                                                               ` Richard Stallman
@ 2007-08-09 19:54                                                                                 ` Juri Linkov
  2007-08-09 22:24                                                                                   ` Andreas Schwab
  2007-08-11  5:05                                                                                   ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-09 19:54 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     On second thought, I think that it can be wrapped into
>     auto-mode-alist.  If someone does C-x b unnamed.c RET, chances are
>     that he won't find it strange to see the buffer in C mode rather than
>     fundamental mode.  And the only buffers that are not file-related tend
>     to start with *.
>
> You might be right, but the change seems too radical to me.
> I would rather introduce a new buffer-auto-mode-alist
> just to avoid the incompatible change.

Whose definition could be just

(defvar buffer-auto-mode-alist
  (append
    '(("\\`\*scratch\*\\'" . lisp-interaction-mode))
    auto-mode-alist))

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-09 19:47                                                                         ` Juri Linkov
@ 2007-08-09 20:09                                                                           ` David Kastrup
  2007-08-11  5:05                                                                           ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: David Kastrup @ 2007-08-09 20:09 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

Juri Linkov <juri@jurta.org> writes:

>>> With a new naming scheme David proposed this name could be
>>> `setup-initial-buffer'.
>>
>> Don't put schemes into my mouth.  I seem to remember that my
>> proposition boiled down to `startup-*', where the details about * were
>> still fuzzy, so feel free to start expanding form there.
>
> Sorry, I meant `startup-', not `setup-'.  I am already too entangled in
> this naming mess.  So let's name this new option with all proposed words
> `startup-initial-buffer-visit-contents-display-setup'.

I thing that should be the customization group name.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-09 19:54                                                                                 ` Juri Linkov
@ 2007-08-09 22:24                                                                                   ` Andreas Schwab
  2007-08-11  5:05                                                                                   ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Andreas Schwab @ 2007-08-09 22:24 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov <juri@jurta.org> writes:

> Whose definition could be just
>
> (defvar buffer-auto-mode-alist
>   (append
>     '(("\\`\*scratch\*\\'" . lisp-interaction-mode))
>     auto-mode-alist))

That is suboptimal, since a change to auto-mode-alist would not be
reflected in this value.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-09 19:54                                                                                 ` Juri Linkov
  2007-08-09 22:24                                                                                   ` Andreas Schwab
@ 2007-08-11  5:05                                                                                   ` Richard Stallman
  2007-08-19 23:16                                                                                     ` buffer-auto-mode-alist (was: Scratch buffer annoyance) Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-11  5:05 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Whose definition could be just

    (defvar buffer-auto-mode-alist
      (append
	'(("\\`\*scratch\*\\'" . lisp-interaction-mode))
	auto-mode-alist))

A user could set it that way, but I don't want to include the value of
auto-mode-alist in the default value.  I would rather keep buffer names
and file names separate and have separate features to act on them.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-09 19:47                                                                         ` Juri Linkov
  2007-08-09 20:09                                                                           ` David Kastrup
@ 2007-08-11  5:05                                                                           ` Richard Stallman
  2007-08-12 20:45                                                                             ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-11  5:05 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Sorry, I meant `startup-', not `setup-'.  I am already too entangled in
    this naming mess.  So let's name this new option with all proposed words
    `startup-initial-buffer-visit-contents-display-setup'.

That's good for the humor file.  For actually implementing this,
how about `startup-buffer-choice' or `initial-buffer-choice'?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-11  5:05                                                                           ` Richard Stallman
@ 2007-08-12 20:45                                                                             ` Juri Linkov
  2007-08-12 23:20                                                                               ` Johan Bockgård
  2007-08-13  5:00                                                                               ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-12 20:45 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     Sorry, I meant `startup-', not `setup-'.  I am already too entangled in
>     this naming mess.  So let's name this new option with all proposed words
>     `startup-initial-buffer-visit-contents-display-setup'.
>
> That's good for the humor file.  For actually implementing this,
> how about `startup-buffer-choice' or `initial-buffer-choice'?

Many user options provide a choice of different value types, but none have a
`-choice' suffix.  So I see no better names than `startup-buffer' or
`initial-buffer'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-12 20:45                                                                             ` Juri Linkov
@ 2007-08-12 23:20                                                                               ` Johan Bockgård
  2007-08-13  5:00                                                                               ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Johan Bockgård @ 2007-08-12 23:20 UTC (permalink / raw)
  To: emacs-devel

Juri Linkov <juri@jurta.org> writes:

>> That's good for the humor file. For actually implementing this, how
>> about `startup-buffer-choice' or `initial-buffer-choice'?
>
> Many user options provide a choice of different value types, but none
> have a `-choice' suffix. So I see no better names than
> `startup-buffer' or `initial-buffer'.

How about something like `startup-buffer-style' (or -type, etc)?

-- 
Johan Bockgård

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-12 20:45                                                                             ` Juri Linkov
  2007-08-12 23:20                                                                               ` Johan Bockgård
@ 2007-08-13  5:00                                                                               ` Richard Stallman
  2007-08-13  5:57                                                                                 ` David Kastrup
  2007-08-13 23:30                                                                                 ` Juri Linkov
  1 sibling, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-13  5:00 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Many user options provide a choice of different value types, but none have a
    `-choice' suffix.  So I see no better names than `startup-buffer' or
    `initial-buffer'.

Those names are not good because the value is not a buffer.
`startup-buffer-choice' is better, because at least it doesn't
imply the value is a buffer.

However, I can also suggest `startup-buffer-initialization'.

`startup-buffer-style', recently suggested, is also better than
just `startup-buffer'.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-13  5:00                                                                               ` Richard Stallman
@ 2007-08-13  5:57                                                                                 ` David Kastrup
  2007-08-14  0:28                                                                                   ` Richard Stallman
  2007-08-13 23:30                                                                                 ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: David Kastrup @ 2007-08-13  5:57 UTC (permalink / raw)
  To: rms; +Cc: Juri Linkov, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Many user options provide a choice of different value types, but none have a
>     `-choice' suffix.  So I see no better names than `startup-buffer' or
>     `initial-buffer'.
>
> Those names are not good because the value is not a buffer.
> `startup-buffer-choice' is better, because at least it doesn't
> imply the value is a buffer.
>
> However, I can also suggest `startup-buffer-initialization'.
>
> `startup-buffer-style', recently suggested, is also better than
> just `startup-buffer'.

I like startup-buffer-style.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-13  5:00                                                                               ` Richard Stallman
  2007-08-13  5:57                                                                                 ` David Kastrup
@ 2007-08-13 23:30                                                                                 ` Juri Linkov
  1 sibling, 0 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-13 23:30 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> Those names are not good because the value is not a buffer.
> `startup-buffer-choice' is better, because at least it doesn't
> imply the value is a buffer.
>
> However, I can also suggest `startup-buffer-initialization'.
>
> `startup-buffer-style', recently suggested, is also better than
> just `startup-buffer'.

The suffix `-style' defines variations of basically the same contents
(cf. custom-buffer-style with values `brackets' and `links').

>From all proposed names I think the least bad is `startup-buffer-choice' or
`initial-buffer-choice'.  Even though the suffix `-choice' is unnecessary,
at least it is true and exactly represents the fact that this user option
has the customization type `choice'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-13  5:57                                                                                 ` David Kastrup
@ 2007-08-14  0:28                                                                                   ` Richard Stallman
  2007-08-15 23:32                                                                                     ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-14  0:28 UTC (permalink / raw)
  To: David Kastrup; +Cc: juri, emacs-devel

    I like startup-buffer-style.

Ok, let's use that.  Would someone please install the change?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-14  0:28                                                                                   ` Richard Stallman
@ 2007-08-15 23:32                                                                                     ` Juri Linkov
  2007-08-16  0:59                                                                                       ` Glenn Morris
                                                                                                         ` (2 more replies)
  0 siblings, 3 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-15 23:32 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> Would someone please install the change?

Done.  I added the variable `initial-buffer-choice' because other names
are less appropriate.  If someone wants to change the prefix `initial-',
please also change prefixes of related variables `initial-major-mode' and
`initial-scratch-message'.

To create links in the startup screen, I modified the previous patch
to use the function `insert-button' from button.el to allow navigation
between links and better processing of their actions.  I hope there are
no problems with this because this function is auto-loaded.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-15 23:32                                                                                     ` Juri Linkov
@ 2007-08-16  0:59                                                                                       ` Glenn Morris
  2007-08-16 20:11                                                                                         ` Juri Linkov
  2007-08-16  2:42                                                                                       ` Richard Stallman
  2007-08-19 14:55                                                                                       ` Juri Linkov
  2 siblings, 1 reply; 218+ messages in thread
From: Glenn Morris @ 2007-08-16  0:59 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov wrote:

> To create links in the startup screen, I modified the previous patch
> to use the function `insert-button' from button.el to allow
> navigation between links and better processing of their actions. I
> hope there are no problems with this because this function is
> auto-loaded.

It looks like a very nice feature. Some quick comments:

1. This is about the non-fancy splash screen only. In the initial
   splash screen (the one that appears after emacs starts), the links
   work. But if I later on choose Help->About Emacs, the links don't
   work; I guess since any action makes the splash screen disappear.

2. In the fancy splash screen, the text continues to cycle when the
   mouse is over a link. This means that one can have the mouse over
   the "Tutorial" link, but before one can press it the text cycles so
   that "Exit Emacs" is under the cursor. Ouch. Is there a way to
   disable the text cycling while the mouse is over a link?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-15 23:32                                                                                     ` Juri Linkov
  2007-08-16  0:59                                                                                       ` Glenn Morris
@ 2007-08-16  2:42                                                                                       ` Richard Stallman
  2007-08-16 20:12                                                                                         ` Juri Linkov
  2007-08-19 14:55                                                                                       ` Juri Linkov
  2 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-16  2:42 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Done.  I added the variable `initial-buffer-choice' because other names
    are less appropriate.  If someone wants to change the prefix `initial-',
    please also change prefixes of related variables `initial-major-mode' and
    `initial-scratch-message'.

Thanks for installing it, but would you please describe this in
etc/NEWS, then ack?

Every feature change should be describe in etc/NEWS
when it is installed.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-16  0:59                                                                                       ` Glenn Morris
@ 2007-08-16 20:11                                                                                         ` Juri Linkov
  2007-08-17  4:50                                                                                           ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-16 20:11 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, emacs-devel

> It looks like a very nice feature. Some quick comments:
>
> 1. This is about the non-fancy splash screen only. In the initial
>    splash screen (the one that appears after emacs starts), the links
>    work. But if I later on choose Help->About Emacs, the links don't
>    work; I guess since any action makes the splash screen disappear.

Hmm, links work in `fancy-splash-screens' (started from Help->About Emacs),
but don't work in `normal-splash-screen'.  I think we should make this
screen more persistent, so only special keys (`q' and `SPC') make it
disappear.

> 2. In the fancy splash screen, the text continues to cycle when the
>    mouse is over a link. This means that one can have the mouse over
>    the "Tutorial" link, but before one can press it the text cycles so
>    that "Exit Emacs" is under the cursor. Ouch. Is there a way to
>    disable the text cycling while the mouse is over a link?

The automatic text cycling is too annoying in all regards: even if the
user doesn't finish reading one screen, it jumps to another.  I think
we should replace this with tabs where clicking on them switches to
another screen.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-16  2:42                                                                                       ` Richard Stallman
@ 2007-08-16 20:12                                                                                         ` Juri Linkov
  2007-08-17  4:50                                                                                           ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-16 20:12 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     Done.  I added the variable `initial-buffer-choice' because other names
>     are less appropriate.  If someone wants to change the prefix `initial-',
>     please also change prefixes of related variables `initial-major-mode' and
>     `initial-scratch-message'.
>
> Thanks for installing it, but would you please describe this in
> etc/NEWS, then ack?
>
> Every feature change should be describe in etc/NEWS
> when it is installed.

I described `initial-buffer-choice' in NEWS a hour after installing the
patch in startup.el, when I realized that I forgot to describe it in NEWS.
So perhaps you missed it in this short period of time.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-16 20:11                                                                                         ` Juri Linkov
@ 2007-08-17  4:50                                                                                           ` Richard Stallman
  2007-08-17 22:35                                                                                             ` Juri Linkov
  2007-08-17 23:32                                                                                             ` Glenn Morris
  0 siblings, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-17  4:50 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    > 2. In the fancy splash screen, the text continues to cycle when the
    >    mouse is over a link. This means that one can have the mouse over
    >    the "Tutorial" link, but before one can press it the text cycles so
    >    that "Exit Emacs" is under the cursor. Ouch. Is there a way to
    >    disable the text cycling while the mouse is over a link?

    The automatic text cycling is too annoying in all regards: even if the
    user doesn't finish reading one screen, it jumps to another.

It will come back to the first screen, and most of the two screens are
identical.

This isn't perfect, but I don't know of a better option.

								  I think
    we should replace this with tabs where clicking on them switches to
    another screen.

No way!  Hardly anyone will see the second screen
if you have to explicitly ask for it.

I would be glad to find a better way, but I don't want to change
to something worse.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-16 20:12                                                                                         ` Juri Linkov
@ 2007-08-17  4:50                                                                                           ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-17  4:50 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    I described `initial-buffer-choice' in NEWS a hour after installing the
    patch in startup.el, when I realized that I forgot to describe it in NEWS.
    So perhaps you missed it in this short period of time.

That is probably what happened.  (I did a checkout at the time, and
verified it was not yet in NEWS.)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-17  4:50                                                                                           ` Richard Stallman
@ 2007-08-17 22:35                                                                                             ` Juri Linkov
  2007-08-19  0:44                                                                                               ` Richard Stallman
  2007-08-17 23:32                                                                                             ` Glenn Morris
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-17 22:35 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>     The automatic text cycling is too annoying in all regards: even if the
>     user doesn't finish reading one screen, it jumps to another.
>
> It will come back to the first screen, and most of the two screens are
> identical.
>
> This isn't perfect, but I don't know of a better option.

The startup screen already contains information from two screens
combined into one screen.  We could do the same for the About screen.
Is the only reason for flashing screens to make them more attractive?

> 								  I think
>     we should replace this with tabs where clicking on them switches to
>     another screen.
>
> No way!  Hardly anyone will see the second screen
> if you have to explicitly ask for it.
>
> I would be glad to find a better way, but I don't want to change
> to something worse.

If we really need second screen, we could place less important information
to the second screen, and add guidelines on the first screen how to see
the second screen.  Then there are more chances that users don't miss
important information.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-17  4:50                                                                                           ` Richard Stallman
  2007-08-17 22:35                                                                                             ` Juri Linkov
@ 2007-08-17 23:32                                                                                             ` Glenn Morris
  2007-08-19 14:50                                                                                               ` Juri Linkov
  2007-08-19 15:30                                                                                               ` Mathias Dahl
  1 sibling, 2 replies; 218+ messages in thread
From: Glenn Morris @ 2007-08-17 23:32 UTC (permalink / raw)
  To: rms; +Cc: Juri Linkov, emacs-devel

Richard Stallman wrote:

> No way!  Hardly anyone will see the second screen
> if you have to explicitly ask for it.
>
> I would be glad to find a better way, but I don't want to change
> to something worse.

Get rid of the image. Or, display the image once only for ~ two
seconds on its own, then switch to a static splash screen with just
text. It would still be fancy in terms of fonts and colours.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-17 22:35                                                                                             ` Juri Linkov
@ 2007-08-19  0:44                                                                                               ` Richard Stallman
  2007-08-19 14:45                                                                                                 ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-19  0:44 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    The startup screen already contains information from two screens
    combined into one screen.  We could do the same for the About screen.
    Is the only reason for flashing screens to make them more attractive?

The main motive was to display a quantity of information that was
hard to fit in one screen without its being "too much to absorb".

It can also be too much to display on a terminal.

For instance, after the recent changes, the default normal tty startup
text doesn't fit in a 24-line screen.  That is a real problem.

How shall we make it fit on a 24-line screen?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19  0:44                                                                                               ` Richard Stallman
@ 2007-08-19 14:45                                                                                                 ` Juri Linkov
  2007-08-19 22:30                                                                                                   ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 14:45 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

> For instance, after the recent changes, the default normal tty startup
> text doesn't fit in a 24-line screen.  That is a real problem.
>
> How shall we make it fit on a 24-line screen?

I changed this screen to fit on 24 lines: moved "Browse manuals" to the
same line as "Emacs manual", and squeezed Useful tasks into two lines.

Also I renamed the buffer " About GNU Emacs" to "*About GNU Emacs*", and
" GNU Emacs" to "*GNU Emacs*", because otherwise it defeats the purpose of
all recent changes which was to make the *scratch* buffer less accessible.
Before renaming when the user selects a link on the startup screen (for
instance, to read the manual), and after reading exits from Info, then
the *scratch* buffer becomes the current buffer!  That's because the
leading space in the startup buffer name hides this buffer after exiting
from Info.  Now after renaming to "*GNU Emacs*", the user returns to the
startup screen after exiting from Info, and can continue reading more
information from the startup screen and can select another link.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-17 23:32                                                                                             ` Glenn Morris
@ 2007-08-19 14:50                                                                                               ` Juri Linkov
  2007-08-19 22:30                                                                                                 ` Richard Stallman
  2007-08-19 15:30                                                                                               ` Mathias Dahl
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 14:50 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, emacs-devel

>> I would be glad to find a better way, but I don't want to change
>> to something worse.
>
> Get rid of the image. Or, display the image once only for ~ two
> seconds on its own, then switch to a static splash screen with just
> text. It would still be fancy in terms of fonts and colours.

This image is too nice to get rid of it :-)

And there is also a link to http://www.gnu.org/ on this image.  I propose
to change this link to http://www.gnu.org/software/emacs/.  In this case,
we could remove the link to http://www.gnu.org/software/emacs/tour/ from
the startup screen, because the first link on the Emacs home page is the
link to Emacs Guided Tour, so everyone visiting http://www.gnu.org/software/emacs/
will see the link to Emacs Guided Tour.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-15 23:32                                                                                     ` Juri Linkov
  2007-08-16  0:59                                                                                       ` Glenn Morris
  2007-08-16  2:42                                                                                       ` Richard Stallman
@ 2007-08-19 14:55                                                                                       ` Juri Linkov
  2007-08-19 22:30                                                                                         ` Richard Stallman
  2 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 14:55 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> To create links in the startup screen, I modified the previous patch
> to use the function `insert-button' from button.el to allow navigation
> between links and better processing of their actions.  I hope there are
> no problems with this because this function is auto-loaded.

There is one problem with using `insert-button': after starting Emacs
it displays the message "Loading button...done" in the echo area.

There is one clumsy way to prevent this.  The comment in `command-line-1'
in startup.el says:

      ;; display-splash-screen at the end of command-line-1 calls
      ;; use-fancy-splash-screens-p. This can cause image.el to be
      ;; loaded, putting "Loading image... done" in the echo area.
      ;; This hides startup-echo-area-message. So
      ;; use-fancy-splash-screens-p is called here simply to get the
      ;; loading of image.el (if needed) out of the way before
      ;; display-startup-echo-area-message runs.

But this is unnecessary because image.el is already preloaded in the
dumped Emacs.  Can we do the same and preload button.el?  This package
is very small, and it's very likely to be loaded in a Emacs session
(there are many packages using button.el including Help mode, man, etc.)

After that, we could remove this unnecessary part of `command-line-1'.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-17 23:32                                                                                             ` Glenn Morris
  2007-08-19 14:50                                                                                               ` Juri Linkov
@ 2007-08-19 15:30                                                                                               ` Mathias Dahl
  2007-08-19 17:48                                                                                                 ` Juri Linkov
  2007-08-19 22:30                                                                                                 ` Richard Stallman
  1 sibling, 2 replies; 218+ messages in thread
From: Mathias Dahl @ 2007-08-19 15:30 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Juri Linkov, rms, emacs-devel

> Get rid of the image. Or, display the image once only for ~ two
> seconds on its own, then switch to a static splash screen with just
> text. It would still be fancy in terms of fonts and colours.

I agree with this. The image is nice and all but it kinda draws away
the focus from the useful information, and it consumes much screen
space. I like the way GNUS does it, displaying the image while it
loads.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 15:30                                                                                               ` Mathias Dahl
@ 2007-08-19 17:48                                                                                                 ` Juri Linkov
  2007-08-20 15:17                                                                                                   ` Richard Stallman
  2007-08-19 22:30                                                                                                 ` Richard Stallman
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 17:48 UTC (permalink / raw)
  To: Mathias Dahl; +Cc: Glenn Morris, rms, emacs-devel

>> Get rid of the image. Or, display the image once only for ~ two
>> seconds on its own, then switch to a static splash screen with just
>> text. It would still be fancy in terms of fonts and colours.
>
> I agree with this. The image is nice and all but it kinda draws away
> the focus from the useful information, and it consumes much screen
> space.

Many popular applications have a project logo on the startup page,
and there is no problem with this.

> I like the way GNUS does it, displaying the image while it loads.

Really what GNUS displays is the splash screen - an image that appears
while a program is loading.  Emacs doesn't display the splash screen while
it is loading.  It only displays the startup page.  I'm not sure whether
it's good to display an image while Emacs is loading.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 14:45                                                                                                 ` Juri Linkov
@ 2007-08-19 22:30                                                                                                   ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-19 22:30 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

Thanks for the changes.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 14:50                                                                                               ` Juri Linkov
@ 2007-08-19 22:30                                                                                                 ` Richard Stallman
  2007-08-19 23:21                                                                                                   ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-19 22:30 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    And there is also a link to http://www.gnu.org/ on this image.  I propose
    to change this link to http://www.gnu.org/software/emacs/.

I don't think that represents a clear link.
I think most people won't think of clicking on it.

      In this case,
    we could remove the link to http://www.gnu.org/software/emacs/tour/ from
    the startup screen, because the first link on the Emacs home page is the
    link to Emacs Guided Tour,

If we need to get rid of something, maybe that has to be it.
But perhaps it is better to go back to the two alternating screens.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 14:55                                                                                       ` Juri Linkov
@ 2007-08-19 22:30                                                                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-19 22:30 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    But this is unnecessary because image.el is already preloaded in the
    dumped Emacs.  Can we do the same and preload button.el?

Assuming we stick with using buttons in the startup screen, then
definitely.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 15:30                                                                                               ` Mathias Dahl
  2007-08-19 17:48                                                                                                 ` Juri Linkov
@ 2007-08-19 22:30                                                                                                 ` Richard Stallman
  2007-08-19 23:21                                                                                                   ` Juri Linkov
  2007-08-20  2:29                                                                                                   ` Glenn Morris
  1 sibling, 2 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-19 22:30 UTC (permalink / raw)
  To: Mathias Dahl; +Cc: juri, rgm, emacs-devel

    I agree with this. The image is nice and all but it kinda draws away
    the focus from the useful information, and it consumes much screen
    space. I like the way GNUS does it, displaying the image while it
    loads.

I don't think that will actually help much.

On a graphical terminal, the limit on the text is not the screen size.
The limit is the amount that a user can really absorb, which is less
than a screen full of text.  Against this limit, the image counts as
less than a line of text.

The text in the current fancy startup screen has to be reduced.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* buffer-auto-mode-alist (was: Scratch buffer annoyance)
  2007-08-11  5:05                                                                                   ` Richard Stallman
@ 2007-08-19 23:16                                                                                     ` Juri Linkov
  2007-08-20 18:31                                                                                       ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 23:16 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     (defvar buffer-auto-mode-alist
>       (append
> 	'(("\\`\*scratch\*\\'" . lisp-interaction-mode))
> 	auto-mode-alist))
>
> A user could set it that way, but I don't want to include the value of
> auto-mode-alist in the default value.  I would rather keep buffer names
> and file names separate and have separate features to act on them.

I think the best way to implement this feature is to add a new hook
`after-create-buffer-hook' containing a function that sets buffer
mode according to `buffer-auto-mode-alist'.  This hook could be called
from `get-buffer-create'.

This hook will also help to remove defadvice for `create-file-buffer'
in uniquify.el when a uniquify renaming function will be appended
after buffer-auto-mode-alist renaming function in this hook.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 22:30                                                                                                 ` Richard Stallman
@ 2007-08-19 23:21                                                                                                   ` Juri Linkov
  2007-08-20 18:31                                                                                                     ` Richard Stallman
  2007-08-20  2:29                                                                                                   ` Glenn Morris
  1 sibling, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 23:21 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel, mathias.dahl

> The text in the current fancy startup screen has to be reduced.

As Mathias already proposed, we could remove Useful File menu items
("Exit Emacs" and "Recover Crashed Session") because both are
self-explanatory and trivial to find in the menu, and the information
about how to recover session is duplicated on the same screen.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 22:30                                                                                                 ` Richard Stallman
@ 2007-08-19 23:21                                                                                                   ` Juri Linkov
  2007-08-20 18:31                                                                                                     ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-19 23:21 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>       In this case,
>     we could remove the link to http://www.gnu.org/software/emacs/tour/ from
>     the startup screen, because the first link on the Emacs home page is the
>     link to Emacs Guided Tour,
>
> If we need to get rid of something, maybe that has to be it.
>
> But perhaps it is better to go back to the two alternating screens.

Two alternating screens still exist on the About page (accessible from the
"Help->About Emacs" menu item).

Perhaps we should put different information on the Startup page and on the
About page.  The former should be concise and contain the most necessary
information while the latter should contain more additional information
displayed on several screens.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 22:30                                                                                                 ` Richard Stallman
  2007-08-19 23:21                                                                                                   ` Juri Linkov
@ 2007-08-20  2:29                                                                                                   ` Glenn Morris
  2007-08-20  8:13                                                                                                     ` Mathias Dahl
  2007-08-20 18:30                                                                                                     ` Richard Stallman
  1 sibling, 2 replies; 218+ messages in thread
From: Glenn Morris @ 2007-08-20  2:29 UTC (permalink / raw)
  To: rms; +Cc: juri, emacs-devel, Mathias Dahl

Richard Stallman wrote:

> On a graphical terminal, the limit on the text is not the screen size.
> The limit is the amount that a user can really absorb, which is less
> than a screen full of text.  Against this limit, the image counts as
> less than a line of text.

I'm surprised that you think having it blink from one state to another
every 5 seconds makes it easier to absorb...

20 lines of static text are much much easier to read than an image +
10 changing lines, IMO.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20  2:29                                                                                                   ` Glenn Morris
@ 2007-08-20  8:13                                                                                                     ` Mathias Dahl
  2007-08-20 18:30                                                                                                     ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Mathias Dahl @ 2007-08-20  8:13 UTC (permalink / raw)
  To: Glenn Morris; +Cc: juri, rms, emacs-devel

> I'm surprised that you think having it blink from one state to another
> every 5 seconds makes it easier to absorb...

I agree. It is very irritating to have the text switched just when you
were about to finish that interesting sentence you just found. I get a
bit stressed up actually.

However, that is only how the About screen started from the Help menu
works now. What is most important is to have the initial About screen
as easily understandable as possible.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 17:48                                                                                                 ` Juri Linkov
@ 2007-08-20 15:17                                                                                                   ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-20 15:17 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel, mathias.dahl

    Really what GNUS displays is the splash screen - an image that appears
    while a program is loading.  Emacs doesn't display the splash screen while
    it is loading.  It only displays the startup page.  I'm not sure whether
    it's good to display an image while Emacs is loading.

I am not necessarily against that change.
But it wouldn't really address the issue, as I pointed out before.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20  2:29                                                                                                   ` Glenn Morris
  2007-08-20  8:13                                                                                                     ` Mathias Dahl
@ 2007-08-20 18:30                                                                                                     ` Richard Stallman
  2007-08-20 23:28                                                                                                       ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-20 18:30 UTC (permalink / raw)
  To: Glenn Morris; +Cc: juri, emacs-devel, mathias.dahl

    I'm surprised that you think having it blink from one state to another
    every 5 seconds makes it easier to absorb...

The text that changes is not that big, and I would expect people to
take it in in 5 seconds.

But maybe people whose native language is not English would have
trouble.  Is that it?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: buffer-auto-mode-alist (was: Scratch buffer annoyance)
  2007-08-19 23:16                                                                                     ` buffer-auto-mode-alist (was: Scratch buffer annoyance) Juri Linkov
@ 2007-08-20 18:31                                                                                       ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-20 18:31 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    I think the best way to implement this feature is to add a new hook
    `after-create-buffer-hook' containing a function that sets buffer
    mode according to `buffer-auto-mode-alist'.  This hook could be called
    from `get-buffer-create'.

I would rather put the code directly into `get-buffer-create' and
avoid using a hook to run it.  When a feature is standardly on, it
is cleaner not to do it using a hook.

    This hook will also help to remove defadvice for `create-file-buffer'
    in uniquify.el when a uniquify renaming function will be appended
    after buffer-auto-mode-alist renaming function in this hook.

That might be a good reason this hook.  But we do not want to depend
on the order of hook functions.  So we should handle
`buffer-auto-mode-alist' explicitly before running the hook.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 23:21                                                                                                   ` Juri Linkov
@ 2007-08-20 18:31                                                                                                     ` Richard Stallman
  2007-08-20 23:29                                                                                                       ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-20 18:31 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel, mathias.dahl

    As Mathias already proposed, we could remove Useful File menu items
    ("Exit Emacs" and "Recover Crashed Session") because both are
    self-explanatory and trivial to find in the menu, and the information
    about how to recover session is duplicated on the same screen.

I agree.  Everyone knows where Exit is normally found in menus,
and the other message about recovering a crashed session is enough.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-19 23:21                                                                                                   ` Juri Linkov
@ 2007-08-20 18:31                                                                                                     ` Richard Stallman
  2007-08-20 23:28                                                                                                       ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-20 18:31 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    Two alternating screens still exist on the About page (accessible from the
    "Help->About Emacs" menu item).

    Perhaps we should put different information on the Startup page and on the
    About page.  The former should be concise and contain the most necessary
    information while the latter should contain more additional information
    displayed on several screens.

Is there a reason for the About Emacs menu item to give usage help?
If so, I think it should be IDENTICAL to the startup buffer.

If not, then we could delete the help from About Emacs and focus on
history, developer and license information.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 18:31                                                                                                     ` Richard Stallman
@ 2007-08-20 23:28                                                                                                       ` Juri Linkov
  2007-08-21  9:07                                                                                                         ` Mathias Dahl
  2007-08-21 23:23                                                                                                         ` Richard Stallman
  0 siblings, 2 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-20 23:28 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

> Is there a reason for the About Emacs menu item to give usage help?

No reason really.  All programs I know don't put usage help on the
About screen.  Usage help is available from other Help menu items.

> If so, I think it should be IDENTICAL to the startup buffer.
>
> If not, then we could delete the help from About Emacs and focus on
> history, developer and license information.

I agree.  Most programs have About screens with information like
program version, its short description, license (on a separate page),
credits (usually displayed as a scrolling list like in the movies),
history, and so on.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 18:30                                                                                                     ` Richard Stallman
@ 2007-08-20 23:28                                                                                                       ` Juri Linkov
  2007-08-21 23:23                                                                                                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-20 23:28 UTC (permalink / raw)
  To: rms; +Cc: Glenn Morris, emacs-devel, mathias.dahl

>     I'm surprised that you think having it blink from one state to
>     another every 5 seconds makes it easier to absorb...
>
> The text that changes is not that big, and I would expect people to
> take it in in 5 seconds.
>
> But maybe people whose native language is not English would have
> trouble.  Is that it?

Yes, and it takes time not only to read the text, but also understand it
and memorize information in the new program for beginners.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 18:31                                                                                                     ` Richard Stallman
@ 2007-08-20 23:29                                                                                                       ` Juri Linkov
  0 siblings, 0 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-20 23:29 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel, mathias.dahl

>     As Mathias already proposed, we could remove Useful File menu items
>     ("Exit Emacs" and "Recover Crashed Session") because both are
>     self-explanatory and trivial to find in the menu, and the information
>     about how to recover session is duplicated on the same screen.
>
> I agree.  Everyone knows where Exit is normally found in menus,
> and the other message about recovering a crashed session is enough.

Removed.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 23:28                                                                                                       ` Juri Linkov
@ 2007-08-21  9:07                                                                                                         ` Mathias Dahl
  2007-08-21 23:23                                                                                                         ` Richard Stallman
  1 sibling, 0 replies; 218+ messages in thread
From: Mathias Dahl @ 2007-08-21  9:07 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, rms, emacs-devel

> > If not, then we could delete the help from About Emacs and focus on
> > history, developer and license information.
>
> I agree.  Most programs have About screens with information like
> program version, its short description, license (on a separate page),
> credits (usually displayed as a scrolling list like in the movies),
> history, and so on.

I agree with this as well.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 23:28                                                                                                       ` Juri Linkov
  2007-08-21  9:07                                                                                                         ` Mathias Dahl
@ 2007-08-21 23:23                                                                                                         ` Richard Stallman
  2007-08-23  0:14                                                                                                           ` Juri Linkov
  1 sibling, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-21 23:23 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    > If not, then we could delete the help from About Emacs and focus on
    > history, developer and license information.

    I agree.  Most programs have About screens with information like
    program version, its short description, license (on a separate page),
    credits (usually displayed as a scrolling list like in the movies),
    history, and so on.

Would you please implement that?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-20 23:28                                                                                                       ` Juri Linkov
@ 2007-08-21 23:23                                                                                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-08-21 23:23 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel, mathias.dahl

    > The text that changes is not that big, and I would expect people to
    > take it in in 5 seconds.
    >
    > But maybe people whose native language is not English would have
    > trouble.  Is that it?

    Yes, and it takes time not only to read the text, but also understand it
    and memorize information in the new program for beginners.

Well, if the text in the startup buffer is small enough,
we won't have to think about alternating screens.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-21 23:23                                                                                                         ` Richard Stallman
@ 2007-08-23  0:14                                                                                                           ` Juri Linkov
  2007-08-23 20:58                                                                                                             ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-23  0:14 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>     > If not, then we could delete the help from About Emacs and focus on
>     > history, developer and license information.
>
>     I agree.  Most programs have About screens with information like
>     program version, its short description, license (on a separate page),
>     credits (usually displayed as a scrolling list like in the movies),
>     history, and so on.
>
> Would you please implement that?

I think it would be nice to implement About pages as an Info file.

At the top level it could have links to the pages with the description,
license, credits, history ...

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-23  0:14                                                                                                           ` Juri Linkov
@ 2007-08-23 20:58                                                                                                             ` Richard Stallman
  2007-08-25 14:28                                                                                                               ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-23 20:58 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    I think it would be nice to implement About pages as an Info file.

I don't like that idea.  It isn't necessary, and the Info file might
be missing.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-23 20:58                                                                                                             ` Richard Stallman
@ 2007-08-25 14:28                                                                                                               ` Juri Linkov
  2007-08-25 17:06                                                                                                                 ` Thien-Thi Nguyen
                                                                                                                                   ` (2 more replies)
  0 siblings, 3 replies; 218+ messages in thread
From: Juri Linkov @ 2007-08-25 14:28 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>     I think it would be nice to implement About pages as an Info file.
>
> I don't like that idea.  It isn't necessary, and the Info file might
> be missing.

I don't understand why the Info file might be missing.  Like all other
Info files it will exist in the `info' directory.  And saying that
it isn't necessary, do you mean that most of this information already
exist in the Emacs manual?  In this case I agree.

If not using an Info file and not using automatically alternating screens,
I see no better UI than clicking on tabs to switch between screens.
This is how many programs display information on the About page.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 14:28                                                                                                               ` Juri Linkov
@ 2007-08-25 17:06                                                                                                                 ` Thien-Thi Nguyen
  2007-08-25 19:44                                                                                                                 ` Stefan Monnier
  2007-08-26 14:56                                                                                                                 ` Richard Stallman
  2 siblings, 0 replies; 218+ messages in thread
From: Thien-Thi Nguyen @ 2007-08-25 17:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

() Juri Linkov <juri@jurta.org>
() Sat, 25 Aug 2007 17:28:44 +0300

   Like all other Info files it will exist in the `info' directory.

sometimes info files get stuck far away, in a place w/ a scary name.
that situation sucks, for sure, but people manage to do strange things.

thi

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 14:28                                                                                                               ` Juri Linkov
  2007-08-25 17:06                                                                                                                 ` Thien-Thi Nguyen
@ 2007-08-25 19:44                                                                                                                 ` Stefan Monnier
  2007-08-25 19:53                                                                                                                   ` David Kastrup
  2007-08-26 14:56                                                                                                                 ` Richard Stallman
  2 siblings, 1 reply; 218+ messages in thread
From: Stefan Monnier @ 2007-08-25 19:44 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, rms, emacs-devel

>> I don't like that idea.  It isn't necessary, and the Info file might
>> be missing.

> I don't understand why the Info file might be missing.  Like all other

It's hard to understand but Debian puts the doc in a separate package in the
non-free section because the GFDL is generally not considered as Free
according to Debian's definition.


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 19:44                                                                                                                 ` Stefan Monnier
@ 2007-08-25 19:53                                                                                                                   ` David Kastrup
  2007-08-25 20:38                                                                                                                     ` Stefan Monnier
  2007-08-25 23:33                                                                                                                     ` Stephen J. Turnbull
  0 siblings, 2 replies; 218+ messages in thread
From: David Kastrup @ 2007-08-25 19:53 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Juri Linkov, rgm, rms, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> I don't like that idea.  It isn't necessary, and the Info file might
>>> be missing.
>
>> I don't understand why the Info file might be missing.  Like all other
>
> It's hard to understand but Debian puts the doc in a separate
> package in the non-free section because the GFDL is generally not
> considered as Free according to Debian's definition.

I should think it Debian's rather than our job to deal with the
ensuing breakage.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 19:53                                                                                                                   ` David Kastrup
@ 2007-08-25 20:38                                                                                                                     ` Stefan Monnier
  2007-08-25 23:33                                                                                                                     ` Stephen J. Turnbull
  1 sibling, 0 replies; 218+ messages in thread
From: Stefan Monnier @ 2007-08-25 20:38 UTC (permalink / raw)
  To: David Kastrup; +Cc: Juri Linkov, rgm, rms, emacs-devel

>>>> I don't like that idea.  It isn't necessary, and the Info file might
>>>> be missing.
>> 
>>> I don't understand why the Info file might be missing.  Like all other
>> 
>> It's hard to understand but Debian puts the doc in a separate
>> package in the non-free section because the GFDL is generally not
>> considered as Free according to Debian's definition.

> I should think it Debian's rather than our job to deal with the
> ensuing breakage.

I'd tend to agree,


        Stefan

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 19:53                                                                                                                   ` David Kastrup
  2007-08-25 20:38                                                                                                                     ` Stefan Monnier
@ 2007-08-25 23:33                                                                                                                     ` Stephen J. Turnbull
  2007-08-26  5:33                                                                                                                       ` David Kastrup
  1 sibling, 1 reply; 218+ messages in thread
From: Stephen J. Turnbull @ 2007-08-25 23:33 UTC (permalink / raw)
  To: David Kastrup; +Cc: Juri Linkov, emacs-devel, Stefan Monnier, rms

David Kastrup writes:

 > I should think it Debian's rather than our job to deal with the
 > ensuing breakage.

I didn't know that either Debian or Emacs paid their developers.

Seriously, do whatever results in the least effort and acrimony in the
long run.  There are at least four options:

1. Spend time fielding the FAQs and explaining to the users that
Debian is at fault in hopes that they will complain and get Debian to
do something;

2. Save the users' time and bitch at Debian directly;

3. Do nothing; and

4. Make it harder for Debian to screw up this way.

My preference would be 4, in the form of GPLing the docs, but I guess
my self-interest is showing there! ;-)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 23:33                                                                                                                     ` Stephen J. Turnbull
@ 2007-08-26  5:33                                                                                                                       ` David Kastrup
  0 siblings, 0 replies; 218+ messages in thread
From: David Kastrup @ 2007-08-26  5:33 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Juri Linkov, emacs-devel, Stefan Monnier, rms

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> David Kastrup writes:
>
>  > I should think it Debian's rather than our job to deal with the
>  > ensuing breakage.
>
> I didn't know that either Debian or Emacs paid their developers.
>
> Seriously, do whatever results in the least effort and acrimony in the
> long run.  There are at least four options:
>
> 1. Spend time fielding the FAQs and explaining to the users that
> Debian is at fault in hopes that they will complain and get Debian to
> do something;
>
> 2. Save the users' time and bitch at Debian directly;
>
> 3. Do nothing; and
>
> 4. Make it harder for Debian to screw up this way.
>
> My preference would be 4, in the form of GPLing the docs, but I
> guess my self-interest is showing there! ;-)

GPLing the docs would mean that people could, for example, "adapt" the
GNU Manifesto to what they consider changing circumstances.  Or omit
it altogether in a print publication.  Which is a concern not just in
countries like China: "Open Source" has as one of its goals not to
frighten people away by talking about freedom and similar things.

I have just taken a look at the XEmacs manual.  It retains the
manifesto, but actually the license (the pre-GFDL-one) requires this
section to stay unmodified.  Would it be in there still if not
required by the license?

As a note aside, it is sort of amusing that the XEmacs documentation
is classified as "free" by Debian in spite of indelible, inviolate
sections, while Emacs documentation is "non-free" because of them.

I guess the GFDL by any other name smells sweeter.

Personally, I'd rather prefer at least a dual licensing of the manual
under the GPL, to make it possible for third parties to exchange
documentation between DOC strings and the manual.  However, this would
require then that they relicense the resulting manual under GPL only,
since moving DOC strings from GPLed material into something licensed
as GFDL would not be allowed.

As long as the GFDL has different aims to serve as the GPL, I don't
see that there is an easy way out.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-25 14:28                                                                                                               ` Juri Linkov
  2007-08-25 17:06                                                                                                                 ` Thien-Thi Nguyen
  2007-08-25 19:44                                                                                                                 ` Stefan Monnier
@ 2007-08-26 14:56                                                                                                                 ` Richard Stallman
  2007-08-26 23:45                                                                                                                   ` Juri Linkov
  2 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-08-26 14:56 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    I don't understand why the Info file might be missing.  Like all other
    Info files it will exist in the `info' directory.

All sorts of things can go wrong.  Take my word for it,
this increases unreliability.  Without an important reason,
it is not worth the risk.

My decision is no.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-08-26 14:56                                                                                                                 ` Richard Stallman
@ 2007-08-26 23:45                                                                                                                   ` Juri Linkov
       [not found]                                                                                                                     ` <E1IPj9w-0003bw-4e@fencepost.gnu.org>
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-08-26 23:45 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>     I don't understand why the Info file might be missing.  Like all other
>     Info files it will exist in the `info' directory.
>
> All sorts of things can go wrong.  Take my word for it,
> this increases unreliability.  Without an important reason,
> it is not worth the risk.

Then please also comment of the second part of my previous message:

  If not using an Info file and not using automatically alternating screens,
  I see no better UI than clicking on tabs to switch between screens.
  This is how many programs display information on the About page.

Is this acceptable?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
       [not found]                                                                                                                     ` <E1IPj9w-0003bw-4e@fencepost.gnu.org>
@ 2007-09-02 21:01                                                                                                                       ` Juri Linkov
  2007-09-03 18:25                                                                                                                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-02 21:01 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>       If not using an Info file and not using automatically alternating screens,
>       I see no better UI than clicking on tabs to switch between screens.
>       This is how many programs display information on the About page.
>
>     Is this acceptable?
>
> The problem it is solving is obsolete.  We already decided to remove
> the help commands from About, thus shortening it and reducing it to
> one screen.

As many programs usually contain 4 pages on the About screen: "Authors",
"Licence", "Report Bug" and "How to Contribute", Emacs could do the same
even without using Info files (which are not always available).

There are 4 files in the root directory of the Emacs tree that exactly
correspond to these 4 pages: AUTHORS, COPYING, BUGS and CONTRIBUTE.

On the About screen we could add 4 links to these files clicking on which
will open the file in another window (using `find-file-other-window').

Unfortunately, it seems that these files don't always get into Emacs
distributions.  At least, I can't find them on Debian.  Maybe this
is because these files are not in the etc directory.  What about
moving/copying them to etc where they can be found by `data-directory'?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-02 21:01                                                                                                                       ` Juri Linkov
@ 2007-09-03 18:25                                                                                                                         ` Richard Stallman
  2007-09-03 23:46                                                                                                                           ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-03 18:25 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

    As many programs usually contain 4 pages on the About screen: "Authors",
    "Licence", "Report Bug" and "How to Contribute", Emacs could do the same
    even without using Info files (which are not always available).

I don't mind having those four, but our current About display
has other things in it too, and I don't want to just discard them.

    There are 4 files in the root directory of the Emacs tree that exactly
    correspond to these 4 pages: AUTHORS, COPYING, BUGS and CONTRIBUTE.

I am not sure that all 4 of those are the right way to handle these
4 commands.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-03 18:25                                                                                                                         ` Richard Stallman
@ 2007-09-03 23:46                                                                                                                           ` Juri Linkov
  2007-09-04 16:45                                                                                                                             ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-03 23:46 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

>     As many programs usually contain 4 pages on the About screen: "Authors",
>     "Licence", "Report Bug" and "How to Contribute", Emacs could do the same
>     even without using Info files (which are not always available).
>
> I don't mind having those four, but our current About display
> has other things in it too, and I don't want to just discard them.

In the previous message you said:

    We already decided to remove the help commands from About, thus
    shortening it and reducing it to one screen.

I agree that the Help commands are useless on the About screen (that are
useful only for the Startup screen).  So after removing them we'll have
more free space for other information.

>     There are 4 files in the root directory of the Emacs tree that exactly
>     correspond to these 4 pages: AUTHORS, COPYING, BUGS and CONTRIBUTE.
>
> I am not sure that all 4 of those are the right way to handle these
> 4 commands.

All these files contain information that most programs usually put on the
About screen.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-03 23:46                                                                                                                           ` Juri Linkov
@ 2007-09-04 16:45                                                                                                                             ` Richard Stallman
  2007-09-04 22:57                                                                                                                               ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-04 16:45 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

	We already decided to remove the help commands from About, thus
	shortening it and reducing it to one screen.

    I agree that the Help commands are useless on the About screen (that are
    useful only for the Startup screen).  So after removing them we'll have
    more free space for other information.

Would you like to implement the change that we previously agreed on?
(I thought it had been implemented at the time.)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-04 16:45                                                                                                                             ` Richard Stallman
@ 2007-09-04 22:57                                                                                                                               ` Juri Linkov
  2007-09-05 20:02                                                                                                                                 ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-04 22:57 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

> 	We already decided to remove the help commands from About, thus
> 	shortening it and reducing it to one screen.
>
>     I agree that the Help commands are useless on the About screen (that are
>     useful only for the Startup screen).  So after removing them we'll have
>     more free space for other information.
>
> Would you like to implement the change that we previously agreed on?
> (I thought it had been implemented at the time.)

Done.

Now it's time to think about what to put on the About screen.
As I said before, most programs usually put a short description
of the program, how to contribute and report bugs, text of the
licence and a list of authors/contributors.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-04 22:57                                                                                                                               ` Juri Linkov
@ 2007-09-05 20:02                                                                                                                                 ` Richard Stallman
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-05 20:02 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

I see you cut out almost everything from the About screen.

I just did substantial work on both the fancy and text-only
startup and about screens.  I put back PART of what was there before.

    As I said before, most programs usually put a short description
    of the program, how to contribute and report bugs, text of the
    licence and a list of authors/contributors.

Some of those things are still not included in our About screens.
Could you those that is missing?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-05 20:02                                                                                                                                 ` Richard Stallman
@ 2007-09-06 14:54                                                                                                                                   ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
                                                                                                                                                       ` (4 more replies)
  0 siblings, 5 replies; 218+ messages in thread
From: Juri Linkov @ 2007-09-06 14:54 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

> I just did substantial work on both the fancy and text-only
> startup and about screens.  I put back PART of what was there before.

Please see my comments on your changes:

* fancy-startup-text:

"GNU Emacs" could be linked to "http://www.gnu.org/software/emacs/" similar
to how you linked "GNU/Linux" to "http://www.gnu.org/gnu/linux-and-gnu.html".

Unfortunately, you deleted the link to the customization of the startup
screen (but other text-only startup screens still have it).  This is
essential to make it easy for the user to disable the startup screen,
because it is useful mostly for beginners, and is annoying for other users.

Text-only startup screens are welcoming, but fancy startup screen is not:
i.e. text-only screen says "Welcome to GNU Emacs, one component ...",
but fancy startup screen simply says: "GNU Emacs is one component ..."
The fancy screen could say the same.

* normal-mouse-startup-screen:

The text-only no-mouse startup screen have a link to the *scratch* buffer,
but text-only mouse startup screen doesn't.  Is it needed?

* normal-no-mouse-startup-screen:

In two places of this screen, there are two adjacent empty lines ("\n\n\n").
This wastes space and makes the screen taller than 24 lines. Should
two empty lines be changed to one?

* fancy-about-text:

I think the About screen should not duplicate items available in the Help
menu, because usually users invoke the About screen from the main menu,
where they can see other items.  For instance, "GNU and Freedom" is
available under the menu "Help / About GNU".  "Emacs Tutorial" is available
under "Help / Emacs Tutorial".

What is still missing I think is "How to contribute" and "Contributors"
from the files CONTRIBUTE and AUTHORS.  But before making a link to these
files, perhaps they should be moved to the etc directory.

* normal-about-screen:

The text-only no-mouse about screen says:
"To follow a link, click Mouse-1 on it, or move to it and type RET."
I think we should delete text "click Mouse-1 on it".

* Help menu:

To make it easier for users to find the About menu item, we could follow
the convention that the About menu item is the last item in the Help menu.

So I propose to move two menu items

About Emacs
About GNU

to the end of the Help menu, replacing "Emacs Psychotherapist".
And to move "Emacs Psychotherapist" to be after "Send Bug Report..."
and "Emacs Known Problems", thus helping users to find it to overcome
frustrations caused by Emacs bugs and problems :-)

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
@ 2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-07  8:57                                                                                                                                       ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
                                                                                                                                                       ` (3 subsequent siblings)
  4 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-07  6:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Unfortunately, you deleted the link to the customization of the startup
    screen (but other text-only startup screens still have it).

The screen was too long, so I had to delete the things that were
the least important.  I chose that as the least important.

I won't put that one back in, becuase I don't want to delete any of
the other things which are there now.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-07  8:55                                                                                                                                       ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
                                                                                                                                                       ` (2 subsequent siblings)
  4 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-07  6:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Text-only startup screens are welcoming, but fancy startup screen is not:
    i.e. text-only screen says "Welcome to GNU Emacs, one component ...",
    but fancy startup screen simply says: "GNU Emacs is one component ..."
    The fancy screen could say the same.

I don't mind that change in wording.

    * normal-mouse-startup-screen:

    The text-only no-mouse startup screen have a link to the *scratch* buffer,
    but text-only mouse startup screen doesn't.  Is it needed?

There is no room for more lines in the mouse startup screen.
I had to delete that one to make the screen short enough.

    In two places of this screen, there are two adjacent empty lines ("\n\n\n").
    This wastes space and makes the screen taller than 24 lines. Should
    two empty lines be changed to one?

Please do that.

    I think the About screen should not duplicate items available in the Help
    menu, because usually users invoke the About screen from the main menu,
    where they can see other items.  For instance, "GNU and Freedom" is
    available under the menu "Help / About GNU".  "Emacs Tutorial" is available
    under "Help / Emacs Tutorial".

These things are important _for us_, so I want them there.


How can I tell Emacs that my console has no mouse?
It does not have one.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-07  8:56                                                                                                                                       ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  4 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-07  6:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    What is still missing I think is "How to contribute" and "Contributors"
    from the files CONTRIBUTE and AUTHORS.  But before making a link to these
    files, perhaps they should be moved to the etc directory.

Why do you think it is desirable to move them?
Is it for installation reasons?

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
                                                                                                                                                       ` (2 preceding siblings ...)
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  2007-09-09 12:36                                                                                                                                       ` Juri Linkov
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  4 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-07  6:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    The text-only no-mouse about screen says:
    "To follow a link, click Mouse-1 on it, or move to it and type RET."
    I think we should delete text "click Mouse-1 on it".

I don't think it makes any difference.  If you can't click, it tells
you the other method.  But I don't object to making this change.
Please do it if you wish.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-06 14:54                                                                                                                                   ` Juri Linkov
                                                                                                                                                       ` (3 preceding siblings ...)
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  6:32                                                                                                                                     ` Richard Stallman
  4 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-09-07  6:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel


    * Help menu:

    To make it easier for users to find the About menu item, we could follow
    the convention that the About menu item is the last item in the Help menu.

    So I propose to move two menu items

    About Emacs
    About GNU

    to the end of the Help menu, replacing "Emacs Psychotherapist".
    And to move "Emacs Psychotherapist" to be after "Send Bug Report..."
    and "Emacs Known Problems", thus helping users to find it to overcome
    frustrations caused by Emacs bugs and problems :-)

Ok, please do.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  8:55                                                                                                                                       ` Juri Linkov
  2007-09-08  7:00                                                                                                                                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-07  8:55 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     I think the About screen should not duplicate items available in the Help
>     menu, because usually users invoke the About screen from the main menu,
>     where they can see other items.  For instance, "GNU and Freedom" is
>     available under the menu "Help / About GNU".  "Emacs Tutorial" is available
>     under "Help / Emacs Tutorial".
>
> These things are important _for us_, so I want them there.

Now I see why it's important to leave "GNU and Freedom".  But I think
"Emacs Tutorial" and "Emacs Guided Tour" are not important on the About
screen.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  8:56                                                                                                                                       ` Juri Linkov
  2007-09-07 17:56                                                                                                                                         ` Glenn Morris
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-07  8:56 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     What is still missing I think is "How to contribute" and "Contributors"
>     from the files CONTRIBUTE and AUTHORS.  But before making a link to these
>     files, perhaps they should be moved to the etc directory.
>
> Why do you think it is desirable to move them?
> Is it for installation reasons?

Yes, it is for installation reasons, but I'm not sure if moving them
to etc is enough for them to get to installations.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-07  8:57                                                                                                                                       ` Juri Linkov
  2007-09-08  7:00                                                                                                                                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-07  8:57 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     Unfortunately, you deleted the link to the customization of the startup
>     screen (but other text-only startup screens still have it).
>
> The screen was too long, so I had to delete the things that were
> the least important.  I chose that as the least important.
>
> I won't put that one back in, becuase I don't want to delete any of
> the other things which are there now.

There is no need to delete other things.  Please see how the line with
added "Customize This Screen" is even shorter than its previous line:

More Manuals / Ordering The FSF sells printed copies of several manuals for Emacs

To start...   Open a File   Open Home Directory   Customize This Screen

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  8:56                                                                                                                                       ` Juri Linkov
@ 2007-09-07 17:56                                                                                                                                         ` Glenn Morris
  2007-09-07 22:54                                                                                                                                           ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Glenn Morris @ 2007-09-07 17:56 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rms, emacs-devel

Juri Linkov wrote:

> Yes, it is for installation reasons, but I'm not sure if moving them
> to etc is enough for them to get to installations.

If they were in etc, the normal `make install' rule would install
them, without any other changes being needed.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07 17:56                                                                                                                                         ` Glenn Morris
@ 2007-09-07 22:54                                                                                                                                           ` Juri Linkov
  2007-09-08 19:47                                                                                                                                             ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-07 22:54 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, emacs-devel

>> Yes, it is for installation reasons, but I'm not sure if moving them
>> to etc is enough for them to get to installations.
>
> If they were in etc, the normal `make install' rule would install
> them, without any other changes being needed.

Then perhaps we should move these files to etc.  Do you see any problem
with this?

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  8:57                                                                                                                                       ` Juri Linkov
@ 2007-09-08  7:00                                                                                                                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-09-08  7:00 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    To start...   Open a File   Open Home Directory   Customize This Screen

If it fits like that, and looks clear enough, you can add it.
(There needs to be "enough" space between items.)

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  8:55                                                                                                                                       ` Juri Linkov
@ 2007-09-08  7:00                                                                                                                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-09-08  7:00 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    Now I see why it's important to leave "GNU and Freedom".  But I think
    "Emacs Tutorial" and "Emacs Guided Tour" are not important on the About
    screen.

I think they are useful, and there is room for them, so there's no
reason to argue about it.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07 22:54                                                                                                                                           ` Juri Linkov
@ 2007-09-08 19:47                                                                                                                                             ` Richard Stallman
  2007-09-09 12:35                                                                                                                                               ` Juri Linkov
  0 siblings, 1 reply; 218+ messages in thread
From: Richard Stallman @ 2007-09-08 19:47 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

CONTRIBUTE seems to belong properly in etc; that's logical.

maintain.texi says that AUTHORS should be "in the source directory".
Emacs has several of those, so I guess etc is ok.

So please move the two files.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-08 19:47                                                                                                                                             ` Richard Stallman
@ 2007-09-09 12:35                                                                                                                                               ` Juri Linkov
  2007-09-09 20:06                                                                                                                                                 ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-09 12:35 UTC (permalink / raw)
  To: rms; +Cc: rgm, emacs-devel

> CONTRIBUTE seems to belong properly in etc; that's logical.
>
> maintain.texi says that AUTHORS should be "in the source directory".
> Emacs has several of those, so I guess etc is ok.
>
> So please move the two files.

Done.

I also renamed `inhibit-splash-screen' to `inhibit-startup-screen',
(with keeping an alias), because this is more correct variable name.

Also I moved Emacs version information to the beginning of the fancy
About screen, exactly as you've done already for the normal About screen.
So now fancy About screen and normal About screen have the same layout.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-07  6:32                                                                                                                                     ` Richard Stallman
@ 2007-09-09 12:36                                                                                                                                       ` Juri Linkov
  2007-09-09 20:06                                                                                                                                         ` Richard Stallman
  0 siblings, 1 reply; 218+ messages in thread
From: Juri Linkov @ 2007-09-09 12:36 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

>     The text-only no-mouse about screen says:
>     "To follow a link, click Mouse-1 on it, or move to it and type RET."
>     I think we should delete text "click Mouse-1 on it".
>
> I don't think it makes any difference.  If you can't click, it tells
> you the other method.  But I don't object to making this change.
> Please do it if you wish.

I think we should remove the text:

"To follow a link, click Mouse-1 on it, or move to it and type RET."

It is useless.  Most users already know how to follow a link, because
everybody uses Web browsers nowadays.  And this text wastes two valuable
lines on the About screen.

Instead of this, I propose adding a help-echo property to every link,
which says what this link does.  This is especially useful when the link
leads to some URL.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-09 12:36                                                                                                                                       ` Juri Linkov
@ 2007-09-09 20:06                                                                                                                                         ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-09-09 20:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

    I think we should remove the text:

    "To follow a link, click Mouse-1 on it, or move to it and type RET."

    It is useless.  Most users already know how to follow a link, because
    everybody uses Web browsers nowadays.  And this text wastes two valuable
    lines on the About screen.

I think the About screen is not crowded.

People know how to follow a link graphically, but on a tty they might
not know how, and they might not be sure these are links.  This message
makes people certain of that.  We may as well keep it.

^ permalink raw reply	[flat|nested] 218+ messages in thread

* Re: Scratch buffer annoyance
  2007-09-09 12:35                                                                                                                                               ` Juri Linkov
@ 2007-09-09 20:06                                                                                                                                                 ` Richard Stallman
  0 siblings, 0 replies; 218+ messages in thread
From: Richard Stallman @ 2007-09-09 20:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rgm, emacs-devel

Thanks for making the changes.

^ permalink raw reply	[flat|nested] 218+ messages in thread

end of thread, other threads:[~2007-09-09 20:06 UTC | newest]

Thread overview: 218+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-06  0:06 Scratch buffer annoyance Chong Yidong
2007-07-06  4:12 ` Stefan Monnier
2007-07-15 21:37 ` Leo
2007-07-15 22:19   ` David Reitter
2007-07-15 22:42     ` Zhang Wei
2007-07-15 22:52     ` Juri Linkov
2007-07-16 15:49     ` Richard Stallman
2007-07-15 22:24   ` Karl Fogel
2007-07-16 20:32     ` Alfred M. Szmidt
2007-07-17 15:05       ` Richard Stallman
2007-07-17 15:28         ` David Reitter
2007-07-17 15:50           ` Tassilo Horn
2007-07-17 16:00             ` Johan Bockgård
2007-07-17 16:04             ` David Reitter
2007-07-17 16:57               ` Tassilo Horn
2007-07-17 19:37                 ` Robert J. Chassell
2007-07-17 22:15                   ` David Reitter
2007-07-18 14:11                   ` Richard Stallman
2007-07-18 15:53                     ` Robert J. Chassell
2007-07-17 18:42             ` Alfred M. Szmidt
2007-07-17 19:50               ` Tassilo Horn
2007-07-17 20:01                 ` Alfred M. Szmidt
2007-07-17 16:02           ` David Kastrup
2007-07-17 16:10             ` David Reitter
2007-07-18 20:53             ` Richard Stallman
2007-07-18 21:28               ` David Kastrup
2007-07-19 21:20                 ` Richard Stallman
2007-07-17 18:42           ` Alfred M. Szmidt
2007-07-17 18:55             ` David Kastrup
2007-07-17 20:31               ` Mathias Dahl
2007-07-17 21:56               ` Jason Rumney
2007-07-18  0:35                 ` Johan Bockgård
2007-07-17 19:59             ` Tassilo Horn
2007-07-17 20:28               ` Andreas Schwab
2007-07-18  9:22                 ` Jan Djärv
2007-07-18 10:23                   ` Tassilo Horn
2007-07-18 10:56                     ` Jan Djärv
2007-07-18 20:53               ` Richard Stallman
2007-07-18 20:53             ` Richard Stallman
2007-07-18 14:11           ` Richard Stallman
2007-07-17 16:36         ` Chong Yidong
2007-07-18 20:53           ` Richard Stallman
2007-07-17 17:48         ` Drew Adams
2007-07-18 20:29           ` Juri Linkov
2007-07-19  0:00             ` Drew Adams
2007-07-19 14:25             ` Mathias Dahl
2007-07-19 14:45               ` David Kastrup
2007-07-19 15:44               ` Peter Lee
2007-07-20 13:42                 ` Richard Stallman
2007-07-20 21:01                   ` Drew Adams
2007-07-21  8:54                     ` Mathias Dahl
2007-07-21  9:35                       ` David Kastrup
2007-07-21  9:48                         ` David Kastrup
2007-07-21 15:14                           ` Drew Adams
2007-07-21 15:46                             ` David Kastrup
2007-07-22 10:05                               ` Richard Stallman
2007-07-22 10:40                                 ` David Kastrup
2007-07-23  4:29                                   ` Richard Stallman
2007-07-22  1:49                             ` Richard Stallman
2007-07-22 13:26                               ` Drew Adams
2007-07-23  4:28                                 ` Richard Stallman
2007-07-21 18:07                   ` Juri Linkov
2007-07-23  4:28                     ` Richard Stallman
2007-07-23 21:45                       ` Juri Linkov
2007-07-24 16:45                         ` Richard Stallman
2007-07-25  0:12                           ` Juri Linkov
2007-07-25  5:24                             ` David Kastrup
2007-07-27 21:20                               ` Juri Linkov
2007-07-27 21:16                             ` Juri Linkov
2007-07-29  2:23                               ` Richard Stallman
2007-07-29  9:18                                 ` Juri Linkov
2007-07-29  9:46                                   ` David Kastrup
2007-07-29 14:28                                     ` Drew Adams
2007-07-30 16:44                                   ` Richard Stallman
2007-07-31  8:51                                   ` Miles Bader
2007-07-31 13:09                                     ` Stefan Monnier
2007-07-31 14:29                                       ` David Kastrup
2007-07-31 20:22                                         ` Richard Stallman
2007-08-01  4:34                                       ` Miles Bader
2007-08-01  4:35                                       ` Miles Bader
2007-08-01  5:14                                       ` Drew Adams
2007-08-01  5:55                                         ` David Kastrup
2007-08-01  6:18                                           ` Drew Adams
2007-08-01  7:46                                             ` David Kastrup
2007-08-01 14:32                                               ` Drew Adams
2007-08-01  8:34                                         ` Jason Rumney
2007-08-01 14:32                                           ` Drew Adams
2007-08-01 15:41                                             ` Andreas Schwab
2007-08-01 16:53                                               ` Drew Adams
2007-08-01 17:19                                                 ` Stefan Monnier
2007-08-01 17:54                                                   ` Drew Adams
2007-07-31  8:54                                   ` Miles Bader
2007-07-31 13:09                                   ` Stefan Monnier
2007-07-31 14:29                                   ` Andreas Schwab
2007-07-31 14:42                                     ` David Kastrup
2007-08-01 16:45                                       ` Juri Linkov
2007-08-01 17:05                                         ` Drew Adams
2007-08-01 18:09                                           ` David Kastrup
2007-08-01 18:29                                             ` Drew Adams
2007-08-01 19:43                                               ` David Kastrup
2007-08-01 19:54                                                 ` Davis Herring
2007-08-01 21:09                                                   ` David Kastrup
2007-08-01 23:15                                                     ` Miles Bader
2007-08-01 23:21                                                       ` Davis Herring
2007-08-02  0:45                                                         ` Miles Bader
2007-08-02 23:42                                                       ` Richard Stallman
2007-08-03 18:16                                                         ` Juri Linkov
2007-08-03 22:02                                                           ` Richard Stallman
2007-08-04  7:02                                                             ` David Kastrup
2007-08-05  3:05                                                               ` Richard Stallman
2007-08-05  6:57                                                                 ` David Kastrup
2007-08-05 20:54                                                                   ` Richard Stallman
2007-08-05 16:59                                                                 ` Juri Linkov
2007-08-06 14:19                                                                   ` Richard Stallman
2007-08-06 14:35                                                                     ` David Kastrup
2007-08-07  1:22                                                                       ` Richard Stallman
2007-08-07  6:13                                                                         ` David Kastrup
2007-08-07 20:11                                                                           ` Richard Stallman
2007-08-07 20:57                                                                             ` David Kastrup
2007-08-09  0:07                                                                               ` Richard Stallman
2007-08-09 19:54                                                                                 ` Juri Linkov
2007-08-09 22:24                                                                                   ` Andreas Schwab
2007-08-11  5:05                                                                                   ` Richard Stallman
2007-08-19 23:16                                                                                     ` buffer-auto-mode-alist (was: Scratch buffer annoyance) Juri Linkov
2007-08-20 18:31                                                                                       ` Richard Stallman
2007-08-08 22:59                                                                     ` Scratch buffer annoyance Juri Linkov
2007-08-08 23:53                                                                       ` David Kastrup
2007-08-09 19:47                                                                         ` Juri Linkov
2007-08-09 20:09                                                                           ` David Kastrup
2007-08-11  5:05                                                                           ` Richard Stallman
2007-08-12 20:45                                                                             ` Juri Linkov
2007-08-12 23:20                                                                               ` Johan Bockgård
2007-08-13  5:00                                                                               ` Richard Stallman
2007-08-13  5:57                                                                                 ` David Kastrup
2007-08-14  0:28                                                                                   ` Richard Stallman
2007-08-15 23:32                                                                                     ` Juri Linkov
2007-08-16  0:59                                                                                       ` Glenn Morris
2007-08-16 20:11                                                                                         ` Juri Linkov
2007-08-17  4:50                                                                                           ` Richard Stallman
2007-08-17 22:35                                                                                             ` Juri Linkov
2007-08-19  0:44                                                                                               ` Richard Stallman
2007-08-19 14:45                                                                                                 ` Juri Linkov
2007-08-19 22:30                                                                                                   ` Richard Stallman
2007-08-17 23:32                                                                                             ` Glenn Morris
2007-08-19 14:50                                                                                               ` Juri Linkov
2007-08-19 22:30                                                                                                 ` Richard Stallman
2007-08-19 23:21                                                                                                   ` Juri Linkov
2007-08-20 18:31                                                                                                     ` Richard Stallman
2007-08-20 23:28                                                                                                       ` Juri Linkov
2007-08-21  9:07                                                                                                         ` Mathias Dahl
2007-08-21 23:23                                                                                                         ` Richard Stallman
2007-08-23  0:14                                                                                                           ` Juri Linkov
2007-08-23 20:58                                                                                                             ` Richard Stallman
2007-08-25 14:28                                                                                                               ` Juri Linkov
2007-08-25 17:06                                                                                                                 ` Thien-Thi Nguyen
2007-08-25 19:44                                                                                                                 ` Stefan Monnier
2007-08-25 19:53                                                                                                                   ` David Kastrup
2007-08-25 20:38                                                                                                                     ` Stefan Monnier
2007-08-25 23:33                                                                                                                     ` Stephen J. Turnbull
2007-08-26  5:33                                                                                                                       ` David Kastrup
2007-08-26 14:56                                                                                                                 ` Richard Stallman
2007-08-26 23:45                                                                                                                   ` Juri Linkov
     [not found]                                                                                                                     ` <E1IPj9w-0003bw-4e@fencepost.gnu.org>
2007-09-02 21:01                                                                                                                       ` Juri Linkov
2007-09-03 18:25                                                                                                                         ` Richard Stallman
2007-09-03 23:46                                                                                                                           ` Juri Linkov
2007-09-04 16:45                                                                                                                             ` Richard Stallman
2007-09-04 22:57                                                                                                                               ` Juri Linkov
2007-09-05 20:02                                                                                                                                 ` Richard Stallman
2007-09-06 14:54                                                                                                                                   ` Juri Linkov
2007-09-07  6:32                                                                                                                                     ` Richard Stallman
2007-09-07  8:57                                                                                                                                       ` Juri Linkov
2007-09-08  7:00                                                                                                                                         ` Richard Stallman
2007-09-07  6:32                                                                                                                                     ` Richard Stallman
2007-09-07  8:55                                                                                                                                       ` Juri Linkov
2007-09-08  7:00                                                                                                                                         ` Richard Stallman
2007-09-07  6:32                                                                                                                                     ` Richard Stallman
2007-09-07  8:56                                                                                                                                       ` Juri Linkov
2007-09-07 17:56                                                                                                                                         ` Glenn Morris
2007-09-07 22:54                                                                                                                                           ` Juri Linkov
2007-09-08 19:47                                                                                                                                             ` Richard Stallman
2007-09-09 12:35                                                                                                                                               ` Juri Linkov
2007-09-09 20:06                                                                                                                                                 ` Richard Stallman
2007-09-07  6:32                                                                                                                                     ` Richard Stallman
2007-09-09 12:36                                                                                                                                       ` Juri Linkov
2007-09-09 20:06                                                                                                                                         ` Richard Stallman
2007-09-07  6:32                                                                                                                                     ` Richard Stallman
2007-08-19 15:30                                                                                               ` Mathias Dahl
2007-08-19 17:48                                                                                                 ` Juri Linkov
2007-08-20 15:17                                                                                                   ` Richard Stallman
2007-08-19 22:30                                                                                                 ` Richard Stallman
2007-08-19 23:21                                                                                                   ` Juri Linkov
2007-08-20 18:31                                                                                                     ` Richard Stallman
2007-08-20 23:29                                                                                                       ` Juri Linkov
2007-08-20  2:29                                                                                                   ` Glenn Morris
2007-08-20  8:13                                                                                                     ` Mathias Dahl
2007-08-20 18:30                                                                                                     ` Richard Stallman
2007-08-20 23:28                                                                                                       ` Juri Linkov
2007-08-21 23:23                                                                                                         ` Richard Stallman
2007-08-16  2:42                                                                                       ` Richard Stallman
2007-08-16 20:12                                                                                         ` Juri Linkov
2007-08-17  4:50                                                                                           ` Richard Stallman
2007-08-19 14:55                                                                                       ` Juri Linkov
2007-08-19 22:30                                                                                         ` Richard Stallman
2007-08-13 23:30                                                                                 ` Juri Linkov
2007-08-02 15:09                                                   ` Stefan Monnier
2007-08-02 23:42                                                     ` Richard Stallman
2007-07-19 18:28             ` Alfred M. Szmidt
2007-07-21 17:13             ` Dieter Wilhelm
2007-07-21 18:12               ` Juri Linkov
2007-07-21 18:52                 ` Drew Adams
2007-07-21 19:24                   ` David Kastrup
2007-07-22 18:37                     ` Richard Stallman
2007-07-22 19:09                       ` David Kastrup
2007-07-22 21:43                         ` Juri Linkov
2007-07-23 18:07                           ` Richard Stallman
2007-07-22 19:41                   ` Drew Adams
2007-07-22 19:58                     ` David Kastrup
2007-07-18 20:53           ` Richard Stallman

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).