Wed May 29 16:04:46 1996 Richard Levitte * process.c (start_process_unwind): the pid may be negative. Therefore, only compare with -1. This was what caused the "hanging subprocess" symptom. Sun Feb 25 16:18:56 1996 Richard Levitte * callproc.c, vmsproc.c: include libdef.h to get LIB$_INVARG. Sat Jan 13 02:31:02 1996 Richard Levitte * vmsproc.c (init_vmsproc): slight reorganisation Sat Dec 9 18:13:18 1995 Richard Levitte * descrip.mms_in_in (dotstar): DEC C 5.x and up change `.*' to `. *'. Because of this, all `.*' are replaced with $(dotstar). Wed Nov 29 13:41:07 1995 Richard Levitte * vmsproc.c: undefine select and connect before include TCP/IP header files, and redefine them after. Sun Nov 19 19:53:21 1995 Richard Levitte * abbrev.c (Finsert_abbrev_table_description, Sinsert_abbrev_table_description): define these to shorter names. * alloc.c (real_start_of_pure, real_end_of_pure): new functions. * command.h (Vminibuffer_local_completion_map, Vminibuffer_local_must_match_map): define these to shorter names. * dired.c (Ffile_name_all_completions_with_versions, Qfile_name_all_completions_with_versions, Sfile_name_all_completions_with_versions): define these to shorter names. * editfns.c (Finsert_and_inherit_before_markers, Sinsert_and_inherit_before_markers): define these to shorter names. * fileio.c (Vwrite_region_annotate_functions, Vwrite_region_annotations_so_far): define these to shorter names. * minibuf.c (Vminibuffer_completion_predicate, Qminibuffer_completion_predicate): define these to shorter names. * vmsmap.c (start_of_pure, end_of_pure): rewritten to use the functions real_start_of_pure and real_end_of_pure. * vmsproc.c: define CLI$M_AUTHPRIV if it is not already defined. Sun Oct 22 13:00:01 1995 Richard Levitte * sysdep.c (creat_copy_attrs): open the created file with maximum record size = 32767, or the records will always be truncated to 512 bytes, even if the previous version had other attributes. Thu Oct 19 15:47:59 1995 Richard Levitte * xfns.c (Fx_display_color_p): the answer was inverted. Isn't any more. Sun Oct 15 22:02:25 1995 Richard Levitte * callproc.c (Fcall_process): change spawn_flags to include CLI$M_AUTHPRIV. * vmsfns.c (Fspawn_subprocess): add spawn_flags that is used for LIB$SPAWN. * vmsproc.c (create_process): change spawn_flags to include CLI$M_AUTHPRIV. Wed Sep 20 20:17:40 1995 Richard Levitte * sysdep.c (init_system_name): do not use uts on VMS when HAVE_GETHOSTNAME is undefined. Tue Sep 19 21:20:14 1995 Richard Levitte * fileio.c (Fexpand_file_name): [VMS] enhanced the functionality of expand-file-name to correctly expand some combinations of `-' in directory specifications. Sun Sep 17 03:05:46 1995 Richard Levitte * descrip.mms_in_in ([-.vms]temacs.opt): `emacs_widget_resources', `emacsFrameClassRec' and `emacsFrameClass' are added to the NON_SAVED_DATA collection. * widget.c: the variable `resources' is called `emacs_widget_resources' instead, and is made non-static, so it can be moved to the NON_SAVED_DATA collection. Sun Sep 10 00:48:26 1995 Richard Levitte * vmsproc.c (vms_make_pty): always make PTYs EIGHTBIT. Tue Sep 5 18:45:35 1995 Richard Levitte * dired.c (file_name_completion): to remove the last character of a Lisp_String by decrementing the size was simply VERY wrong. garbage-collect could get very confused by that. Corrected. Sat Jun 10 12:30:57 1995 Richard Levitte * fileio.c (Finsert_file_contents): changed an #ifdef to include VMS as well, since comparing the buffer with the file does not always work very well. * callproc.c, emacs.c, fileio.c, process.c, sysdep.c: changed calls to strerror to err_str, which uses vaxc$errno whenever needed. * fileio.c: on VMS, double_dollars is a noop, since $foo is not expanded, and $$ are not converted to $, by substitute_file_name. Sat Feb 25 10:40:59 1995 Richard Levitte (LEVITTE@eliza.e.kth.se) * vmsgmalloc.c (__default_morecore, __default_lesscore): changed to use sys$cretva, sys$deltva and sys$expreg, since that's the only way to know if you happen to be tampering with protected memory. Also, the initial buffer is removed. Instead, with some cooperation from vmsmap.c and emacs.c, an initial chunk of heap is allocated, and is saved in the dump. This means that there's no need to handle two heaps anymore. Fri Nov 25 09:18:37 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * config.h_in: added NETLIB. * vmsproc.h (VMS_CHAN_STUFF): changed chan to be of type unsigned long, to accomodate for NETLIB's 32-bit context pointer. Also made net.net_buffer a descriptor, to be able to work correctly with tcp_receive(). * vmsproc.c: Made changes to support NETLIB. * process.c: likewise. * lread.c: always include stdlib.h when on VMS. * sysdep.c (opendir, readdir): changed to handle the lack of files correctly. (sys_access): bogus `acces = flags;' changed to `flags = acces;'. Also, the file is closed directly after the open, since we might otherwise get hanging channels. Handle invalid ACEs correctly. * xfns.c: include "gray.xmb" instead of "[.bitmaps]gray.xbm". * xmenu.c: include "XMenu.h" instead of "../oldXMenu/XMenu.h". * s/vms.h: added support for NETLIB (requires SOCKETSHR). * lisp.h: define ONE to be 1U on VMS and 1 otherwise, and change all 1's to be ONE. Mon Nov 21 17:10:50 1994 Richard Levitte (LEVITTE@elmer.e.kth.se) * callproc.c (relocate_fd): Made sure strerror is used instead of looking directly at sys_errlist. * emacs.c (main): likewise. * fileio.c (report_file_error): likewise. * process.c (list_processes_1, wait_reading_process_input, sigchld_handler): likewise. * sysdep.c (strerror): defined if HAVE_STRERROR is not defined. * config.h_in: Added HAVE_STRERROR. Fri Aug 5 15:24:40 1994 Richard Levitte (LEVITTE@elmer.e.kth.se) * callproc.c (call-process): Check the arguments to see if the call was like "/bin/sh -c" on Unix, and do something wise about it. * descrip.mms_in_in: Made sure the logical name `sys' is correctly defined even when `sys_includes' is an empty string. Added vms-date.el in VMS_SUPPORT. Made sure Emacs gets a base address at 8K. Finally removed the ugly system-specific #ifdef's. * dired.c (file-name-all-completions-with-versions): New function. (file_name_completion): Changed to use optimal file patterns when looking for a file. Good for speed. (file_name_as_directory): Changed to become more reliable. (expand-file-name): Now always upcases the result. * process.c (start-process): Now does the same check as call-process, as described above. * sysdep.c (rename_sans_version): Changed `#ifdef __ALPHA' to `#ifdef __DECC'. * vmsfns.c (vms-expand-search-paths): Takes an optional extra argument, and is generally more reliable. * vmsmap.c: Changed `#ifdef __ALPHA' to `#ifdef __DECC'. * vmsproc.c (hack_vms_program_name): Now handles the case when some arguments have sneaked into the program name string. (create_process): like call-process and start-process, described above. * xterm.c: Changed to use the Compose Key as Meta key in some cases. (x_find_modifier_meanings): Doesn't try to check codes that are zero any more. Wed Jun 29 18:55:27 1994 Richard Levitte (LEVITTE@elmer.e.kth.se) * vmsfns.c (Fvms_expand_search_paths): Takes one optional second argument which tells it if it should expand the path completelly, or just so the path will be unique. (expand_search_paths): Modified accordingly, and removed a bug for the case the file would not exist. * xterm.c (x_find_modifier_meanings, XTread_socket): Add some code to make XK_Multi_key to act as a Meta key in some cases. Fri May 20 14:27:01 1994 Richard Levitte (LEVITTE@elmer.e.kth.se) * descrip.mms_in_in: the targets `all' and `all_debug' are now dependent on $(OLDXMENU). The target is now using the script [-.vms]makedoc.com. The redefinition of `CPP' is now commented out. The target `really-oldXMenu' is now restored. The target `mostlyclean' now correctly removes the dump file. * s/vms.h: Changed to set up the use of the old MultiNet style. * sysdep.c: Always include . Added a debug line. * vmsproc.c(select): always setup the bits in allMask, even when rdsc is 0. Sun Apr 10 16:32:51 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * dired.c (file_name_completion): VMS needs to GCprotect save_file as well. * fileio.c (report_file_error): Apparently, there might be cases when sys_errlist[errno] is NULL, so protect against it. * fileio.c (Fcopy_file): Make some changes so chmod on VMS doesn't reset the modification time of the file. * systime.h: define the macro USE_UTIME, and include utime.h. * vmsproc.c (select): Changed to return -1 if an interrupt occured. This is somewhat magic, since all we handle are interrupts. * xselect.c (x_decline_selection_request): Added a call to XFlushQueue (); Tue Mar 29 12:26:46 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * dired.c (file_name_completion): Added GC protection of some variables. Thu Mar 24 10:50:06 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * sysdep.c (sys_write): Changed so fixed-format files can be written properly. * vmsproc.c (select): Changed to return -1 when an interrupt occurs. Sun Mar 20 21:36:42 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * alloca.c: Now, the function follow_alloca_headers is officialy added. It's purpose is to be used from the debugger. * callproc.c: Added the possibility to give yet another numeric argument call-process and its' companions, to get the output from programs as messages in the echo area. Also corrected a few bugs. * descrip.mms_in_in: The object files are split up in even smaller groups now... * dired.c(file-name-all-completions-with-versions): New function. * dired.c(file_name_completion): Now knows how to expand a bunch of zeroes at the beginning of directory specifications. * regex.c: Made re_match_2 to be a wrapper around re_match_2_real, which does what re_match_2 did before. The reason for this is some potential alloca() problems. * sysdep.c: A small change permitting end_kbd_queue to know if there is an AST to cancel or not. * systime.h: Removed some potential variable problem. * vmsproc.c: A whole bunch of bugs removed. * vmstime.c(sys_gmtime): Changed to be carefull when offset is 0. * vmstime.h: Defines HAVE_TZNAME. * xfns.c: Three calls to XSelectAsyncEvent added. Now, selections work as expected. Wed Feb 23 00:47:15 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * alloca.c: Removed a bug. * config.h_in: Added the VMS-specific macro USE_DEBUG_HACK, which is used in DESCRIP.MMS_IN_IN. * descrip.mms_in_in: Removed a few bugs, and started using USE_DEBUG_HACK. * emacs.c (fatal_error_signal): Signal SS$_DEBUG instead of aborting. * emacs.c (main): Only use mtrace when debugging. * process.c (process_send_signal): Use SYS$FORCEX instead of trying to send ^Y to a process. * sysdep.c (kbd_input_ast): Extended the debug info when ASTDEBUG is defined. * sysdep.c (sys_getenv): Treat "TERM", "HOME", "PATH", "USER" in a special way. * termcap.c (tgetent): Is not dependent on the logical name EMACS_LIBRARY any more. Instead, let PATH_DATA decide where termcap.dat can be found. * vmsproc.c (vms_write_pty, vms_make_pty, vms_close_fd): Removed a bug in the handling of the PTD$ routines. Thu Feb 10 03:29:44 1994 Richard Levitte (LEVITTE@elmer.e.kth.se) * vmsproc.c (vms_close_fd,vms_make_pty): removed dum_PTY_BUFFERS, and changed the calls to LIB$*_VM_PAGES to valloc() and free(). Sun Feb 6 21:47:54 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * descrip.mms_in_in: Changed the dependency on oldXMenu so Emacs will not get linked every time you run MMS. Also, a few other clean ups. * dired.c: A change to handle version numbers better. * sysdep.c: Corrected a bug with terminal settings. Tue Jan 18 22:58:29 1994 Richard Levitte (LEVITTE@eliza.e.kth.se) * config.h.in: Changed the name PATH_SEPARATOR back to SEPCHAR. * dired.c (file_name_completion): Now really makes good use of opendir () and closedir (). Also handles completion of directories. * getpagesize.h: the page size on VMS is no longer hardcoded to 512, thanks to the AXP architecture. * keyboard.c (reinvoke_input_signal): Make this function work on VMS as well, by invoking an AST. * process.c: Some quantities should be static, but some functions in vmsproc.c need them, so don't make them static on VMS. * process.c (read_process_output, exec_sentinel): unbind_to was called with only 1 arg when 2 are needed. Qnil was added as second arg. * sysdep.c (change_input_fd) : Fixed to work on VMS. * sysdep.c (kbd_input_ast): Changed to do exactly the same operation as the input_available_signal and read_avail_input in keyboard.c. There's no more need for a separate AST routine for X-windows. * sysdep.c (opendir, readdir, closedir): Fixed to work on VMS. Also, opendir takes an optional second argument, which is used as a file pattern. * sysdep.c (rmdir): Fixed to work right on VMS. * sysdep.c (sys_translate_unix): Fixed to really treat a directory specification not starting with a slash as a relative spec. * sysdep.c (getpagesize): Added for the AXP architecture. * systime.h: Changed so VMS can specify microseconds also. * vmsgmalloc.c (__default_morecore): Changed to support the AXP architecture. * vmsmap.c: Changed to suport the AXP architecture. * vmstime.c (__vms_time_secs, __vms_time_usecs, __vms_set_secs, _vms_set_usecs, vms_ad_time, __vms_sub_time, __vms_negate_time): Added functions to better support the definitions in systime.h. * xfns.c (x_window): Connect the routine kbd_input_ast to the window event input stream, instead of vms_X_ast. * xrdb.c (search_magic_path): Use SEPCHAR instead of PATH_SEPARATOR. * xselect.c: Please, DO include termhooks.h. * xterm.c: If HAVE_FCNTL_H is not defined, include file.h instead of fcntl.h. Same goes for HAVE_PARAM_H and sys/param.h. * xterm.c (x_scroll_bar_create): Just as for x_window in xfns.c, connect the routine kbd_input_ast to the window event stream. * xterm.c (vms_X_ast): REMOVED. It is now obsolete. * xterm.c (x_term_init): Assign read_socket_hook, just as on Unix. * m/avms1-5.h: Added to support AXP/VMS. * s/template.h: Changed PATH_SEPARATOR back to SEPCHAR. * s/vms.h: #define SEPCHAR to ',' instead of PATH_SEPARATOR. * s/vms.h: Stop #defining malloc and friends to sys_malloc et al. Mon Dec 6 22:49:45 1993 Richard Levitte (LEVITTE@elin.e.kth.se) * sysdep.c (vms_low_readdir): New function to help the functions readdir and readdirver. * sysdep.c (opendir, closedir, readdir, readdirver): Modified to use the library functions LIB$FIND_FILE and LIB$FIND_FILE_END. Fri Jul 30 13:30:31 1993 Richard Levitte (LEVITTE@elin.e.kth.se) * callproc.c: Made some changes for VMS GNU C. Not tested. * callproc.c (call_process_kill, call_process_cleanup): Small changes for VMS. * callproc.c (call-process): Some changes to make this work on VMS. * config.h.in: Added UCX, MULTINET to designate which (by Emacs supported) TCP/IP package should be used. * config.h.in: Added PATH_SEPARATOR to hold the character which separates the entries in a path. * dired.c (file-attributes): Now returns a list of three numbers for the inode. * emacs.c (init_cmdargs): Changed for VMS so invocation-name won't hold a file name with extension and version number. * emacs.c (decode_env_path): Now uses PATH_SEPARATOR instead of SEPCHAR. * fileio.c (file_name_as_directory): Changed for VMS to handle the [000000] directory entry (the root). * fileio.c (expand-file-name): Changed for VMS to handle the [000000] directory entry, and to convert the delimiters < and > to [ and ]. * floatfns (logb): Make VMS do it the same way as USG. * keyboard.c (read_avail_input): Make this function available on VMS, but make it a dummy. * keyboard.c (interrupt_signal): Call sys$clrast () before signaling quit. sys$clrast () is an undocumented system service. * process.c [VMS]: Include the proper include files, depending on which TCP/IP package is used. Also made sys_siglist available again. * process.c (status_message): Now, Emacs is not prevented from using sys_siglist, so do not use sys_errlist anymore! Also, if the exit code has bit 0 set to 1, consider the process finished. * process.c (make_process, remove_process) [VMS]: Changed to store some proper data in the VMS process data structure. See vmsproc.h. * process.c (start-process) [VMS]: Changed to hack the program name to be called properly. * process.c (open-network-stream) [VMS]: On older versions of UCX, getservbyname () is just an entry with no real function, and thus returns -1. This is now handled. * process.c (deactivate_process, close_process_descs, read_process_output, send_process) [VMS]: Changed to reflect the changes in vmsproc.c. * process.c (process_send_signal) [VMS]: Changed to properly assign pid and gid. * s/template.h: changed SEPCHAR to PATH_SEPARATOR, for readability. * s/vms.h: #defines HAVE_PTYS. * s/vms.h: #defines PATH_SEPARATOR to ','. * s/vms.h: #defines HAVE_SOCKETS and HAVE_GETHOSTNAME if any TCP/IP package is used. * s/vms.h: #defines LIBS_STANDARD and C_SWITCH_SYSTEM conditionaly, depending on if we compile on OpenVMS AXP or VAX/VMS. * s/vms5-5.h: #defines HAVE_VMS_PTYS and HAVE_GETPPID. * sysdep.c (wait_for_termination) [VMS]: Isn't used here. The true definition is defined in vmsproc.c. * sysdep.c (kbd_input_ast): Changed to reflect changes in keyboard.c and vmsproc.c * sysdep.c (sys_sleep) [VMS]: Use timer #2 instead of #1, because the latter is used by VAX C alarm (). * sysdep.c ({request,unrequest}_sigio) [VMS]: Will not croak anymore. * sysdep.c (get_system_name) [VMS]: Uses gethostname () instead of looking directly at the env var SYS$NODE. * sysdep.c (rename_sans_version) [VMS]: Changed to reflect a change in one include file on OpenVMS AXP. Not yet tested. * sysdep.c [VMS]: Added sys_siglist. * systime.h [VMS]: Includes vmstime.h. * vmsfns.c (vms-system-info): Changed the handling of the logical names, to also take an index. This is useful when dealing with VMS search paths. * vmsfns.c (vms-expand-search-paths, expand_search_paths, vms_trnlnm): New functions. * vmsfns.c (vms_trnlog): Changed to take two arguments. * vmsgmalloc.c: Changed to reflect changes in gmalloc.c, and to handle two heaps a better way. * vmsmap.c: Changed slightly for VMS GNU C. * vmsproc.h, vmsproc.c: Lots of changes. * xfns.c (x_window) [VMS]: Connect an AST routine to the window event stream. * xrdb.c (search_magic_path): Use PATH_SEPARATOR instead of ':'. * xrbd.c [VMS]: Various changes to use the DECWindows/Motif file names and logical names. * xterm.c (x_scroll_bar_create) [VMS]: Connect an AST routine to the window event stream. * xterm.c (vms_X_ast) [VMS]: New function. * xterm.c (x_term_init) [VMS]: Do not assign read_socket_hook.