[comp.emacs] Has uemacs 3.9 solved the file save bug?

avi@pegasus.UUCP (12/08/87)

I haven't compiled the new micro emacs since I have a MSC compiler, which is
not fully supported. I have been having a very annoying problem with the
older version, and am wondering if it has been fixed, or if someone has a
work around. I am used to saving my files regularly with ^X^S, and then
sometimes quiting with ^X^C. Unfortunately, uemacs will quit before
completing the writing of the file, leaving me with only a small piece of
the file. This is beyond annoying. Yes, I can wait before quiting, but the
habit runs deep and the other half-dozen emaces I use regularly don't share
this feature. They all consider a file save to be an atomic operation that
is only interruped by ^G.

Has the problem been fixed, or can you suggest another command/binding?
-- 
Avi E. Gross @ AT&T (201) 576-6241 pegasus!avi or attmail!avigross

nwd@j.cc.purdue.edu (Daniel Lawrence) (12/09/87)

In article <3056@pegasus.UUCP> avi@pegasus.UUCP (XMPE40000-Avi E. Gross;LZ 3C-314;6241) writes:
>
>I haven't compiled the new micro emacs since I have a MSC compiler, which is
>not fully supported. I have been having a very annoying problem with the
>older version, and am wondering if it has been fixed, or if someone has a
>work around. I am used to saving my files regularly with ^X^S, and then
>sometimes quiting with ^X^C. Unfortunately, uemacs will quit before
>completing the writing of the file, leaving me with only a small piece of
>the file. This is beyond annoying. Yes, I can wait before quiting, but the
>habit runs deep and the other half-dozen emaces I use regularly don't share
>this feature. They all consider a file save to be an atomic operation that
>is only interruped by ^G.

I have seen a number of other people report this same problem, and in
every case up till now it was because they are on MSDOS and running a
TSR utility (mostly SideKick) which was ill behaved. In this case, the
TSR decides that it is going to handle the control breaks from the
keyboard (ie ^C) regaurdless of what the currently running program
wants. If you run sidekick, and then run MicroEMACS while it is
resident, when you type a ^C, sidekick's resident keyboard handler
intercepts it, decides the current program should abort immediatly and
kills it (even when it is in the middle of a save).

Try removing these resident utilities one at a time from your config.sys
and autoexec.bat files and see when this behavior stops. As to a fix for
this, I am at a loss.... I would hope the TSR authors would fix their
code. If anyone knows how to override this, please drop me a line.

			Daniel Lawrence		(317) 742-5153
			UUCP:	{ihnp4!pur-ee!}j.cc.purdue.edu!nwd
			ARPA:	nwd@j.cc.purdue.edu
			FIDO:	201/2 The Programmer's Room (317) 742-5533

zu@ethz.UUCP (Urs Zurbuchen) (12/10/87)

In article <3056@pegasus.UUCP> avi@pegasus.UUCP (XMPE40000-Avi E. Gross;LZ 3C-314;6241) writes:
>
>I haven't compiled the new micro emacs since I have a MSC compiler, which is
>not fully supported.

This is simply NOT TRUE. I am also working with MSC (version 4.0) and had only
one minor problem when I compiled MicroEmacs 3.9e (the latest version which
was posted on Usenet). This problem relates to the Subshell spawning. But if
you know just a little bit of C, there is no problem to fix it (add a routine
specific to MSC). Some time ago, there was even a posting in comp.sources.bugs
describing all the necessary steps to do that.

>I have been having a very annoying problem with the
>older version, and am wondering if it has been fixed, or if someone has a
>work around. I am used to saving my files regularly with ^X^S, and then
>sometimes quiting with ^X^C. Unfortunately, uemacs will quit before
>completing the writing of the file, leaving me with only a small piece of
>the file. 

I am sure you enable breaking with ^C (either in config.sys or in autoexec.bat)
Turn this off, and all your problems have gone :-)
I know this is not the solution to this problem we all want to have. Perhaps
you can do it with signal(). If not you have to included a function of your own
which intercepts the break vector of MS-DOS.


		Have a nice day,
		      ...urs

UUCP: ...seismo!mcvax!cernvax!ethz!zu