Mercurial > emacs
changeset 2264:87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
* [VMS] systime.h: Include vmstime.h. VMS has the timezone
variable and the tzname array.
* s/vms.h: VMS does have select.
mth$dmod is the same as Unix's drem.
Use the time functions in vmstime.c.
No need to rename the malloc routines if we're using GNU malloc.
PURESIZE needs to be 330000.
* vmstime.c, vmstime.h: New files.
* systty.h: Don't try to initialize extern declarations under VAX C.
* vmspaths.h (PATH_LOADSEARCH): Include EMACS_LIBRARY:[LOCAL-LISP]
in PATH_LOADSEARCH.
(PATH_EXEC): Use EMACS_LIBRARY:[LIB-SRC] instead of [ETC].
* sysdep.c [VMS] (init_sys_modes): Don't allocate process_ef.
[VMS] (queue_kbd_input): Build events structure correctly.
[VMS] (gethostname): New function.
[VMS] (getwd): Don't get the PATH environment variable; that's
dumb. Call getcwd.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Fri, 19 Mar 1993 17:28:14 +0000 |
parents | 4b57c6f61299 |
children | daf268a98d5e |
files | src/sysdep.c src/systime.h src/systty.h src/vmspaths.h |
diffstat | 4 files changed, 58 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/sysdep.c Fri Mar 19 08:08:04 1993 +0000 +++ b/src/sysdep.c Fri Mar 19 17:28:14 1993 +0000 @@ -746,6 +746,7 @@ timer_ef = get_timer_event_flag (); /* LIB$GET_EF (&timer_ef); */ SYS$CLREF (timer_ef); +#if 0 if (!process_ef) { LIB$GET_EF (&process_ef); @@ -753,10 +754,13 @@ } if (input_ef / 32 != process_ef / 32) croak ("Input and process event flags in different clusters."); +#endif if (input_ef / 32 != timer_ef / 32) - croak ("Input and process event flags in different clusters."); + croak ("Input and timer event flags in different clusters."); +#if 0 input_eflist = ((unsigned) 1 << (input_ef % 32)) | ((unsigned) 1 << (process_ef % 32)); +#endif timer_eflist = ((unsigned) 1 << (input_ef % 32)) | ((unsigned) 1 << (timer_ef % 32)); #ifndef VMS4_4 @@ -1188,6 +1192,8 @@ queue_kbd_input () { int status; + extern kbd_input_ast (); + waiting_for_ast = 0; stop_input = 0; status = SYS$QIO (0, input_fd, IO$_READVBLK, @@ -1232,17 +1238,18 @@ #endif if (! stop_input) queue_kbd_input (); -/* I don't know what this is doing! The variables buf, cbuf and i are - not declared. This is new from version 18, what does it do? if (c >= 0) { struct input_event e; e.kind = ascii_keystroke; - XSET (buf[i].code, Lisp_Int, cbuf[i]); - e.frame = selected_frame; + XSET (e.code, Lisp_Int, c); +#ifdef MULTI_FRAME + XSET(e.frame_or_window, Lisp_Frame, selected_frame); +#else + e.frame_or_window = Qnil; +#endif kbd_buffer_store_event (&e); } -*/ if (input_available_clear_time) EMACS_SET_SECS_USECS (*input_available_clear_time, 0, 0); errno = old_errno; @@ -1567,6 +1574,25 @@ #endif /* not USG, not 4.1 */ #endif /* not USG */ } + +#ifdef VMS +#ifndef HAVE_GETHOSTNAME +void gethostname(buf, len) + char *buf; + int len; +{ + char *s; + s = getenv ("SYS$NODE"); + if (s == NULL) + buf[0] = '\0'; + else { + strncpy (buf, s, len - 2); + buf[len - 1] = '\0'; + } /* else */ +} /* static void gethostname */ +#endif /* ! HAVE_GETHOSTNAME */ +#endif /* VMS */ + #ifndef VMS #ifndef HAVE_SELECT @@ -3084,16 +3110,16 @@ char *pathname; { char *ptr; - strcpy (pathname, egetenv ("PATH")); - - ptr = pathname; - while (*ptr) - { - if ('a' <= *ptr && *ptr <= 'z') - *ptr -= 040; - ptr++; - } - return pathname; + extern char *getcwd (); + +#define MAXPATHLEN 1024 + + ptr = malloc (MAXPATHLEN); + getcwd (ptr, MAXPATHLEN); + strcpy (pathname, ptr); + free (ptr); + + return pathname; } getppid ()
--- a/src/systime.h Fri Mar 19 08:08:04 1993 +0000 +++ b/src/systime.h Fri Mar 19 17:28:14 1993 +0000 @@ -45,6 +45,12 @@ extern long timezone; #endif +#ifdef VMS +#ifdef VAXC +#include "vmstime.h" +#endif +#endif + /* EMACS_TIME is the type to use to represent temporal intervals - struct timeval on some systems, int on others. It can be passed as @@ -190,7 +196,7 @@ #ifndef EMACS_CURRENT_TIME_ZONE /* System V derivatives have a timezone global variable. */ -#ifdef USG +#if defined(USG) || defined(VMS) #define EMACS_GET_TZ_OFFSET(offset) \ do { \ tzset (); \ @@ -213,7 +219,7 @@ /* The following sane systems have a tzname array. The timezone() function is a stupid idea; timezone names can only be determined geographically, not by Greenwich offset. */ -#if defined (ultrix) || defined (hpux) || defined (_AIX) || defined (USG) +#if defined (ultrix) || defined (hpux) || defined (_AIX) || defined (USG) || defined(VMS) #define EMACS_GET_TZ_NAMES(standard, savings) \ do { \
--- a/src/systty.h Fri Mar 19 08:08:04 1993 +0000 +++ b/src/systty.h Fri Mar 19 17:28:14 1993 +0000 @@ -45,9 +45,15 @@ extern int waiting_for_ast; extern int stop_input; +#if 0 /* VAX C doeasn't understand initializing declarations */ extern int input_ef = 0; extern int timer_ef = 0; extern int process_ef = 0; +#else +extern int input_ef; +extern int timer_ef; +extern int process_ef; +#endif extern int input_eflist; extern int timer_eflist;
--- a/src/vmspaths.h Fri Mar 19 08:08:04 1993 +0000 +++ b/src/vmspaths.h Fri Mar 19 17:28:14 1993 +0000 @@ -2,7 +2,7 @@ /* The default search path for Lisp function "load". This sets load-path. */ -#define PATH_LOADSEARCH "EMACS_LIBRARY:[LISP]" +#define PATH_LOADSEARCH "EMACS_LIBRARY:[LOCAL-LISP],EMACS_LIBRARY:[LISP]" /* Like PATH_LOADSEARCH, but used only when Emacs is dumping. This path is usually identical to PATH_LOADSEARCH except that the entry @@ -15,7 +15,7 @@ variable exec-path and the first file name in it sets the Lisp variable exec-directory. exec-directory is used for finding executables and other architecture-dependent files. */ -#define PATH_EXEC "EMACS_LIBRARY:[ETC]" +#define PATH_EXEC "EMACS_LIBRARY:[LIB-SRC]" /* Where Emacs should look for its architecture-independent data files, like the docstring file. The lisp variable data-directory