Alan Mackenzie | 1 Jun 16:50 2002

How am I supposed to make a buffer read-only?

Gnu Emacs 21.1

I just tried C-x C-q, and got the error message back: "/my/path/foo.el is
up-to-date" in the minibuffer.  [foo.el is a CVSed file.]

Bug:  The buffer remained writable.
[Possibly relevant:  the cvs server is at the other end of a modem
connection which wasn't up at the time, thankfully.]

A quick C-h k revealed that the normal, simple, sane, sensible binding
has been overridden by vc-toggle-read-only, a mis-named function if ever
there were one.  It seems to regard checking a file in as a perfectly
sensible "method" of making it's buffer read-only.  Ye Gods!

Is there really some semantic identity between changing the read-only
status of a buffer, and checking it's file about?  Damned if I can see
it.  Particularly when the version control system is CVS.  I thought it
was only commercial version control systems that were lazy/fascistic
enough to (ab)use files' read-only status to mark their check-outedness.

Checking a file in/out is one thing.  Changing the read-only status of a
buffer is something completely different.  Surely?  Somebody please tell
me I'm having a bad dream, and I'll wake up soon.

Do I really have to type M-x toggle-read-only for evermore, so as to
avoid the risk of accidentally checking a file in/out? 

Suggestion:  C-x C-q should be reserved for toggle-read-only, and
something else (C-x v v, presumably) for checking files in/out.

(Continue reading)

Dan Jacobson | 1 Jun 23:39 2002

repeat isearch-forward-regexp with just C-s C-s also

ESC C-s runs the command isearch-forward-regexp

OK, but to repeat the last regexp search, another ESC C-s C-s seems
too much to ask.  How about just C-s C-s?  I.e. make C-s C-s will
repeat the last search, be it plain or regexp.  Make this behavior a
new option turned on by default.

<escape> C-s i $ C-s C-s C-e m <escape> C-s C-s C-s C-s
                               ^^^^^^^^pain in the brain,
I don't know why, but it is.  Indeed, (grep "grep -n -e i$
exercises0.in") and next-error is one million times less painful.
--

-- 
http://jidanni.org/ Taiwan(04)25854780
Dan Jacobson | 2 Jun 00:58 2002

*Quail Completions* doesn't scroll with TAB TAB

I'm inputting big5 Chinese with chinese-py-punct-b5. I do yan TAB TAB
but the *Quail Completions* buffer doesn't scroll to reveal the rest
of the choices hidden in the bottom of the buffer.
--

-- 
http://jidanni.org/ Taiwan(04)25854780
Dan Jacobson | 1 Jun 23:55 2002

next-error always goes to beginning of line

Gentlemen, your next-error command is inconsiderate of where one wants
the cursor on the line, always returning one to the beginning of the
next line with an error on it.

What if my job is to put an apple at the end of each line with a
marshmallow on it?

The best I could do would be (grep "grep -n -e marshmallow somefile")
Then it's "get out the C-e finger", it's exercise time.

As a remedy, you might notice, just like with next-line, where my
cursor was.  Or you might add an option to M-x grep about where to
place the cursor or something...

ProtoEli> use query-replace-regexp.  Problem solved.  Next.

On some lines I might need potatoes or a salad.

ProtoEli> use recursive edit.  Next.

Well, let's say I still must use next-error for reasons of National
Defense that I must not disclose.
--

-- 
http://jidanni.org/ Taiwan(04)25854780
Dan Jacobson | 2 Jun 05:46 2002

all the prefix arguments do the same thing

Gentlemen, let's examine
    ESC | runs the command shell-command-on-region

    Execute string COMMAND in inferior shell with region as input.
    Normally display output (if any) in temp buffer `*Shell Command Output*';
    Prefix arg means replace the region with it.

Well, how about let's say one doesn't want to replace the region, nor
put it in a separate buffer, but instead insert the output above or below
the region?

Currently any prefix argument means "replace".   Do you think just
maybe you could make some certain prefix arguments do what I want?

Don't you think it isn't smart to make _all_ the prefix arguments do
the same thing?  Isn't that a lazy bad habit that will only bite you
back later when you want to add new actions?

Emacs is littered with this... Why didn't Stallman think ahead... What
if all the TCP ports pointed to the same service?

In the future, OK, a new command should at least use 4 (C-u) and maybe
1 to do the default "when given an argument" thing, but say 98 should
trigger an error if it hasn't been purposely implemented yet -- in
case somebody expects to do special argument 98's function on an older
version that doesn't support it.  Better trigger an error that have
the user think things went smoothly.
--

-- 
http://jidanni.org/ Taiwan(04)25854780
(Continue reading)

Dan Jacobson | 2 Jun 08:06 2002

enlarge-window effects too fleeting

C-x ^ runs the command enlarge-window

OK, but all that hard work is wiped out by say, a simple Help query

C-x 2 C-x ^ C-x ^ C-x ^ C-h k x C-h l

or even a simple C-x C-b.

By the way, there is no command to swap windows, make the top one the
bottom, in case somebody wants to.
--

-- 
http://jidanni.org/ Taiwan(04)25854780
Dan Jacobson | 2 Jun 09:43 2002

no way of escaping "*" in dired-do-shell-command injustice example

I was wondering why there was no output from
(dired-do-shell-command "sed 's/.*\\([a-z][a-z]+\\).*/\\1/'" nil (quote ("exercises7.in")))
when I suddenly realized "of course, those *'s, and there's no way of
escaping them.  Wonder who invented that?"
--

-- 
http://jidanni.org/ Taiwan(04)25854780
Marco Franzen | 2 Jun 12:31 2002

leim Makefile not -j safe

When building GNU Emacs 21.2 including leim-21.2 using make -j 2 (on a
two-way SPARC machine with Solaris 2.6, GNU Make 3.78.1 and GNU CC 3.1), the
bootstrap stalled with

.../leim/quail/4Corner.el locked by marcof <at> ukfd-e... (pid 11633): (s, q, p,
?)? 

Actually that message appeared long before it stalled; it stalled only when
make had run out of targets (for the other job slot).

See the attached typescript for details. In there I hit return a couple of
times when it stopped and then said p (proceed).

*************************************************************************    
This message is intended only for the stated addressee(s) 
and may be confidential.  Access to this email by anyone 
else is unauthorised. Any opinions expressed in this email
do not necessarily reflect the opinions of royalblue. 
Any unauthorised disclosure, use or dissemination, 
either whole or in part is prohibited,.   If you are not the 
intended recipient of this message, please notify 
the sender immediately.
*************************************************************************

Attachment (build.typescript): application/octet-stream, 46 KiB
Eli Zaretskii | 2 Jun 14:57 2002
Picon

Re: leim Makefile not -j safe


On Sun, 2 Jun 2002, Marco Franzen wrote:

> When building GNU Emacs 21.2 including leim-21.2 using make -j 2 (on a
> two-way SPARC machine with Solaris 2.6, GNU Make 3.78.1 and GNU CC 3.1), the
> bootstrap stalled with
> 
> .../leim/quail/4Corner.el locked by marcof <at> ukfd-e... (pid 11633): (s, q, p,
> ?)? 

Please upgrade to a newer version of Make (3.79 or later) or don't use -j.  
leim/Makefile disables parallel execution for some of its targets, but 
the feature required to do that was not part of GNU Make before v3.79.
Marco Franzen | 2 Jun 17:27 2002

RE: leim Makefile not -j safe

> > When building GNU Emacs 21.2 including leim-21.2
> > using make -j 2 (on a two-way SPARC machine with
> > Solaris 2.6, GNU Make 3.78.1 and GNU CC 3.1),
> > the bootstrap stalled with
> > 
> > .../leim/quail/4Corner.el locked by marcof <at> ukfd-e...
> > (pid 11633): (s, q, p, ?)? 
> 
> Please upgrade to a newer version of Make (3.79 or
> later) or don't use -j.
> leim/Makefile disables parallel execution
> for some of its targets, but the feature required
> to do that was not part of GNU Make before v3.79.

I'll upgrade then, thanks.

Anyway, from the comment in Makefile.in, I would
have thought you tried to work around Make versions
that don't honour '.NOTPARALLEL' pseudo targets:

	# The "if [ -f $ <at>  ]; then true; " part
        prevents parallel Make's
	# which don't honor .NOTPARALLEL, such as
        SGI's Make, from running
	# this rule many times, one each for every
        file it creates.

It might be interesting to know that those attempts
still leave you with the locking problem.
Maybe those attempts are no use because it fails 
(Continue reading)


Gmane