comparison src/process-unix.c @ 800:a5954632b187

[xemacs-hg @ 2002-03-31 08:27:14 by ben] more fixes, first crack at finishing behavior implementation TODO.ben-mule-21-5: Update. configure.in: Fix for new error-checking types. make-mswin-unicode.pl: Don't be fucked up by CRLF. Output code to force errors when nonintercepted Windows calls issued. behavior.el, dumped-lisp.el, menubar-items.el: Add support for saving using custom. Load into a dumped XEmacs. Correct :title to :short-doc in accordance with behavior-defs.el. Add a submenu under Options for turning on/off behaviors. cl-macs.el: Properly document `loop'. Fix a minor bug in keymap iteration and add support for bit-vector iteration. lisp-mode.el: Rearrange and add items for macro expanding. menubar-items.el: Document connection between these two functions. window.el: Port stuff from GNU 21.1. config.inc.samp, xemacs.mak: Separate out and add new variable for controlling error-checking. s/windowsnt.h: Use new ERROR_CHECK_ALL; not related to DEBUG_XEMACS. alloc.c, backtrace.h, buffer.c, buffer.h, bytecode.c, callproc.c, casetab.c, charset.h, chartab.c, cmdloop.c, config.h.in, console-msw.c, console-stream.c, console-tty.c, console.c, console.h, data.c, device-msw.c, device.c, device.h, dired-msw.c, dired.c, dumper.c, editfns.c, eldap.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, file-coding.h, fileio.c, frame-msw.c, frame.c, frame.h, glyphs-gtk.c, glyphs-msw.c, glyphs-shared.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, insdel.c, intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, intl-win32.c, keymap.c, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-x.c, menubar.c, mule-coding.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, opaque.c, print.c, process-nt.c, process-unix.c, process.c, rangetab.c, redisplay-msw.c, redisplay-output.c, redisplay.c, regex.c, scrollbar-msw.c, select-msw.c, signal.c, specifier.c, specifier.h, symbols.c, sysdep.c, syswindows.h, text.c, text.h, toolbar-msw.c, tooltalk.c, ui-gtk.c, unicode.c, window.c: Redo error-checking macros: ERROR_CHECK_TYPECHECK -> ERROR_CHECK_TYPES, ERROR_CHECK_CHARBPOS -> ERROR_CHECK_TEXT, add ERROR_CHECK_DISPLAY, ERROR_CHECK_STRUCTURES. Document these in config.h.in. Fix code to follow docs. Fix *_checking_assert() in accordance with new names. Attempt to fix periodic redisplay crash freeing display line structures. Add first implementation of sledgehammer redisplay check. Redo print_*() to use write_fmt_string(), write_fmt_string_lisp(). Fix bug in md5 handling. Rename character-to-unicode to char-to-unicode; same for unicode-to-char{acter}. Move chartab documentation to `make-char-table'. Some header cleanup. Clean up remaining places where nonintercepted Windows calls are being used. automated/mule-tests.el: Fix for new Unicode support.
author ben
date Sun, 31 Mar 2002 08:30:17 +0000
parents e38acbeb1cae
children 2b676dc88c66
comparison
equal deleted inserted replaced
799:03d9f9084848 800:a5954632b187
1299 old_sigpipe = 1299 old_sigpipe =
1300 (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap); 1300 (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap);
1301 /* Lstream_write() will never successfully write less than 1301 /* Lstream_write() will never successfully write less than
1302 the amount sent in. In the worst case, it just buffers 1302 the amount sent in. In the worst case, it just buffers
1303 the unwritten data. */ 1303 the unwritten data. */
1304 writeret = Lstream_write (XLSTREAM (DATA_OUTSTREAM(p)), chunkbuf, 1304 writeret = Lstream_write (XLSTREAM (DATA_OUTSTREAM (p)), chunkbuf,
1305 chunklen); 1305 chunklen);
1306 { 1306 {
1307 int save_errno = errno; 1307 int save_errno = errno;
1308 EMACS_SIGNAL (SIGPIPE, old_sigpipe); 1308 EMACS_SIGNAL (SIGPIPE, old_sigpipe);
1309 errno = save_errno; 1309 errno = save_errno;
1315 while (Lstream_was_blocked_p (XLSTREAM (p->pipe_outstream))) 1315 while (Lstream_was_blocked_p (XLSTREAM (p->pipe_outstream)))
1316 { 1316 {
1317 /* Buffer is full. Wait, accepting input; 1317 /* Buffer is full. Wait, accepting input;
1318 that may allow the program 1318 that may allow the program
1319 to finish doing output and read more. */ 1319 to finish doing output and read more. */
1320 Faccept_process_output (Qnil, make_int (1), Qnil); 1320 Faccept_process_output (Qnil, volatile_make_int (1), Qnil);
1321 /* It could have *really* finished, deleting the process */ 1321 /* It could have *really* finished, deleting the process */
1322 if (NILP(p->pipe_outstream)) 1322 if (NILP(p->pipe_outstream))
1323 return; 1323 return;
1324 old_sigpipe = 1324 old_sigpipe =
1325 (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap); 1325 (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap);
1343 deactivate_process (*((Lisp_Object *) (&vol_proc))); 1343 deactivate_process (*((Lisp_Object *) (&vol_proc)));
1344 invalid_operation ("SIGPIPE raised on process; closed it", p->name); 1344 invalid_operation ("SIGPIPE raised on process; closed it", p->name);
1345 } 1345 }
1346 1346
1347 old_sigpipe = (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap); 1347 old_sigpipe = (SIGTYPE (*) (int)) EMACS_SIGNAL (SIGPIPE, send_process_trap);
1348 Lstream_flush (XLSTREAM (DATA_OUTSTREAM(p))); 1348 Lstream_flush (XLSTREAM (DATA_OUTSTREAM (p)));
1349 EMACS_SIGNAL (SIGPIPE, old_sigpipe); 1349 EMACS_SIGNAL (SIGPIPE, old_sigpipe);
1350 } 1350 }
1351 1351
1352 /* 1352 /*
1353 * Send EOF to the process. The default implementation simply 1353 * Send EOF to the process. The default implementation simply