* bitmaps/README:

* xfns.c:
* termcap.c:
* term.c:
* syswait.h:
* systty.h:
* systime.h:
* syssignal.h:
* sysdep.c:
* process.h:
* process.c:
* print.c:
* ndir.h:
* lread.c:
* keyboard.c:
* getpagesize.h:
* floatfns.c:
* fileio.c:
* emacs.c:
* doc.c:
* dispnew.c:
* dired.c:
* data.c:
* callproc.c:
* buffer.c:
* README:
* Makefile.in:
* s/template.h:
* s/msdos.h:
* m/vax.h: Remove VMS support.
* s/vms.h:
* vlimit.h:
* uaf.h:
* temacs.opt:
* param.h:
* ioctl.h: Remove file.

* descrip.mms:
* compile.com: Remove file.
* Create.c: Remove VMS support.

* message.el (Module):

* gnus-start.el (Module):

* gnus-registry.el (Module):

* textmodes/texinfmt.el:
* nxml/nxml-enc.el:
* mail/feedmail.el:
* international/mule.el:
* international/latexenc.el:
* emulation/viper-util.el:
* emulation/viper-init.el:
* emulation/viper-ex.el:
* emacs-lisp/bytecomp.el:
* version.el:
* subr.el:
* startup.el:
* sort.el:
* shadowfile.el:
* recentf.el:
* printing.el:
* paths.el:
* minibuffer.el:
* ls-lisp.el:
* loadup.el:
* hippie-exp.el:
* finder.el:
* files.el:
* ediff-util.el:
* ediff-ptch.el:
* ediff-init.el:
* ediff-diff.el:
* dired.el:
* dired-aux.el:
* cus-edit.el:
* bindings.el:
* arc-mode.el:
* add-log.el: Remove VMS support.
* obsolete/vmsproc.el:
* obsolete/vms-pmail.el:
* obsolete/vms-patch.el: Remove file.

* etags.c:
* emacsclient.c: Remove VMS support.

* termcap.src: Remove file.
* README:
* PROBLEMS:
* MACHINES: Remove VMS info.

* ediff.texi: Remove VMS support.

* os.texi:
* intro.texi:
* files.texi: Remove VMS support.

* emacs.texi: Remove VMS support.

* make-dist:
* README: Remove VMS support.
* vms: Remove directory.
This commit is contained in:
Dan Nicolaescu 2008-07-31 05:33:56 +00:00
parent 69ab3201ca
commit 7c2fb837ec
105 changed files with 251 additions and 23137 deletions

View file

@ -1,3 +1,9 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* make-dist:
* README: Remove VMS support.
* vms: Remove directory.
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* configure.in (MULTI_KBOARD): Remove.

1
README
View file

@ -81,7 +81,6 @@ There are several subdirectories:
`doc/lispintro' holds the source code for the Introduction to Programming
in Emacs Lisp manual.
`msdos' holds configuration files for compiling Emacs under MSDOG.
`vms' holds instructions and useful files for running Emacs under VMS.
`nt' holds various command files and documentation files that pertain
to building and running Emacs on Windows 9X/ME/NT/2000/XP.
`test' holds tests for various aspects of Emacs's functionality.

View file

@ -220,7 +220,6 @@ LIB_MATH
LIB_MOTIF
LIB_STANDARD
LINKER
LINK_CRTL_SHARE
LINUX_VERSION_CODE
LISP_FLOAT_TYPE
LNOFLSH
@ -232,7 +231,6 @@ MAIL_USE_LOCKF
MAIL_USE_POP
MAIL_USE_SYSTEM_LOCK
MAXPATHLEN
MAX_PRINT_CHARS
MIN_PTY_KERNEL_VERSION -- only used on Mac
MODE_LINE_BINARY_TEXT
MUST_UNDEF__STDC__
@ -243,13 +241,11 @@ NEED_LIBW
NEED_UNISTD_H
NLIST_STRUCT
NOMULTIPLEJOBS
NONSYSTEM_DIR_LIBRARY
NOT_C_CODE
NOT_USING_MOTIF
NO_ABORT
NO_ARG_ARRAY
NO_EDITRES
NO_HYPHENS_IN_FILENAMES
NO_MATHERR
NO_REMAP
NO_SHARED_LIBS
@ -287,7 +283,6 @@ SEGMENT_MASK
SEPCHAR
SETPGRP_RELEASES_CTTY
SETUP_SLAVE_PTY
SHARABLE_LIB_BUG
SIGALRM
SIGCHLD
SIGHUP
@ -331,7 +326,6 @@ USG5_4
USG_SUBTTY_WORKS
VALBITS
VIRT_ADDR_VARIES
VMS
WORDS_BIG_ENDIAN
WRETCODE
XINT

View file

@ -116,9 +116,6 @@ Miles Bader
src/editfns.c
lisp/textmodes/refill.el
Thien-Thi Nguyen
VMS
==============================================================================
3.
==============================================================================

View file

@ -7,9 +7,7 @@ into object files, but also for creating
lib-src/Makefile
(delimited by comment "start of cpp stuff"). some cpp implementations
insert whitespace in between tokens, which explains the "$(dot)$(dot)"
and "UNEXEC_ALIAS" workarounds for unixoid systems and the bundled
tradcpp/ for vms. [NOTE: tradcpp/ not yet checked in.]
insert whitespace in between tokens.
during makefile creation, the preprocessor symbol NOT_C_CODE is defined.
this should not be defined for normal .c file compilation.

View file

@ -1,3 +1,7 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* emacs.texi: Remove VMS support.
2008-07-30 Dan Nicolaescu <dann@ics.uci.edu>
* vc1-xtra.texi (VC Directory Mode): Update the display format and fix

View file

@ -1056,13 +1056,12 @@ Customizable Self-Documenting Display Editor}, available from
@url{ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-519A.pdf}.
This edition of the manual is intended for use with GNU Emacs
installed on GNU and Unix systems. GNU Emacs can also be used on VMS,
installed on GNU and Unix systems. GNU Emacs can also be used on
MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems.
Those systems use different file name syntax; in addition, VMS and
MS-DOS do not support all GNU Emacs features. @xref{Microsoft
Those systems use different file name syntax; in addition
MS-DOS does not support all GNU Emacs features. @xref{Microsoft
Windows}, for information about using Emacs on Windows.
@xref{Mac OS}, for information about using Emacs on Macintosh. We
don't try to describe VMS usage in this manual.
@xref{Mac OS}, for information about using Emacs on Macintosh.
@end iftex
@node Distrib, Intro, Top, Top

View file

@ -1,3 +1,9 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* os.texi:
* intro.texi:
* files.texi: Remove VMS support.
2008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
* os.texi:

View file

@ -1487,11 +1487,6 @@ levels of parent directories.
See also @code{delete-directory} in @ref{Create/Delete Dirs}.
@end deffn
@defun define-logical-name varname string
This function defines the logical name @var{varname} to have the value
@var{string}. It is available only on VMS.
@end defun
@defun set-file-modes filename mode
This function sets mode bits of @var{filename} to @var{mode} (which
must be an integer). Only the low 12 bits of @var{mode} are used.
@ -1565,10 +1560,9 @@ directory.
On MS-DOS and MS-Windows, these functions (like the function that
actually operate on files) accept MS-DOS or MS-Windows file-name syntax,
where backslashes separate the components, as well as Unix syntax; but
they always return Unix syntax. On VMS, these functions (and the ones
that operate on files) understand both VMS file-name syntax and Unix
syntax. This enables Lisp programs to specify file names in Unix syntax
and work properly on all systems without change.
they always return Unix syntax. This enables Lisp programs to specify
file names in Unix syntax and work properly on all systems without
change.
@menu
* File Name Components:: The directory part of a file name, and the rest.
@ -1597,15 +1591,11 @@ Concatenating these two parts reproduces the original file name.
On most systems, the directory part is everything up to and including
the last slash (backslash is also allowed in input on MS-DOS or
MS-Windows); the nondirectory part is the rest. The rules in VMS syntax
are complicated.
MS-Windows); the nondirectory part is the rest.
For some purposes, the nondirectory part is further subdivided into
the name proper and the @dfn{version number}. On most systems, only
backup files have version numbers in their names. On VMS, every file
has a version number, but most of the time the file name actually used
in Emacs omits the version number, so that version numbers in Emacs are
found mostly in directory lists.
backup files have version numbers in their names.
@defun file-name-directory filename
This function returns the directory part of @var{filename}, as a
@ -1613,9 +1603,7 @@ directory name (@pxref{Directory Names}), or @code{nil} if
@var{filename} does not include a directory part.
On GNU and Unix systems, a string returned by this function always
ends in a slash. On MS-DOS it can also end in a colon. On VMS, it
returns a string ending in one of the three characters @samp{:},
@samp{]}, or @samp{>}.
ends in a slash. On MS-DOS it can also end in a colon.
@example
@group
@ -1626,10 +1614,6 @@ returns a string ending in one of the three characters @samp{:},
(file-name-directory "foo") ; @r{Unix example}
@result{} nil
@end group
@group
(file-name-directory "[X]FOO.TMP") ; @r{VMS example}
@result{} "[X]"
@end group
@end example
@end defun
@ -1649,11 +1633,6 @@ This function returns the nondirectory part of @var{filename}.
(file-name-nondirectory "lewis/")
@result{} ""
@end group
@group
;; @r{The following example is accurate only on VMS.}
(file-name-nondirectory "[X]FOO.TMP")
@result{} "FOO.TMP"
@end group
@end example
@end defun
@ -1678,11 +1657,6 @@ return value, but backup version numbers are kept.
(file-name-sans-versions "~rms/foo")
@result{} "~rms/foo"
@end group
@group
;; @r{The following example applies to VMS only.}
(file-name-sans-versions "foo;23")
@result{} "foo"
@end group
@end example
@end defun
@ -1758,12 +1732,11 @@ name. On Unix and GNU/Linux, an absolute file name starts with a slash
or a tilde (@samp{~}), and a relative one does not. On MS-DOS and
MS-Windows, an absolute file name starts with a slash or a backslash, or
with a drive specification @samp{@var{x}:/}, where @var{x} is the
@dfn{drive letter}. The rules on VMS are complicated.
@dfn{drive letter}.
@defun file-name-absolute-p filename
This function returns @code{t} if file @var{filename} is an absolute
file name, @code{nil} otherwise. On VMS, this function understands both
Unix syntax and VMS syntax.
file name, @code{nil} otherwise.
@example
@group
@ -1819,8 +1792,8 @@ the directory name but not identical to it. (This is not quite the
same as the usual Unix terminology.) These two different names for
the same entity are related by a syntactic transformation. On GNU and
Unix systems, this is simple: a directory name ends in a slash,
whereas the directory's name as a file lacks that slash. On MS-DOS and
VMS, the relationship is more complicated.
whereas the directory's name as a file lacks that slash. On MS-DOS
the relationship is more complicated.
The difference between a directory name and its name as a file is
subtle but crucial. When an Emacs variable or function argument is
@ -1836,8 +1809,7 @@ such as @samp{$HOME}, and the constructs @samp{~}, @samp{.} and @samp{..}.
This function returns a string representing @var{filename} in a form
that the operating system will interpret as the name of a directory. On
most systems, this means appending a slash to the string (if it does not
already end in one). On VMS, the function converts a string of the form
@file{[X]Y.DIR.1} to the form @file{[X.Y]}.
already end in one).
@example
@group
@ -1851,8 +1823,7 @@ already end in one). On VMS, the function converts a string of the form
This function returns a string representing @var{dirname} in a form that
the operating system will interpret as the name of a file. On most
systems, this means removing the final slash (or backslash) from the
string. On VMS, the function converts a string of the form @file{[X.Y]}
to @file{[X]Y.DIR.1}.
string.
@example
@group
@ -2037,7 +2008,7 @@ with @samp{~}. This variable is buffer-local in every buffer.
@code{expand-file-name} uses the default directory when its second
argument is @code{nil}.
Aside from VMS, the value is always a string ending with a slash.
The value is always a string ending with a slash.
@example
@group
@ -2097,8 +2068,6 @@ through the immediately preceding @samp{/}).
@end group
@end example
On VMS, @samp{$} substitution is not done, so this function does nothing
on VMS except discard superfluous initial components as shown above.
@end defun
@node Unique File Names
@ -2417,11 +2386,6 @@ corresponding argument to @code{file-attributes} (@pxref{Definition
of file-attributes}).
@end defun
@defun file-name-all-versions file dirname
This function returns a list of all versions of the file named
@var{file} in directory @var{dirname}. It is only available on VMS.
@end defun
@defun file-expand-wildcards pattern &optional full
This function expands the wildcard pattern @var{pattern}, returning
a list of file names that match it.

View file

@ -55,7 +55,7 @@ but not flawless. There are a few topics that are not covered, either
because we consider them secondary (such as most of the individual
modes) or because they are yet to be written. Because we are not able
to deal with them completely, we have left out several parts
intentionally. This includes most information about usage on VMS.
intentionally.
The manual should be fully correct in what it does cover, and it is
therefore open to criticism on anything it says---from specific examples

View file

@ -632,10 +632,6 @@ convenient way to test parts of this string is with
The value of this variable is a symbol indicating the type of operating
system Emacs is operating on. Here is a table of the possible values:
@table @code
@item alpha-vms
VMS on the Alpha.
@item aix-v3
AIX.
@ -667,9 +663,6 @@ MS-Windows.
@item usg-unix-v
AT&T System V.
@item vax-vms
VAX VMS.
@item windows-nt
Microsoft windows NT. The same executable supports Windows 9X, but the
value of @code{system-type} is @code{windows-nt} in either case.
@ -862,19 +855,6 @@ in the system's terminal driver, before Emacs was started.
The value is @code{nil} if Emacs is running under a window system.
@end defvar
@defun setprv privilege-name &optional setp getprv
This function sets or resets a VMS privilege. (It does not exist on
other systems.) The first argument is the privilege name, as a string.
The second argument, @var{setp}, is @code{t} or @code{nil}, indicating
whether the privilege is to be turned on or off. Its default is
@code{nil}. The function returns @code{t} if successful, @code{nil}
otherwise.
If the third argument, @var{getprv}, is non-@code{nil}, @code{setprv}
does not change the privilege, but returns @code{t} or @code{nil}
indicating whether the privilege is currently enabled.
@end defun
@node User Identification
@section User Identification
@cindex user identification

View file

@ -1,3 +1,7 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* ediff.texi: Remove VMS support.
2008-07-29 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add mairix-el.

View file

@ -1152,7 +1152,7 @@ packages also use this method).
Regular files are treated by the @code{patch} utility in the usual manner,
i.e., the original is renamed into @file{source-name.orig} and the result
of the patch is placed into the file source-name (@file{_orig} is used
on systems like VMS, DOS, etc.)
on systems like DOS, etc.)
@node Customization, Credits, Remote and Compressed Files, Top
@chapter Customization

View file

@ -1,3 +1,10 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* termcap.src: Remove file.
* README:
* PROBLEMS:
* MACHINES: Remove VMS info.
2008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
* PROBLEMS:

View file

@ -437,16 +437,9 @@ Tadpole 68K (m68k-tadpole-sysv)
chmod 2755 etc/movemail; chgrp mail etc/movemail
Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3),
VMS (vax-dec-vms)
Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3)
Works.
Richard Levitte <levitte@e.kth.se> distributes a set of patches to
Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably
won't work very well, or even compile. Levitte is working on a
port, so these problems should be fixed in the near future.
Here are notes about some of the systems supported:
@ -515,17 +508,6 @@ System V rel 4.0.3 and 4.0.4 (usg5.4)
#undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h.
(Any system that supports Internet should implement sockets.)
VMS (vmsM.N)
Richard Levitte <levitte@e.kth.se> distributes a set of patches to
Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably
won't work very well, or even compile. Levitte is working on a
port, so these problems should be fixed in the near future.
Note that Emacs for VMS is usually distributed in a special VMS
distribution. See the file ../vms/VMSINSTALL for info on moving
Unix distributions to VMS, and other VMS-related topics.
Windows NT/95/98/ME/2000
For installation on all versions of the MS-Windows platform, see the
@ -630,6 +612,7 @@ Support for the following obsolete platforms was removed in Emacs 23.1
System V rel 2.2 -- usg5.2.2
System V rel 3 -- usg5.3
Ultrix -- bsd4.3
VMS (s/vms.h)
Local variables:

View file

@ -2672,7 +2672,7 @@ or
*** Fatal signal in the command temacs -l loadup inc dump.
This command is the final stage of building Emacs. It is run by the
Makefile in the src subdirectory, or by build.com on VMS.
Makefile in the src subdirectory.
It has been known to get fatal errors due to insufficient swapping
space available on the machine.
@ -3643,25 +3643,6 @@ floating point option: -fsoft.
This seems to be due to a GCC bug; it is fixed in GCC 2.8.1.
** VMS: Compilation errors on VMS.
You will get warnings when compiling on VMS because there are
variable names longer than 32 (or whatever it is) characters.
This is not an error. Ignore it.
VAX C does not support #if defined(foo). Uses of this construct
were removed, but some may have crept back in. They must be rewritten.
There is a bug in the C compiler which fails to sign extend characters
in conditional expressions. The bug is:
char c = -1, d = 1;
int i;
i = d ? c : d;
The result is i == 255; the fix is to typecast the char in the
conditional expression as an (int). Known occurrences of such
constructs in Emacs have been fixed.
** Vax C compiler bugs affecting Emacs.
You may get one of these problems compiling Emacs:

View file

@ -5,10 +5,6 @@ for Emacs functions and variables.
`forms-d2.dat' is an example data file used by forms-d2.el.
`termcap.src' is included mainly for VMS. It is a copy of the
`/etc/termcap' file used on Unix.
COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
File: emacs.icon

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,8 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* etags.c:
* emacsclient.c: Remove VMS support.
2008-07-27 Dan Nicolaescu <dann@ics.uci.edu>
Remove support for Mac Carbon.

View file

@ -64,15 +64,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <unistd.h>
#endif
#ifdef VMS
# include "vms-pwd.h"
#else /* not VMS */
#ifdef WINDOWSNT
# include <io.h>
#else /* not WINDOWSNT */
# include <pwd.h>
#endif /* not WINDOWSNT */
#endif /* not VMS */
#include <sys/stat.h>
#include <signal.h>

View file

@ -172,13 +172,8 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38";
extern void exit __P((int));
extern void free __P((void *));
extern void *memmove __P((void *, const void *, unsigned long));
# ifdef VMS
# define EXIT_SUCCESS 1
# define EXIT_FAILURE 0
# else /* no VMS */
# define EXIT_SUCCESS 0
# define EXIT_FAILURE 1
# endif
# define EXIT_SUCCESS 0
# define EXIT_FAILURE 1
# endif
#endif /* !WINDOWSNT */
@ -1093,131 +1088,6 @@ Relative ones are stored relative to the output file's directory.\n");
exit (EXIT_SUCCESS);
}
#ifdef VMS /* VMS specific functions */
#define EOS '\0'
/* This is a BUG! ANY arbitrary limit is a BUG!
Won't someone please fix this? */
#define MAX_FILE_SPEC_LEN 255
typedef struct {
short curlen;
char body[MAX_FILE_SPEC_LEN + 1];
} vspec;
/*
v1.05 nmm 26-Jun-86 fn_exp - expand specification of list of file names
returning in each successive call the next file name matching the input
spec. The function expects that each in_spec passed
to it will be processed to completion; in particular, up to and
including the call following that in which the last matching name
is returned, the function ignores the value of in_spec, and will
only start processing a new spec with the following call.
If an error occurs, on return out_spec contains the value
of in_spec when the error occurred.
With each successive file name returned in out_spec, the
function's return value is one. When there are no more matching
names the function returns zero. If on the first call no file
matches in_spec, or there is any other error, -1 is returned.
*/
#include <rmsdef.h>
#include <descrip.h>
#define OUTSIZE MAX_FILE_SPEC_LEN
static short
fn_exp (out, in)
vspec *out;
char *in;
{
static long context = 0;
static struct dsc$descriptor_s o;
static struct dsc$descriptor_s i;
static bool pass1 = TRUE;
long status;
short retval;
if (pass1)
{
pass1 = FALSE;
o.dsc$a_pointer = (char *) out;
o.dsc$w_length = (short)OUTSIZE;
i.dsc$a_pointer = in;
i.dsc$w_length = (short)strlen(in);
i.dsc$b_dtype = DSC$K_DTYPE_T;
i.dsc$b_class = DSC$K_CLASS_S;
o.dsc$b_dtype = DSC$K_DTYPE_VT;
o.dsc$b_class = DSC$K_CLASS_VS;
}
if ((status = lib$find_file(&i, &o, &context, 0, 0)) == RMS$_NORMAL)
{
out->body[out->curlen] = EOS;
return 1;
}
else if (status == RMS$_NMF)
retval = 0;
else
{
strcpy(out->body, in);
retval = -1;
}
lib$find_file_end(&context);
pass1 = TRUE;
return retval;
}
/*
v1.01 nmm 19-Aug-85 gfnames - return in successive calls the
name of each file specified by the provided arg expanding wildcards.
*/
static char *
gfnames (arg, p_error)
char *arg;
bool *p_error;
{
static vspec filename = {MAX_FILE_SPEC_LEN, "\0"};
switch (fn_exp (&filename, arg))
{
case 1:
*p_error = FALSE;
return filename.body;
case 0:
*p_error = FALSE;
return NULL;
default:
*p_error = TRUE;
return filename.body;
}
}
#ifndef OLD /* Newer versions of VMS do provide `system'. */
system (cmd)
char *cmd;
{
error ("%s", "system() function not implemented under VMS");
}
#endif
#define VERSION_DELIM ';'
char *massage_name (s)
char *s;
{
char *start = s;
for ( ; *s; s++)
if (*s == VERSION_DELIM)
{
*s = EOS;
break;
}
else
*s = lowcase (*s);
return start;
}
#endif /* VMS */
int
main (argc, argv)
@ -1231,9 +1101,6 @@ main (argc, argv)
int current_arg, file_count;
linebuffer filename_lb;
bool help_asked = FALSE;
#ifdef VMS
bool got_err;
#endif
char *optstring;
int opt;
@ -1441,21 +1308,7 @@ main (argc, argv)
analyse_regex (argbuffer[i].what);
break;
case at_filename:
#ifdef VMS
while ((this_file = gfnames (argbuffer[i].what, &got_err)) != NULL)
{
if (got_err)
{
error ("can't find file %s\n", this_file);
argc--, argv++;
}
else
{
this_file = massage_name (this_file);
}
#else
this_file = argbuffer[i].what;
#endif
/* Input file named "-" means read file names from stdin
(one per line) and use them. */
if (streq (this_file, "-"))
@ -1468,9 +1321,6 @@ main (argc, argv)
}
else
process_file_name (this_file, lang);
#ifdef VMS
}
#endif
break;
case at_stdin:
this_file = argbuffer[i].what;

View file

@ -1,3 +1,42 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* textmodes/texinfmt.el:
* nxml/nxml-enc.el:
* mail/feedmail.el:
* international/mule.el:
* international/latexenc.el:
* emulation/viper-util.el:
* emulation/viper-init.el:
* emulation/viper-ex.el:
* emacs-lisp/bytecomp.el:
* version.el:
* subr.el:
* startup.el:
* sort.el:
* shadowfile.el:
* recentf.el:
* printing.el:
* paths.el:
* minibuffer.el:
* ls-lisp.el:
* loadup.el:
* hippie-exp.el:
* finder.el:
* files.el:
* ediff-util.el:
* ediff-ptch.el:
* ediff-init.el:
* ediff-diff.el:
* dired.el:
* dired-aux.el:
* cus-edit.el:
* bindings.el:
* arc-mode.el:
* add-log.el: Remove VMS support.
* obsolete/vmsproc.el:
* obsolete/vms-pmail.el:
* obsolete/vms-patch.el: Remove file.
2008-07-31 Alan Mackenzie <acm@muc.de>
* progmodes/cc-mode.el (c-before-hack-hook): New function

View file

@ -556,9 +556,7 @@ If t, use universal time.")
(defun change-log-name ()
"Return (system-dependent) default name for a change log file."
(or change-log-default-name
(if (eq system-type 'vax-vms)
"$CHANGE_LOG$.TXT"
"ChangeLog")))
"ChangeLog"))
(defun add-log-edit-prev-comment (arg)
"Cycle backward through Log-Edit mode comment history.

View file

@ -1731,7 +1731,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
str archive-file-name-coding-system)))
(isdir (and (= ucsize 0)
(string= (file-name-nondirectory efnname) "")))
(mode (cond ((memq creator '(2 3)) ; Unix + VMS
(mode (cond ((memq creator '(2 3)) ; Unix
(archive-l-e (+ p 40) 2))
((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.
(logior ?\444
@ -1800,7 +1800,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
(oldmode (aref fil 3))
(newval (archive-calc-mode oldmode newmode t))
(inhibit-read-only t))
(cond ((memq creator '(2 3)) ; Unix + VMS
(cond ((memq creator '(2 3)) ; Unix
(goto-char (+ p 40))
(delete-char 2)
(insert-unibyte (logand newval 255) (lsh newval -8)))

View file

@ -583,10 +583,6 @@ is okay. See `mode-line-format'.")
(cond ((memq system-type '(ms-dos windows-nt))
'(".o" "~" ".bin" ".bak" ".obj" ".map" ".ico" ".pif" ".lnk"
".a" ".ln" ".blg" ".bbl" ".dll" ".drv" ".vxd" ".386"))
((eq system-type 'vax-vms)
'(".obj" ".exe" ".bin" ".lbin" ".sbin"
".brn" ".rnt" ".lni"
".olb" ".tlb" ".mlb" ".hlb"))
(t
'(".o" "~" ".bin" ".lbin" ".so"
".a" ".ln" ".blg" ".bbl")))

View file

@ -292,10 +292,6 @@
"Front-ends/assistants for, or emulators of, UNIX features."
:group 'environment)
(defgroup vms nil
"Support code for vms."
:group 'environment)
(defgroup i18n nil
"Internationalization and alternate character-set support."
:link '(custom-manual "(emacs)International")

View file

@ -1108,7 +1108,6 @@ See Info node `(emacs)Subdir switches' for more details."
;; or wildcard lines.
;; Important: never moves into the next subdir.
;; DIR is assumed to be unhidden.
;; Will probably be redefined for VMS etc.
(save-excursion
(or (dired-goto-subdir dir) (error "This cannot happen"))
(forward-line 1)
@ -1936,7 +1935,6 @@ This function takes some pains to conform to `ls -lR' output."
(save-excursion (dired-mark-remembered mark-alist))
(restore-buffer-modified-p modflag)))
;; This is a separate function for dired-vms.
(defun dired-insert-subdir-validate (dirname &optional switches)
;; Check that it is valid to insert DIRNAME with SWITCHES.
;; Signal an error if invalid (e.g. user typed `i' on `..').

View file

@ -719,7 +719,6 @@ for a remote directory. This feature is used by Auto Revert Mode."
(file-readable-p dirname)
(dired-directory-changed-p dirname))))
;; Separate function from dired-noselect for the sake of dired-vms.el.
(defun dired-internal-noselect (dir-or-list &optional switches mode)
;; If there is an existing dired buffer for DIRNAME, just leave
;; buffer as it is (don't even call dired-revert).
@ -1987,8 +1986,7 @@ Optional arg GLOBAL means to replace all matches."
;;"Convert FILE (a file name relative to DIR) to an absolute file name."
;; We can't always use expand-file-name as this would get rid of `.'
;; or expand in / instead default-directory if DIR=="".
;; This should be good enough for ange-ftp, but might easily be
;; redefined (for VMS?).
;; This should be good enough for ange-ftp.
;; It should be reasonably fast, though, as it is called in
;; dired-get-filename.
(concat (or dir default-directory) file))
@ -2554,7 +2552,7 @@ non-empty directories is allowed."
(defun dired-internal-do-deletions (l arg)
;; L is an alist of files to delete, with their buffer positions.
;; ARG is the prefix arg.
;; Filenames are absolute (VMS needs this for logical search paths).
;; Filenames are absolute.
;; (car L) *must* be the *last* (bottommost) file in the dired buffer.
;; That way as changes are made in the buffer they do not shift the
;; lines still to be changed, so the (point) values in L stay valid.
@ -3442,9 +3440,6 @@ Ask means pop up a menu for the user to select one of copy, move or link."
'(dired-mode . dired-restore-desktop-buffer))
(if (eq system-type 'vax-vms)
(load "dired-vms"))
(provide 'dired)
(run-hooks 'dired-load-hook) ; for your customizations

View file

@ -56,7 +56,6 @@ Must produce output compatible with Unix's diff3 program."
(cond ((eq system-type 'emx) "cmd") ; OS/2
((memq system-type '(ms-dos windows-nt windows-95))
shell-file-name) ; no standard name on MS-DOS
((memq system-type '(vax-vms axp-vms)) "*dcl*") ; VMS
(t "sh")) ; UNIX
"*The shell used to run diff and patch.
If user's .profile or .cshrc files are set up correctly, any shell
@ -336,9 +335,7 @@ one optional arguments, diff-number to refine.")
(erase-buffer)
(insert (ediff-with-current-buffer diff-buff (buffer-string)))
(goto-char (point-min))
(delete-matching-lines ok-regexp)
(if (memq system-type '(vax-vms axp-vms))
(delete-matching-lines "^$")))
(delete-matching-lines ok-regexp))
;; If diff reports errors, show them then quit.
(if (/= 0 (ediff-with-current-buffer ediff-error-buffer (buffer-size)))
(let ((ctl-buf ediff-control-buffer)

View file

@ -1400,8 +1400,6 @@ Instead, C-h would jump to previous difference."
;;; (file-name-as-directory
;;; (cond ((memq system-type '(ms-dos windows-nt))
;;; (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
;;; ((memq system-type '(vax-vms axp-vms))
;;; (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
;;; (t
;;; (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
"*Prefix to put on Ediff temporary file names.

View file

@ -61,7 +61,7 @@ case the default value for this variable should be changed."
;; the default backup extension
(defconst ediff-default-backup-extension
(if (memq system-type '(vax-vms axp-vms emx ms-dos))
(if (memq system-type '(emx ms-dos))
"_orig" ".orig"))

View file

@ -3217,7 +3217,7 @@ Hit \\[ediff-recenter] to reset the windows afterward."
;; Quote metacharacters (using \) when executing diff in Unix, but not in
;; EMX OS/2
;;(defun ediff-protect-metachars (str)
;; (or (memq system-type '(emx vax-vms axp-vms))
;; (or (memq system-type '(emx))
;; (let ((limit 0))
;; (while (string-match ediff-metachars str limit)
;; (setq str (concat (substring str 0 (match-beginning 0))

View file

@ -197,9 +197,7 @@
"Emacs Lisp byte-compiler."
:group 'lisp)
(defcustom emacs-lisp-file-regexp (if (eq system-type 'vax-vms)
"\\.EL\\(;[0-9]+\\)?$"
"\\.el$")
(defcustom emacs-lisp-file-regexp "\\.el$"
"*Regexp which matches Emacs Lisp source files.
You may want to redefine the function `byte-compile-dest-file'
if you change this variable."
@ -225,9 +223,7 @@ If FILENAME matches `emacs-lisp-file-regexp' (by default, files
with the extension `.el'), add `c' to it; otherwise add `.elc'."
(setq filename (byte-compiler-base-file-name filename))
(setq filename (file-name-sans-versions filename))
(cond ((eq system-type 'vax-vms)
(concat (substring filename 0 (string-match ";" filename)) "c"))
((string-match emacs-lisp-file-regexp filename)
(cond ((string-match emacs-lisp-file-regexp filename)
(concat (substring filename 0 (match-beginning 0)) ".elc"))
(t (concat filename ".elc")))))
@ -1788,7 +1784,6 @@ The value is non-nil if there were no errors, nil if errors."
(with-current-buffer output-buffer
(goto-char (point-max))
(insert "\n") ; aaah, unix.
(let ((vms-stmlf-recfm t))
(if (file-writable-p target-file)
;; We must disable any code conversion here.
(let ((coding-system-for-write 'no-conversion))
@ -1808,7 +1803,7 @@ The value is non-nil if there were no errors, nil if errors."
(if (file-exists-p target-file)
"cannot overwrite file"
"directory not writable or nonexistent")
target-file))))
target-file)))
(kill-buffer (current-buffer)))
(if (and byte-compile-generate-call-tree
(or (eq t byte-compile-generate-call-tree)

View file

@ -331,12 +331,11 @@ Don't put `-c' here, as it is added automatically."
(cond (ex-unix-type-shell 'viper-glob-unix-files)
((eq system-type 'emx) 'viper-glob-mswindows-files) ; OS/2
(viper-ms-style-os-p 'viper-glob-mswindows-files) ; Microsoft OS
(viper-vms-os-p 'viper-glob-unix-files) ; VMS
(t 'viper-glob-unix-files) ; presumably UNIX
)
"Expand the file spec containing wildcard symbols.
The default tries to set this variable to work with Unix, Windows,
OS/2, and VMS.
and OS/2.
However, if it doesn't work right for some types of Unix shells or some OS,
the user should supply the appropriate function and set this variable to the

View file

@ -69,11 +69,6 @@
:type 'boolean
:tag "Is it Microsoft-made OS?"
:group 'viper-misc)
(defcustom viper-vms-os-p (memq system-type '(vax-vms axp-vms))
"Tells if Emacs is running under VMS."
:type 'boolean
:tag "Is it VMS?"
:group 'viper-misc)
(defcustom viper-suppress-input-method-change-message nil
"If t, the message notifying about changes in the input method is not displayed.

View file

@ -397,11 +397,10 @@ Otherwise return the normal value."
;;; Support for :e, :r, :w file globbing
;; Glob the file spec.
;; This function is designed to work under Unix. It might also work under VMS.
;; This function is designed to work under Unix.
(defun viper-glob-unix-files (filespec)
(let ((gshell
(cond (ex-unix-type-shell shell-file-name)
((memq system-type '(vax-vms axp-vms)) "*dcl*") ; VAX VMS
(t "sh"))) ; probably Unix anyway
(gshell-options
;; using cond in anticipation of further additions

View file

@ -70,8 +70,7 @@ the name it is linked to."
:group 'abbrev
:group 'find-file)
;; Turn off backup files on VMS since it has version numbers.
(defcustom make-backup-files (not (eq system-type 'vax-vms))
(defcustom make-backup-files t
"Non-nil means make a backup of a file the first time it is saved.
This can be done by renaming the file or by copying.
@ -190,8 +189,6 @@ If the buffer is visiting a new file, the value is nil.")
(file-name-as-directory
(cond ((memq system-type '(ms-dos windows-nt))
(or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
((memq system-type '(vax-vms axp-vms))
(or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
(t
(or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
"The directory for writing temporary files."
@ -216,7 +213,6 @@ have fast storage with limited space, such as a RAM disk."
(declare-function dired-unmark "dired" (arg))
(declare-function dired-do-flagged-delete "dired" (&optional nomessage))
(declare-function dos-8+3-filename "dos-fns" (filename))
(declare-function vms-read-directory "vms-patch" (dirname switches buffer))
(declare-function view-mode-disable "view" ())
(defvar file-name-invalid-regexp
@ -625,8 +621,7 @@ Directories are separated by occurrences of `path-separator'
"Change current directory to given absolute file name DIR."
;; Put the name into directory syntax now,
;; because otherwise expand-file-name may give some bad results.
(if (not (eq system-type 'vax-vms))
(setq dir (file-name-as-directory dir)))
(setq dir (file-name-as-directory dir))
(setq dir (abbreviate-file-name (expand-file-name dir)))
(if (not (file-directory-p dir))
(if (file-exists-p dir)
@ -1461,11 +1456,7 @@ home directory is a root directory) and removes automounter prefixes
filename)))
(defcustom find-file-not-true-dirname-list nil
"List of logical names for which visiting shouldn't save the true dirname.
On VMS, when you visit a file using a logical name that searches a path,
you may or may not want the visited file name to record the specific
directory where the file was found. If you *do not* want that, add the logical
name to this list as a string."
"List of logical names for which visiting shouldn't save the true dirname."
:type '(repeat (string :tag "Name"))
:group 'find-file)
@ -1765,15 +1756,6 @@ Do you want to revisit the file normally now? ")
(setq buffer-file-truename
(abbreviate-file-name (file-truename buffer-file-name))))
(setq buffer-file-number number)
;; On VMS, we may want to remember which directory in a search list
;; the file was found in.
(and (eq system-type 'vax-vms)
(let (logical)
(if (string-match ":" (file-name-directory filename))
(setq logical (substring (file-name-directory filename)
0 (match-beginning 0))))
(not (member logical find-file-not-true-dirname-list)))
(setq buffer-file-name buffer-file-truename))
(if find-file-visit-truename
(setq buffer-file-name (expand-file-name buffer-file-truename)))
;; Set buffer's default directory to that of the file.
@ -2412,7 +2394,7 @@ we don't actually set it to the same mode the buffer already has."
(while name
;; Find first matching alist entry.
(setq mode
(if (memq system-type '(vax-vms windows-nt cygwin))
(if (memq system-type '(windows-nt cygwin))
;; System is case-insensitive.
(let ((case-fold-search t))
(assoc-default name auto-mode-alist
@ -3279,8 +3261,6 @@ the old visited file has been renamed to the new name FILENAME."
(setq buffer-file-name filename)
(if filename ; make buffer name reflect filename.
(let ((new-name (file-name-nondirectory buffer-file-name)))
(if (eq system-type 'vax-vms)
(setq new-name (downcase new-name)))
(setq default-directory (file-name-directory buffer-file-name))
;; If new-name == old-name, renaming would add a spurious <2>
;; and it's considered as a feature in rename-buffer.
@ -3519,22 +3499,11 @@ we do not remove backup version numbers, only true file version numbers."
(if handler
(funcall handler 'file-name-sans-versions name keep-backup-version)
(substring name 0
(if (eq system-type 'vax-vms)
;; VMS version number is (a) semicolon, optional
;; sign, zero or more digits or (b) period, option
;; sign, zero or more digits, provided this is the
;; second period encountered outside of the
;; device/directory part of the file name.
(or (string-match ";[-+]?[0-9]*\\'" name)
(if (string-match "\\.[^]>:]*\\(\\.[-+]?[0-9]*\\)\\'"
name)
(match-beginning 1))
(length name))
(if keep-backup-version
(length name)
(or (string-match "\\.~[-[:alnum:]:#@^._]+~\\'" name)
(string-match "~\\'" name)
(length name))))))))
(if keep-backup-version
(length name)
(or (string-match "\\.~[-[:alnum:]:#@^._]+~\\'" name)
(string-match "~\\'" name)
(length name)))))))
(defun file-ownership-preserved-p (file)
"Return t if deleting FILE and rewriting it would preserve the owner."
@ -3737,8 +3706,6 @@ the index in the name where the version number begins."
(string-to-number (substring fn backup-extract-version-start -1))
0))
;; I believe there is no need to alter this behavior for VMS;
;; since backup files are not made on VMS, it should not get called.
(defun find-backup-file-name (fn)
"Find a file name for a backup file FN, and suggestions for deletions.
Value is a list whose car is the name for the backup file
@ -3984,19 +3951,6 @@ Before and after saving the buffer, this function runs
(if (buffer-modified-p)
(let ((recent-save (recent-auto-save-p))
setmodes)
;; On VMS, rename file and buffer to get rid of version number.
(if (and (eq system-type 'vax-vms)
(not (string= buffer-file-name
(file-name-sans-versions buffer-file-name))))
(let (buffer-new-name)
;; Strip VMS version number before save.
(setq buffer-file-name
(file-name-sans-versions buffer-file-name))
;; Construct a (unique) buffer name to correspond.
(let ((buf (create-file-buffer (downcase buffer-file-name))))
(setq buffer-new-name (buffer-name buf))
(kill-buffer buf))
(rename-buffer buffer-new-name)))
;; If buffer has no file name, ask user for one.
(or buffer-file-name
(let ((filename
@ -5036,15 +4990,13 @@ by `sh' are supported."
(concat "\\`" result "\\'")))
(defcustom list-directory-brief-switches
(if (eq system-type 'vax-vms) "" "-CF")
"-CF"
"Switches for `list-directory' to pass to `ls' for brief listing."
:type 'string
:group 'dired)
(defcustom list-directory-verbose-switches
(if (eq system-type 'vax-vms)
"/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)"
"-l")
"-l"
"Switches for `list-directory' to pass to `ls' for verbose listing."
:type 'string
:group 'dired)
@ -5328,8 +5280,6 @@ normally equivalent short `-D' option is just passed on to
(if handler
(funcall handler 'insert-directory file switches
wildcard full-directory-p)
(if (eq system-type 'vax-vms)
(vms-read-directory file switches (current-buffer))
(let (result (beg (point)))
;; Read the actual directory using `insert-directory-program'.
@ -5558,7 +5508,7 @@ normally equivalent short `-D' option is just passed on to
;; Replace "total" with "used", to avoid confusion.
(replace-match "total used in directory" nil nil nil 1)
(end-of-line)
(insert " available " available)))))))))))
(insert " available " available))))))))))
(defun insert-directory-adj-pos (pos error-lines)
"Convert `ls --dired' file name position value POS to a buffer position.
@ -5610,7 +5560,7 @@ With prefix arg, silently save all file-visiting buffers, then kill."
(buffer-list))))
(yes-or-no-p "Modified buffers exist; exit anyway? "))
(or (not (fboundp 'process-list))
;; process-list is not defined on VMS.
;; process-list is not defined on MSDOS.
(let ((processes (process-list))
active)
(while processes

View file

@ -83,8 +83,6 @@
(tex . "supporting code for the TeX formatter")
(tools . "programming tools")
(unix . "front-ends/assistants for, or emulators of, UNIX-like features")
;; Not a custom group and not currently useful.
;; (vms . "support code for vms")
(wp . "word processing")
))

View file

@ -258,9 +258,7 @@ considered precious) will not be trimmed."
(if (and (eq system-type 'ms-dos)
(not (gnus-long-file-names)))
"%s#%d.tm#" ; MSDOS limits files to 8+3
(if (memq system-type '(vax-vms axp-vms))
"%s$tmp$%d"
"%s#tmp#%d"))
"%s#tmp#%d")
working-dir (setq i (1+ i))))
(file-exists-p working-file)))

View file

@ -2799,9 +2799,7 @@ If FORCE is non-nil, the .newsrc file is read."
(if (and (eq system-type 'ms-dos)
(not (gnus-long-file-names)))
"%s#%d.tm#" ; MSDOS limits files to 8+3
(if (memq system-type '(vax-vms axp-vms))
"%s$tmp$%d"
"%s#tmp#%d"))
"%s#tmp#%d")
working-dir (setq i (1+ i))))
(file-exists-p working-file)))

View file

@ -5296,7 +5296,7 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
(* 25 25)))
(let ((tm (current-time)))
(concat
(if (or (memq system-type '(ms-dos emx vax-vms))
(if (or (memq system-type '(ms-dos emx))
;; message-number-base36 doesn't handle bigints.
(floatp (user-uid)))
(let ((user (downcase (user-login-name))))
@ -6858,14 +6858,13 @@ header line with the old Message-ID."
(interactive)
(let ((file-name (make-auto-save-file-name)))
(cond ((save-window-excursion
(if (not (eq system-type 'vax-vms))
(with-output-to-temp-buffer "*Directory*"
(with-current-buffer standard-output
(fundamental-mode)) ; for Emacs 20.4+
(buffer-disable-undo standard-output)
(let ((default-directory "/"))
(call-process
"ls" nil standard-output nil "-l" file-name))))
(with-output-to-temp-buffer "*Directory*"
(with-current-buffer standard-output
(fundamental-mode)) ; for Emacs 20.4+
(buffer-disable-undo standard-output)
(let ((default-directory "/"))
(call-process
"ls" nil standard-output nil "-l" file-name)))
(yes-or-no-p (format "Recover auto save file %s? " file-name)))
(let ((buffer-read-only nil))
(erase-buffer)

View file

@ -439,13 +439,13 @@ string). It returns t if a new completion is found, nil otherwise."
(if (not old)
(progn
(he-init-string (he-file-name-beg) (point))
(let ((name-part (he-file-name-nondirectory he-search-string))
(dir-part (expand-file-name (or (he-file-name-directory
(let ((name-part (file-name-nondirectory he-search-string))
(dir-part (expand-file-name (or (file-name-directory
he-search-string) ""))))
(if (not (he-string-member name-part he-tried-table))
(setq he-tried-table (cons name-part he-tried-table)))
(if (and (not (equal he-search-string ""))
(he-file-directory-p dir-part))
(file-directory-p dir-part))
(setq he-expand-list (sort (file-name-all-completions
name-part
dir-part)
@ -460,7 +460,7 @@ string). It returns t if a new completion is found, nil otherwise."
(if old (he-reset-string))
())
(let ((filename (he-concat-directory-file-name
(he-file-name-directory he-search-string)
(file-name-directory he-search-string)
(car he-expand-list))))
(he-substitute-string filename)
(setq he-tried-table (cons (car he-expand-list) (cdr he-tried-table)))
@ -476,11 +476,11 @@ otherwise."
(if (not old)
(progn
(he-init-string (he-file-name-beg) (point))
(let ((name-part (he-file-name-nondirectory he-search-string))
(dir-part (expand-file-name (or (he-file-name-directory
(let ((name-part (file-name-nondirectory he-search-string))
(dir-part (expand-file-name (or (file-name-directory
he-search-string) ""))))
(if (and (not (equal he-search-string ""))
(he-file-directory-p dir-part))
(file-directory-p dir-part))
(setq expansion (file-name-completion name-part
dir-part)))
(if (or (eq expansion t)
@ -493,16 +493,14 @@ otherwise."
(if old (he-reset-string))
())
(let ((filename (he-concat-directory-file-name
(he-file-name-directory he-search-string)
(file-name-directory he-search-string)
expansion)))
(he-substitute-string filename)
(setq he-tried-table (cons expansion (cdr he-tried-table)))
t))))
(defvar he-file-name-chars
(cond ((memq system-type '(vax-vms axp-vms))
"-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
((memq system-type '(ms-dos windows-nt cygwin))
(cond ((memq system-type '(ms-dos windows-nt cygwin))
"-a-zA-Z0-9_/.,~^#$+=:\\\\")
(t ;; More strange file formats ?
"-a-zA-Z0-9_/.,~^#$+="))
@ -516,43 +514,11 @@ otherwise."
op
(point)))))
;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these
;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
;; Thanks go to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
;; helped to make it work on PC.
(defun he-file-name-nondirectory (file)
"Fix to make `file-name-nondirectory' work for hippie-expand under VMS."
(if (memq system-type '(axp-vms vax-vms))
(let ((n (file-name-nondirectory file)))
(if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
(concat "[." (substring n (match-beginning 2) (match-end 2)))
n))
(file-name-nondirectory file)))
(defun he-file-name-directory (file)
"Fix to make `file-name-directory' work for hippie-expand under VMS."
(if (memq system-type '(axp-vms vax-vms))
(let ((n (file-name-nondirectory file))
(d (file-name-directory file)))
(if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
(concat d (substring n (match-beginning 1) (match-end 1)) "]")
d))
(file-name-directory file)))
(defun he-file-directory-p (file)
"Fix to make `file-directory-p' work for hippie-expand under VMS."
(if (memq system-type '(vax-vms axp-vms))
(or (file-directory-p file)
(file-directory-p (concat file "[000000]")))
(file-directory-p file)))
(defun he-concat-directory-file-name (dir-part name-part)
"Try to slam together two parts of a file specification, system dependently."
(cond ((null dir-part) name-part)
((memq system-type '(axp-vms vax-vms))
(if (and (string= (substring dir-part -1) "]")
(string= (substring name-part 0 2) "[."))
(concat (substring dir-part 0 -1) (substring name-part 1))
(concat dir-part name-part)))
((memq system-type '(ms-dos w32))
(if (and (string-match "\\\\" dir-part)
(not (string-match "/" dir-part))

View file

@ -63,8 +63,6 @@
("cp852" . cp852) ; IBM code page 852
("cp858" . cp858) ; IBM code page 850 but with a euro symbol
("cp865" . cp865) ; IBM code page 865
;; The DECMultinational charaterset used by the OpenVMS system
;; ("decmulti" . undecided)
("latin1" . iso-8859-1)
("latin2" . iso-8859-2)
("latin3" . iso-8859-3)

View file

@ -1662,7 +1662,7 @@ This is used for loading and byte-compiling Emacs Lisp files.")
(defun auto-coding-alist-lookup (filename)
"Return the coding system specified by `auto-coding-alist' for FILENAME."
(let ((alist auto-coding-alist)
(case-fold-search (memq system-type '(vax-vms windows-nt ms-dos cygwin)))
(case-fold-search (memq system-type '(windows-nt ms-dos cygwin)))
coding-system)
(while (and alist (not coding-system))
(if (string-match (car (car alist)) filename)

View file

@ -166,9 +166,6 @@
(message "%s" (garbage-collect))
(load "replace")
(if (eq system-type 'vax-vms)
(progn
(load "vmsproc")))
(load "buff-menu")
(if (fboundp 'x-create-frame)
@ -187,9 +184,6 @@
(message "%s" (garbage-collect))
(if (eq system-type 'vax-vms)
(progn
(load "vms-patch")))
(if (eq system-type 'windows-nt)
(progn
(load "w32-vars")
@ -230,7 +224,7 @@
;doc strings kept in the DOC file rather than in core,
;you may load them with a "site-load.el" file.
;But you must also cause them to be scanned when the DOC file
;is generated. For VMS, you must edit ../vms/makedoc.com.
;is generated.
;For other systems, you must edit ../src/Makefile.in.
(if (load "site-load" t)
(garbage-collect))
@ -341,11 +335,7 @@
(if (or (member (nth 3 command-line-args) '("dump" "bootstrap"))
(member (nth 4 command-line-args) '("dump" "bootstrap")))
(if (eq system-type 'vax-vms)
(progn
(message "Dumping data as file temacs.dump")
(dump-emacs "temacs.dump" "temacs")
(kill-emacs))
(progn
(if (memq system-type '(ms-dos windows-nt cygwin))
(message "Dumping under the name emacs")
(message "Dumping under the name emacs"))

View file

@ -30,7 +30,7 @@
;; This file redefines the function `insert-directory' to implement it
;; directly from Emacs lisp, without running ls in a subprocess. It
;; is useful if you cannot afford to fork Emacs on a real memory UNIX,
;; under VMS or other non-UNIX platforms if you don't have the ls
;; or other non-UNIX platforms if you don't have the ls
;; program, or if you want a different format from what ls offers.
;; This function can use regexps instead of shell wildcards. If you

View file

@ -808,30 +808,21 @@ without having to answer no to the individual message prompts."
:type 'boolean)
;; I provided a default for VMS because someone asked for it (the
;; normal default doesn't work there), but, puh-lease!, it is a user
;; definable option, so if you don't like the default, change it to
;; whatever you want. I am unable to directly test the VMS goop
;; provided here by levitte@lp.se (Richard Levitte - VMS Whacker).
(defcustom feedmail-queue-directory
(if (memq system-type '(axp-vms vax-vms))
(expand-file-name (concat (getenv "HOME") "[.MAIL.Q]"))
(concat (getenv "HOME") "/mail/q"))
(concat (getenv "HOME") "/mail/q")
"*Name of a directory where messages will be queued.
Directory will be created if necessary. Should be a string that
doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/q\"."
doesn't end with a slash. Default is \"$HOME/mail/q\"."
:group 'feedmail-queue
:type 'string
)
(defcustom feedmail-queue-draft-directory
(if (memq system-type '(axp-vms vax-vms))
(expand-file-name (concat (getenv "HOME") "[.MAIL.DRAFT]"))
(concat (getenv "HOME") "/mail/draft"))
(concat (getenv "HOME") "/mail/draft")
"*Name of a directory where draft messages will be queued.
Directory will be created if necessary. Should be a string that
doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/draft\"."
doesn't end with a slash. Default is \"$HOME/mail/draft\"."
:group 'feedmail-queue
:type 'string
)

View file

@ -1068,7 +1068,7 @@ specified by COMMON-SUBSTRING."
"Current predicate used by `read-file-name-internal'.")
(defcustom read-file-name-completion-ignore-case
(if (memq system-type '(ms-dos windows-nt darwin macos vax-vms axp-vms))
(if (memq system-type '(ms-dos windows-nt darwin))
t nil)
"Non-nil means when reading a file name completion ignores case."
:group 'minibuffer

View file

@ -32,7 +32,7 @@
;;; Code:
(defvar nxml-file-name-ignore-case
(memq system-type '(vax-vms windows-nt)))
(memq system-type '(windows-nt)))
(defvar nxml-cached-file-name-auto-coding-regexp nil)
(defvar nxml-cached-auto-mode-alist nil)

View file

@ -1,270 +0,0 @@
;; -*- no-byte-compile: t -*-
;; Not byte compiled because it uses functions that are not part of
;; emacs, so it would generate unnecessary warnings.
;;; vms-patch.el --- override parts of files.el for VMS
;; Copyright (C) 1986, 1992, 2001, 2002, 2003, 2004,
;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: vms
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
(defvar print-region-function)
(setq auto-mode-alist (cons '(("\\.com\\'" . dcl-mode)) auto-mode-alist))
;;; Functions that need redefinition
;;; VMS file names are upper case, but buffer names are more
;;; convenient in lower case.
(defun create-file-buffer (filename)
"Create a suitably named buffer for visiting FILENAME, and return it.
FILENAME (sans directory) is used unchanged if that name is free;
otherwise a string <2> or <3> or ... is appended to get an unused name."
(generate-new-buffer (downcase (file-name-nondirectory filename))))
;;; Given a string FN, return a similar name which is a valid VMS filename.
;;; This is used to avoid invalid auto save file names.
(defun make-valid-file-name (fn)
(setq fn (copy-sequence fn))
(let ((dot nil) (indx 0) (len (length fn)) chr)
(while (< indx len)
(setq chr (aref fn indx))
(cond
((eq chr ?.) (if dot (aset fn indx ?_) (setq dot t)))
((not (or (and (>= chr ?a) (<= chr ?z)) (and (>= chr ?A) (<= chr ?Z))
(and (>= chr ?0) (<= chr ?9))
(eq chr ?$) (eq chr ?_) (and (eq chr ?-) (> indx 0))))
(aset fn indx ?_)))
(setq indx (1+ indx))))
fn)
(define-obsolete-function-alias 'make-legal-file-name 'make-valid-file-name "23.1")
;;; Auto save filesnames start with _$ and end with $.
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves of current buffer.
This function does not consider `auto-save-visited-file-name';
the caller should check that before calling this function.
This is a separate function so that your `.emacs' file or the site's
`site-init.el' can redefine it.
See also `auto-save-file-name-p'."
(if buffer-file-name
(concat (file-name-directory buffer-file-name)
"_$"
(file-name-nondirectory buffer-file-name)
"$")
(expand-file-name (concat "_$_" (make-valid-file-name (buffer-name)) "$"))))
(defun auto-save-file-name-p (filename)
"Return t if FILENAME can be yielded by `make-auto-save-file-name'.
FILENAME should lack slashes.
This is a separate function so that your `.emacs' file or the site's
`site-init.el' can redefine it."
(string-match "^_\\$.*\\$" filename))
;;;
;;; This goes along with kepteditor.com which defines these logicals
;;; If EMACS_COMMAND_ARGS is defined, it supersedes EMACS_FILE_NAME,
;;; which is probably set up incorrectly anyway.
;;; The function command-line-again is a kludge, but it does the job.
;;;
(defun vms-suspend-resume-hook ()
"When resuming suspended Emacs, check for file to be found.
If the logical name `EMACS_FILE_NAME' is defined, `find-file' that file."
(let ((file (vms-system-info "LOGICAL" "EMACS_FILE_NAME"))
(args (vms-system-info "LOGICAL" "EMACS_COMMAND_ARGS"))
(line (vms-system-info "LOGICAL" "EMACS_FILE_LINE")))
(if (not args)
(if file
(progn (find-file file)
(if line (goto-line (string-to-number line)))))
(cd (file-name-directory file))
(vms-command-line-again))))
(setq suspend-resume-hook 'vms-suspend-resume-hook)
(defun vms-suspend-hook ()
"Don't allow suspending if logical name `DONT_SUSPEND_EMACS' is defined."
(if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
(error "Can't suspend this emacs"))
nil)
(setq suspend-hook 'vms-suspend-hook)
;;;
;;; A kludge that allows reprocessing of the command line. This is mostly
;;; to allow a spawned VMS mail process to do something reasonable when
;;; used in conjunction with the modifications to sysdep.c that allow
;;; Emacs to attach to a "foster" parent.
;;;
(defun vms-command-line-again ()
"Reprocess command line arguments. VMS specific.
Command line arguments are initialized from the logical EMACS_COMMAND_ARGS
which is defined by kepteditor.com. On VMS this allows attaching to a
spawned Emacs and doing things like \"emacs -l myfile.el -f doit\""
(let* ((args (downcase (vms-system-info "LOGICAL" "EMACS_COMMAND_ARGS")))
(command-line-args (list "emacs"))
(beg 0)
(end 0)
(len (length args))
this-char)
(if args
(progn
;;; replace non-printable stuff with spaces
(while (< beg (length args))
(if (or (> 33 (setq this-char (aref args beg)))
(< 127 this-char))
(aset args beg 32))
(setq beg (1+ beg)))
(setq beg (1- (length args)))
(while (= 32 (aref args beg)) (setq beg (1- beg)))
(setq args (substring args 0 (1+ beg)))
(setq beg 0)
;;; now start parsing args
(while (< beg (length args))
(while (and (< beg (length args))
(or (> 33 (setq this-char (aref args beg)))
(< 127 this-char))
(setq beg (1+ beg))))
(setq end (1+ beg))
(while (and (< end (length args))
(< 32 (setq this-char (aref args end)))
(> 127 this-char))
(setq end (1+ end)))
(setq command-line-args (append
command-line-args
(list (substring args beg end))))
(setq beg (1+ end)))
(command-line)))))
(defun vms-read-directory (dirname switches buffer)
(save-excursion
(set-buffer buffer)
(subprocess-command-to-buffer
(concat "DIRECTORY " switches " " dirname)
buffer)
(goto-char (point-min))
;; Remove all the trailing blanks.
(while (search-forward " \n")
(forward-char -1)
(delete-horizontal-space))
(goto-char (point-min))))
(setq dired-listing-switches
"/SIZE/DATE/OWNER/WIDTH=(FILENAME=32,SIZE=5)")
(setq print-region-function
(lambda (start end command ign1 ign2 ign3 &rest switches)
(write-region start end "sys$login:delete-me.txt")
(send-command-to-subprocess
1
(concat command
" sys$login:delete-me.txt/name=\"GNUprintbuffer\" "
(mapconcat 'identity switches " "))
nil nil nil)))
;;;
;;; Fuctions for using Emacs as a VMS Mail editor
;;;
(autoload 'vms-pmail-setup "vms-pmail"
"Set up file assuming use by VMS Mail utility.
The buffer is put into text-mode, auto-save is turned off and the
following bindings are established.
\\[vms-pmail-save-and-exit] vms-pmail-save-and-exit
\\[vms-pmail-abort] vms-pmail-abort
All other Emacs commands are still available."
t)
;;;
;;; Filename handling in the minibuffer
;;;
(defun vms-magic-right-square-brace ()
"\
Insert a right square brace, but do other things first depending on context.
During filename completion, when point is at the end of the line and the
character before is not a right square brace, do one of three things before
inserting the brace:
- If there are already two left square braces preceding, do nothing special.
- If there is a previous right-square-brace, convert it to dot.
- If the character before is dot, delete it.
Additionally, if the preceding chars are right-square-brace followed by
either \"-\" or \"..\", strip one level of directory hierarchy."
(interactive)
(when (and minibuffer-completing-file-name
(= (point) (point-max))
(not (= 93 (char-before))))
(cond
;; Avoid clobbering: user:[one.path][another.path
((search-backward "[" (field-beginning) t 2))
((search-backward "]" (field-beginning) t)
(delete-char 1)
(insert ".")
(goto-char (point-max)))
((= ?. (char-before))
(delete-char -1)))
(goto-char (point-max))
(let ((specs '(".." "-"))
(pmax (point-max)))
(while specs
(let* ((up (car specs))
(len (length up))
(cut (- (point) len)))
(when (and (< (1+ len) pmax)
(= ?. (char-before cut))
(string= up (buffer-substring cut (point))))
(delete-char (- (1+ len)))
(while (not (let ((c (char-before)))
(or (= ?. c) (= 91 c))))
(delete-char -1))
(when (= ?. (char-before)) (delete-char -1))
(setq specs nil)))
(setq specs (cdr specs)))))
(insert "]"))
(defun vms-magic-colon ()
"\
Insert a colon, but do other things first depending on context.
During filename completion, when point is at the end of the line
and the line contains a right square brace, remove all characters
from the beginning of the line up to and including such brace.
This enables one to type a new filespec without having to delete
the old one."
(interactive)
(when (and minibuffer-completing-file-name
(= (point) (point-max))
(search-backward "]" (field-beginning) t))
(delete-region (field-beginning) (1+ (point)))
(goto-char (point-max)))
(insert ":"))
(let ((m minibuffer-local-completion-map))
(define-key m "]" 'vms-magic-right-square-brace)
(define-key m "/" 'vms-magic-right-square-brace)
(define-key m ":" 'vms-magic-colon))
;; arch-tag: c178494e-2c37-4d02-99b7-e47e615656cf
;;; vms-patch.el ends here

View file

@ -1,125 +0,0 @@
;; -*- no-byte-compile: t -*-
;; Not byte compiled because it uses functions that are not part of
;; emacs, so it would generate unnecessary warnings.
;;; vms-pmail.el --- use Emacs as the editor within VMS mail
;; Copyright (C) 1992, 2001, 2002, 2003, 2004, 2005,
;; 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: Roland B Roberts <roberts@panix.com>
;; Maintainer: FSF
;; Keywords: vms
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
;;;
;;; Quick hack to use emacs as mail editor. There are a *bunch* of
;;; changes scattered throughout emacs to make this work, namely:
;;; (1) mod to sysdep.c to allow emacs to attach to a process other
;;; than the one that originally spawned it.
;;; (2) mod to kepteditor.com to define the logical emacs_parent_pid
;;; which is what sysdep.c looks for, and define the logical
;;; emacs_command_args which contains the command line
;;; (3) mod to re-parse command line arguments from emacs_command_args
;;; then execute them as though emacs were just starting up.
;;;
(defun vms-pmail-save-and-exit ()
"Save current buffer and exit Emacs.
If this Emacs cannot be suspended, you will be prompted about modified
buffers other than the mail buffer. BEWARE --- suspending Emacs without
saving your mail buffer causes mail to abort the send (potentially useful
since the mail buffer is still here)."
(interactive)
(basic-save-buffer)
(if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
(progn
(save-some-buffers)
(kill-emacs 1))
(kill-buffer (current-buffer))
(suspend-emacs)))
(defun vms-pmail-abort ()
"Mark buffer as unmodified and exit Emacs.
When the editor is exited without saving its buffer, VMS mail does not
send a message. If you have other modified buffers you will be
prompted for what to do with them."
(interactive)
(if (not (yes-or-no-p "Really abort mail? "))
(ding)
(not-modified)
(if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
(progn
(save-some-buffers)
(kill-emacs 1))
(kill-buffer (current-buffer))
(suspend-emacs))))
(defun vms-pmail-setup ()
"Set up file assuming use by VMS MAIL utility.
The buffer is put into text-mode, auto-save is turned off and the
following bindings are established.
\\[vms-pmail-save-and-exit] vms-pmail-save-and-exit
\\[vms-pmail-abort] vms-pmail-abort
All other Emacs commands are still available."
(interactive)
(auto-save-mode -1)
(text-mode)
(let ((default (vms-system-info "LOGICAL" "SYS$SCRATCH"))
(directory (file-name-directory (buffer-file-name)))
(filename (file-name-nondirectory (buffer-file-name))))
(if (string= directory "SYS$SCRATCH:")
(progn
(cd default)
(setq buffer-file-name (concat default filename))))
(use-local-map (copy-keymap (current-local-map)))
(local-set-key "\C-c\C-c" 'vms-pmail-save-and-exit)
(local-set-key "\C-c\C-g" 'vms-pmail-abort)))
(defun indicate-mail-reply-text ()
"Prepares received mail for re-sending by placing >'s on each line."
(interactive)
(goto-char (point-min))
(while (not (eobp))
(insert ">")
(beginning-of-line)
(forward-line 1))
(set-buffer-modified-p nil)
(goto-char (point-min)))
(defun insert-signature ()
"Moves to the end of the buffer and inserts a \"signature\" file.
First try the file indicated by environment variable MAIL$TRAILER.
If that fails, try the file \"~/.signature\".
If neither file exists, fails quietly."
(interactive)
(goto-char (point-max))
(newline)
(if (vms-system-info "LOGICAL" "MAIL$TRAILER")
(if (file-attributes (vms-system-info "LOGICAL" "MAIL$TRAILER"))
(insert-file-contents (vms-system-info "LOGICAL" "MAIL$TRAILER"))
(if (file-attributes "~/.signature")
(insert-file-contents "~/.signature")))))
(provide 'vms-pmail)
;; arch-tag: 336850fc-7812-4663-8e4d-b9c13f47dce1
;;; vms-pmail.el ends here

View file

@ -1,148 +0,0 @@
;; -*- no-byte-compile: t -*-
;; Not byte compiled because it uses functions that are not part of
;; emacs, so it would generate unnecessary warnings.
;;; vmsproc.el --- run asynchronous VMS subprocesses under Emacs
;; Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
;; 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: Mukesh Prasad
;; Maintainer: FSF
;; Keywords: vms
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
(defvar display-subprocess-window nil
"If non-nil, the subprocess window is displayed whenever input is received.")
(defvar command-prefix-string "$ "
"String to insert to distinguish commands entered by user.")
(defvar subprocess-running nil)
(defvar subprocess-buf nil)
(defvar command-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-m" 'command-send-input)
(define-key map "\C-u" 'command-kill-line)
map))
(defun subprocess-input (name str)
"Handle input from a subprocess. Called by Emacs."
(if display-subprocess-window
(display-buffer subprocess-buf))
(with-current-buffer subprocess-buf
(goto-char (point-max))
(insert str ?\n)))
(defun subprocess-exit (name)
"Called by Emacs upon subprocess exit."
(setq subprocess-running nil))
(defun start-subprocess ()
"Spawn an asynchronous subprocess with output redirected to
the buffer *COMMAND*. Within this buffer, use C-m to send
the last line to the subprocess or to bring another line to
the end."
(if subprocess-running
(return t))
(setq subprocess-buf (get-buffer-create "*COMMAND*"))
(with-current-buffer subprocess-buf
(use-local-map command-mode-map))
(setq subprocess-running (spawn-subprocess 1 'subprocess-input
'subprocess-exit))
;; Initialize subprocess so it doesn't panic and die upon
;; encountering the first error.
(and subprocess-running
(send-command-to-subprocess 1 "ON SEVERE_ERROR THEN CONTINUE")))
(defun subprocess-command-to-buffer (command buffer)
"Execute COMMAND and redirect output into BUFFER."
(let (cmd args)
(setq cmd (substring command 0 (string-match " " command)))
(setq args (substring command (string-match " " command)))
(call-process cmd nil buffer nil "*dcl*" args)))
;; BUGS: only the output up to the end of the first image activation is trapped.
;; (if (not subprocess-running)
;; (start-subprocess))
;; (with-current-buffer buffer
;; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-"
;; (getenv "USER") ".LISTING")))
;; (while (file-exists-p output-filename)
;; (delete-file output-filename))
;; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW"))
;; (send-command-to-subprocess 1 command)
;; (send-command-to-subprocess 1 (concat
;; "RENAME " output-filename
;; "-NEW " output-filename))
;; (while (not (file-exists-p output-filename))
;; (sleep-for 1))
;; (define-logical-name "SYS$OUTPUT" nil)
;; (insert-file output-filename)
;; (delete-file output-filename))))
(defun subprocess-command ()
"Start asynchronous subprocess if not running and switch to its window."
(interactive)
(if (not subprocess-running)
(start-subprocess))
(and subprocess-running
(progn (pop-to-buffer subprocess-buf) (goto-char (point-max)))))
(defun command-send-input ()
"If at last line of buffer, send the current line to
the spawned subprocess. Otherwise bring back current
line to the last line for resubmission."
(interactive)
(beginning-of-line)
(let ((current-line (buffer-substring (point) (line-end-position))))
(if (eobp)
(progn
(if (not subprocess-running)
(start-subprocess))
(if subprocess-running
(progn
(beginning-of-line)
(send-command-to-subprocess 1 current-line)
(if command-prefix-string
(progn (beginning-of-line) (insert command-prefix-string)))
(forward-line 1))))
;; else -- if not at last line in buffer
(goto-char (point-max))
(backward-char)
(forward-line 1)
(insert
(if (compare-strings command-prefix-string nil nil
current-line 0 (length command-prefix-string))
(substring current-line (length command-prefix-string))
current-line)))))
(defun command-kill-line ()
"Kill the current line. Used in command mode."
(interactive)
(beginning-of-line)
(kill-line))
(define-key esc-map "$" 'subprocess-command)
(provide 'vmsproc)
;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66
;;; vmsproc.el ends here

View file

@ -176,15 +176,13 @@ Its name should end with a slash.")
:group 'environment
:type 'file)
(defvar term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\
(defvar term-file-prefix "term/" "\
If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
You may set this variable to nil in your `.emacs' file if you do not wish
the terminal-initialization file to be loaded.")
(defvar abbrev-file-name
(if (eq system-type 'vax-vms)
"~/abbrev.def"
(convert-standard-filename "~/.abbrev_defs"))
(convert-standard-filename "~/.abbrev_defs")
"*Default name of file to read abbrevs from.")
;; arch-tag: bae27ffb-9944-4c87-b569-30d4635a99e1

View file

@ -2214,7 +2214,6 @@ Useful links:
(file-name-as-directory
(or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP")
(cond (ps-windows-system "c:/temp")
((memq system-type '(vax-vms axp-vms)) "SYS$SCRATCH:")
(t "/tmp")
)))))
"*Specify a directory for temporary files during printing.

View file

@ -300,7 +300,7 @@ used as shortcuts to open the Nth file."
;;; Utilities
;;
(defconst recentf-case-fold-search
(memq system-type '(vax-vms windows-nt cygwin))
(memq system-type '(windows-nt cygwin))
"Non-nil if recentf searches and matches should ignore case.")
(defsubst recentf-string-equal (s1 s2)

View file

@ -762,7 +762,7 @@ look for files that have been changed and need to be copied to other systems."
(buffer-list))))
(yes-or-no-p "Modified buffers exist; exit anyway? "))
(or (not (fboundp 'process-list))
;; process-list is not defined on VMS.
;; process-list is not defined on MSDOS.
(let ((processes (process-list))
active)
(while processes

View file

@ -491,7 +491,7 @@ Use \\[untabify] to convert tabs to spaces before sorting."
(setq col-end (max col-beg1 col-end1))
(if (search-backward "\t" beg1 t)
(error "sort-columns does not work with tabs -- use M-x untabify"))
(if (not (or (memq system-type '(vax-vms windows-nt))
(if (not (or (memq system-type '(windows-nt))
(let ((pos beg1) plist fontified)
(catch 'found
(while (< pos end1)
@ -516,7 +516,7 @@ Use \\[untabify] to convert tabs to spaces before sorting."
(when sort-fold-case
(push "-f" sort-args))
(apply #'call-process-region beg1 end1 "sort" t t nil sort-args))
;; On VMS and ms-windows, use Emacs's own facilities.
;; On ms-windows, use Emacs's own facilities.
(save-excursion
(save-restriction
(narrow-to-region beg1 end1)

View file

@ -491,20 +491,19 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
;; the end, because the subdirs.el files may add elements to the end
;; of load-path and we want to take it into account.
(setq tail (cdr tail))))
(unless (eq system-type 'vax-vms)
;; If the PWD environment variable isn't accurate, delete it.
(let ((pwd (getenv "PWD")))
(and (stringp pwd)
;; Use FOO/., so that if FOO is a symlink, file-attributes
;; describes the directory linked to, not FOO itself.
(or (equal (file-attributes
(concat (file-name-as-directory pwd) "."))
(file-attributes
(concat (file-name-as-directory default-directory)
".")))
(setq process-environment
(delete (concat "PWD=" pwd)
process-environment))))))
;; If the PWD environment variable isn't accurate, delete it.
(let ((pwd (getenv "PWD")))
(and (stringp pwd)
;; Use FOO/., so that if FOO is a symlink, file-attributes
;; describes the directory linked to, not FOO itself.
(or (equal (file-attributes
(concat (file-name-as-directory pwd) "."))
(file-attributes
(concat (file-name-as-directory default-directory)
".")))
(setq process-environment
(delete (concat "PWD=" pwd)
process-environment)))))
(setq default-directory (abbreviate-file-name default-directory))
(let ((menubar-bindings-done nil))
(unwind-protect
@ -1007,8 +1006,6 @@ opening the first frame (e.g. open a connection to an X server).")
"~/_emacs"
;; But default to .emacs if _emacs does not exist.
"~/.emacs")))
((eq system-type 'vax-vms)
"sys$login:.emacs")
(t
(concat "~" init-file-user "/.emacs")))))
;; This tells `load' to store the file name found

View file

@ -2406,14 +2406,10 @@ passing the command to the shell.
Wildcards and redirection are handled as usual in the shell.
\(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)"
(cond
((eq system-type 'vax-vms)
(apply 'start-process name buffer args))
;; We used to use `exec' to replace the shell with the command,
;; but that failed to handle (...) and semicolon, etc.
(t
(start-process name buffer shell-file-name shell-command-switch
(mapconcat 'identity args " ")))))
(start-process name buffer shell-file-name shell-command-switch
(mapconcat 'identity args " ")))
(defun start-file-process-shell-command (name buffer &rest args)
"Start a program in a subprocess. Return the process object for it.
@ -2445,16 +2441,12 @@ If BUFFER is 0, `call-process-shell-command' returns immediately with value nil.
Otherwise it waits for COMMAND to terminate and returns a numeric exit
status or a signal description string.
If you quit, the process is killed with SIGINT, or SIGKILL if you quit again."
(cond
((eq system-type 'vax-vms)
(apply 'call-process command infile buffer display args))
;; We used to use `exec' to replace the shell with the command,
;; but that failed to handle (...) and semicolon, etc.
(t
(call-process shell-file-name
infile buffer display
shell-command-switch
(mapconcat 'identity (cons command args) " ")))))
;; We used to use `exec' to replace the shell with the command,
;; but that failed to handle (...) and semicolon, etc.
(call-process shell-file-name
infile buffer display
shell-command-switch
(mapconcat 'identity (cons command args) " ")))
(defun process-file-shell-command (command &optional infile buffer display
&rest args)

View file

@ -2962,29 +2962,6 @@ Default is to leave paragraph indentation as is."
("pg" . texinfo-format-pindex)
("ky" . texinfo-format-kindex)))
;;; Sort and index (for VMS)
;; Sort an index which is in the current buffer between START and END.
;; Used on VMS, where the `sort' utility is not available.
(defun texinfo-sort-region (start end)
(require 'sort)
(save-restriction
(narrow-to-region start end)
(goto-char (point-min))
(sort-subr nil 'forward-line 'end-of-line 'texinfo-sort-startkeyfun)))
;; Subroutine for sorting an index.
;; At start of a line, return a string to sort the line under.
(defun texinfo-sort-startkeyfun ()
(let ((line (buffer-substring-no-properties (point) (line-end-position))))
;; Canonicalize whitespace and eliminate funny chars.
(while (string-match "[ \t][ \t]+\\|[^a-z0-9 ]+" line)
(setq line (concat (substring line 0 (match-beginning 0))
" "
(substring line (match-end 0)))))
line))
;;; @printindex
@ -3002,9 +2979,7 @@ Default is to leave paragraph indentation as is."
(insert "\n* Menu:\n\n")
(setq opoint (point))
(texinfo-print-index nil indexelts)
(if (memq system-type '(vax-vms windows-nt ms-dos))
(texinfo-sort-region opoint (point))
(shell-command-on-region opoint (point) "sort -fd" 1))))
(shell-command-on-region opoint (point) "sort -fd" 1)))
(defun texinfo-print-index (file indexelts)
(while indexelts

View file

@ -85,7 +85,7 @@ to the system configuration; look at `system-configuration' instead."
(defalias 'version 'emacs-version)
;; We put version info into the executable in the form that `ident' uses.
(or (memq system-type '(vax-vms windows-nt))
(or (eq system-type 'windows-nt)
(purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
" $\n")))

View file

@ -337,7 +337,7 @@ for subdir in lisp site-lisp \
etc/images/smilies/medium etc/images/tree-widget \
etc/images/tree-widget/default etc/images/tree-widget/folder \
etc/refcards etc/schema etc/tutorials info doc doc/emacs \
doc/misc doc/man doc/lispref doc/lispintro m4 msdos vms \
doc/misc doc/man doc/lispref doc/lispintro m4 msdos \
nextstep nextstep/Cocoa nextstep/Cocoa/Emacs.base \
nextstep/Cocoa/Emacs.base/Contents \
nextstep/Cocoa/Emacs.base/Contents/Resources \
@ -578,8 +578,7 @@ echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources/preferences.gorm'"
echo "Making links to \`oldXMenu'"
(cd oldXMenu
ln *.c *.h *.in ../${tempdir}/oldXMenu
ln README ChangeLog ../${tempdir}/oldXMenu
ln compile.com descrip.mms ../${tempdir}/oldXMenu)
ln README ChangeLog ../${tempdir}/oldXMenu)
echo "Making links to \`lwlib'"
(cd lwlib
@ -728,12 +727,6 @@ echo "Making links to \`doc/man'"
(cd doc/man
ln *.1 ../../${tempdir}/doc/man)
echo "Making links to \`vms'"
(cd vms
test -f README && ln README ../${tempdir}/vms
cd ../${tempdir}/vms
rm -f *~)
### It would be nice if they could all be symlinks to top-level copy, but
### you're not supposed to have any symlinks in distribution tar files.
echo "Making sure copying notices are all copies of \`COPYING'"

View file

@ -1,3 +1,9 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* descrip.mms:
* compile.com: Remove file.
* Create.c: Remove VMS support.
2008-07-23 Dan Nicolaescu <dann@ics.uci.edu>
* Makefile.in (ALL_CFLAGS): Remove reference to C_SWITCH_SITE.

View file

@ -50,7 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "../src/bitmaps/stipple.xbm"
#else
#ifndef VMS
#include <X11/bitmaps/dimple1>
#include <X11/bitmaps/dimple3>
@ -66,23 +65,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <X11/bitmaps/cntr_ptrmsk>
#include <X11/bitmaps/stipple>
#else
#include "[-.src.bitmaps]dimple1.xbm"
#include "[-.src.bitmaps]dimple3.xbm"
#include "[-.src.bitmaps]gray1.xbm"
#include "[-.src.bitmaps]gray3.xbm"
#include "[-.src.bitmaps]crosswv.xbm"
#include "[-.src.bitmaps]leftptr.xbm"
#include "[-.src.bitmaps]leftpmsk.xbm"
#include "[-.src.bitmaps]rtptr.xbm"
#include "[-.src.bitmaps]rtpmsk.xbm"
#include "[-.src.bitmaps]cntrptr.xbm"
#include "[-.src.bitmaps]cntrpmsk.xbm"
#include "[-.src.bitmaps]stipple.xbm"
#endif /* VMS */
#endif /* not EMACS_BITMAP_FILES */
#define DEF_FREEZE 0

View file

@ -1,66 +0,0 @@
$! This file was autogenerated with the command:
$!
$! mms/noaction/output = compile.com
$ if f$search("ACTIVATE.OBJ") then delete ACTIVATE.OBJ.*
$ cc /obj=ACTIVATE.OBJ /NOLIST/OBJECT=ACTIVATE.OBJ ACTIVATE.c
$ if f$search("ADDPANE.OBJ") then delete ADDPANE.OBJ.*
$ cc /obj=ADDPANE.OBJ /NOLIST/OBJECT=ADDPANE.OBJ ADDPANE.c
$ if f$search("ADDSEL.OBJ") then delete ADDSEL.OBJ.*
$ cc /obj=ADDSEL.OBJ /NOLIST/OBJECT=ADDSEL.OBJ ADDSEL.c
$ if f$search("CHGPANE.OBJ") then delete CHGPANE.OBJ.*
$ cc /obj=CHGPANE.OBJ /NOLIST/OBJECT=CHGPANE.OBJ CHGPANE.c
$ if f$search("CHGSEL.OBJ") then delete CHGSEL.OBJ.*
$ cc /obj=CHGSEL.OBJ /NOLIST/OBJECT=CHGSEL.OBJ CHGSEL.c
$ if f$search("CREATE.OBJ") then delete CREATE.OBJ.*
$ cc /obj=CREATE.OBJ /NOLIST/OBJECT=CREATE.OBJ CREATE.c
$ if f$search("DELPANE.OBJ") then delete DELPANE.OBJ.*
$ cc /obj=DELPANE.OBJ /NOLIST/OBJECT=DELPANE.OBJ DELPANE.c
$ if f$search("DELSEL.OBJ") then delete DELSEL.OBJ.*
$ cc /obj=DELSEL.OBJ /NOLIST/OBJECT=DELSEL.OBJ DELSEL.c
$ if f$search("DESTROY.OBJ") then delete DESTROY.OBJ.*
$ cc /obj=DESTROY.OBJ /NOLIST/OBJECT=DESTROY.OBJ DESTROY.c
$ if f$search("ERROR.OBJ") then delete ERROR.OBJ.*
$ cc /obj=ERROR.OBJ /NOLIST/OBJECT=ERROR.OBJ ERROR.c
$ if f$search("EVHAND.OBJ") then delete EVHAND.OBJ.*
$ cc /obj=EVHAND.OBJ /NOLIST/OBJECT=EVHAND.OBJ EVHAND.c
$ if f$search("FINDPANE.OBJ") then delete FINDPANE.OBJ.*
$ cc /obj=FINDPANE.OBJ /NOLIST/OBJECT=FINDPANE.OBJ FINDPANE.c
$ if f$search("FINDSEL.OBJ") then delete FINDSEL.OBJ.*
$ cc /obj=FINDSEL.OBJ /NOLIST/OBJECT=FINDSEL.OBJ FINDSEL.c
$ if f$search("INSPANE.OBJ") then delete INSPANE.OBJ.*
$ cc /obj=INSPANE.OBJ /NOLIST/OBJECT=INSPANE.OBJ INSPANE.c
$ if f$search("INSSEL.OBJ") then delete INSSEL.OBJ.*
$ cc /obj=INSSEL.OBJ /NOLIST/OBJECT=INSSEL.OBJ INSSEL.c
$ if f$search("INTERNAL.OBJ") then delete INTERNAL.OBJ.*
$ cc /obj=INTERNAL.OBJ /NOLIST/OBJECT=INTERNAL.OBJ INTERNAL.c
$ if f$search("LOCATE.OBJ") then delete LOCATE.OBJ.*
$ cc /obj=LOCATE.OBJ /NOLIST/OBJECT=LOCATE.OBJ LOCATE.c
$ if f$search("POST.OBJ") then delete POST.OBJ.*
$ cc /obj=POST.OBJ /NOLIST/OBJECT=POST.OBJ POST.c
$ if f$search("RECOMP.OBJ") then delete RECOMP.OBJ.*
$ cc /obj=RECOMP.OBJ /NOLIST/OBJECT=RECOMP.OBJ RECOMP.c
$ if f$search("SETAEQ.OBJ") then delete SETAEQ.OBJ.*
$ cc /obj=SETAEQ.OBJ /NOLIST/OBJECT=SETAEQ.OBJ SETAEQ.c
$ if f$search("SETFRZ.OBJ") then delete SETFRZ.OBJ.*
$ cc /obj=SETFRZ.OBJ /NOLIST/OBJECT=SETFRZ.OBJ SETFRZ.c
$ if f$search("SETPANE.OBJ") then delete SETPANE.OBJ.*
$ cc /obj=SETPANE.OBJ /NOLIST/OBJECT=SETPANE.OBJ SETPANE.c
$ if f$search("SETSEL.OBJ") then delete SETSEL.OBJ.*
$ cc /obj=SETSEL.OBJ /NOLIST/OBJECT=SETSEL.OBJ SETSEL.c
$ if f$search("XDELASSOC.OBJ") then delete XDELASSOC.OBJ.*
$ cc /obj=XDELASSOC.OBJ /NOLIST/OBJECT=XDELASSOC.OBJ XDELASSOC.c
$ if f$search("XLOOKASSOC.OBJ") then delete XLOOKASSOC.OBJ.*
$ cc /obj=XLOOKASSOC.OBJ /NOLIST/OBJECT=XLOOKASSOC.OBJ XLOOKASSOC.c
$ if f$search("XCRASSOC.OBJ") then delete XCRASSOC.OBJ.*
$ cc /obj=XCRASSOC.OBJ /NOLIST/OBJECT=XCRASSOC.OBJ XCRASSOC.c
$ if f$search("XDESTASSOC.OBJ") then delete XDESTASSOC.OBJ.*
$ cc /obj=XDESTASSOC.OBJ /NOLIST/OBJECT=XDESTASSOC.OBJ XDESTASSOC.c
$ if f$search("XMAKEASSOC.OBJ") then delete XMAKEASSOC.OBJ.*
$ cc /obj=XMAKEASSOC.OBJ /NOLIST/OBJECT=XMAKEASSOC.OBJ XMAKEASSOC.c
$ if f$search("INSQUE.OBJ") then delete INSQUE.OBJ.*
$ cc /obj=INSQUE.OBJ /NOLIST/OBJECT=INSQUE.OBJ INSQUE.c
$ if f$search("LIBXMENU11.OLB") then delete LIBXMENU11.OLB.*
$ library/insert/create LIBXMENU11.OLB Activate.obj, AddPane.obj, AddSel.obj, ChgPane.obj, ChgSel.obj, Create.obj, DelPane.obj, DelSel.obj, Destroy.obj, Error.obj, EvHand.obj, FindPane.obj, FindSel.obj, InsPane.obj, InsSel.obj, Internal.-
obj, Locate.obj, Post.obj, Recomp.obj, SetAEQ.obj, SetFrz.obj, SetPane.obj, SetSel.obj, XDelAssoc.obj, XLookAssoc.obj, XCrAssoc.obj, XDestAssoc.obj, XMakeAssoc.obj
$ if ("insque.obj" .nes. "") then library/insert LIBXMENU11.OLB insque.obj
$ !

View file

@ -1,111 +0,0 @@
### descrip.mms - port of oldXMenu Makefile to VMS
## Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
## 2008 Free Software Foundation, Inc.
## Author: Richard Levitte
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
### Code:
!# Uncomment following line if linking temacs complains about missing insque.
EXTRA=insque.obj
AS = as
CC = cc
LD = link
TAGS = etags
RM = delete
MV = rename
AR = library/insert
MAKE = mms
STD_DEFINES =
CDEBUGFLAGS = /debug/noopt
RM_CMD = $(RM) *.BAK.*, *.obj.*
SRCS = Activate.c, -
AddPane.c, -
AddSel.c, -
ChgPane.c, -
ChgSel.c, -
Create.c, -
DelPane.c, -
DelSel.c, -
Destroy.c, -
Error.c, -
EvHand.c, -
FindPane.c, -
FindSel.c, -
InsPane.c, -
InsSel.c, -
Internal.c, -
Locate.c, -
Post.c, -
Recomp.c, -
SetAEQ.c, -
SetFrz.c, -
SetPane.c, -
SetSel.c, -
XDelAssoc.c, XLookAssoc.c, XCrAssoc.c, XDestAssoc.c, XMakeAssoc.c
OBJS = Activate.obj, -
AddPane.obj, -
AddSel.obj, -
ChgPane.obj, -
ChgSel.obj, -
Create.obj, -
DelPane.obj, -
DelSel.obj, -
Destroy.obj, -
Error.obj, -
EvHand.obj, -
FindPane.obj, -
FindSel.obj, -
InsPane.obj, -
InsSel.obj, -
Internal.obj, -
Locate.obj, -
Post.obj, -
Recomp.obj, -
SetAEQ.obj, -
SetFrz.obj, -
SetPane.obj, -
SetSel.obj, -
XDelAssoc.obj, XLookAssoc.obj, XCrAssoc.obj, XDestAssoc.obj, -
XMakeAssoc.obj
.c.obj :
if f$search("$@") then $(RM) $@.*
$(CC) /obj=$@ $(CFLAGS) $*.c
all :: libXMenu11.olb
!
libXMenu11.olb : $(OBJS) $(EXTRA)
if f$search("$@") then $(RM) $@.*
$(AR)/create $@ $(OBJS)
if ("$(EXTRA)" .nes. "") then $(AR) $@ $(EXTRA)
#If running ranlib fails, probably there is none.
#That's ok. So don't stop the build.
distclean : clean
!
clean ::
$(RM_CMD) \#* libXMenu11.a *.obj,
tags ::
$(TAGS) -t *.[ch]

View file

@ -1,3 +1,42 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* bitmaps/README:
* xfns.c:
* termcap.c:
* term.c:
* syswait.h:
* systty.h:
* systime.h:
* syssignal.h:
* sysdep.c:
* process.h:
* process.c:
* print.c:
* ndir.h:
* lread.c:
* keyboard.c:
* getpagesize.h:
* floatfns.c:
* fileio.c:
* emacs.c:
* doc.c:
* dispnew.c:
* dired.c:
* data.c:
* callproc.c:
* buffer.c:
* README:
* Makefile.in:
* s/template.h:
* s/msdos.h:
* m/vax.h: Remove VMS support.
* s/vms.h:
* vlimit.h:
* uaf.h:
* temacs.opt:
* param.h:
* ioctl.h: Remove file.
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* s/ms-w32.h (MULTI_KBOARD): Remove.

View file

@ -622,12 +622,6 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
#endif
#endif
#ifdef VMS
#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
#else
#define VMS_SUPPORT
#endif
#ifdef MSDOS
#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
@ -762,7 +756,6 @@ lisp= \
${lispsource}ediff-hook.elc \
${lispsource}epa-hook.elc \
TOOLTIP_SUPPORT \
VMS_SUPPORT \
MSDOS_SUPPORT \
WINNT_SUPPORT \
WINDOW_SUPPORT \
@ -864,7 +857,6 @@ shortlisp= \
for the sake of systems which can''t handle large ones. */
SOME_MACHINE_LISP = ../lisp/mouse.elc \
../lisp/select.elc ../lisp/scroll-bar.elc \
VMS_SUPPORT \
../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
../lisp/w32-fns.elc ../lisp/dos-w32.elc \
../lisp/disp-table.elc ../lisp/dos-vars.elc \

View file

@ -5,8 +5,7 @@ See the end of the file for license conditions.
This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs (on Unix systems) or the Emacs
executable and map files (on VMS systems) are copied elsewhere.
and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.
See the files ../README and then ../INSTALL for installation instructions.
@ -18,20 +17,6 @@ controls the compilation of Emacs. Most of this should work
transparently to the user; you should only need to run `../configure',
and then type `make'.
See the file VMSBUILD in this directory for instructions on compiling,
linking and building Emacs on VMS.
The files `*.com' and `temacs.opt' are used on VMS only.
The files `vlimit.h', `ioclt.h' and `param.h' are stubs to
allow compilation on VMS with the minimum amount of #ifdefs.
`uaf.h' contains VMS uaf structure definitions. This is only needed if
you define READ_SYSUAF. This should only be done for single-user
systems where you are not overly concerned with security, since it
either requires that you install Emacs with SYSPRV or make SYSUAF.DAT
world readable. Otherwise, Emacs can determine information about the
current user, but no one else.
This file is part of GNU Emacs.

View file

@ -1,6 +1,5 @@
This directory contains bitmap files that Emacs uses from
/usr/include/X11/bitmaps. That directory doesn't seem to exist under
VMS.
/usr/include/X11/bitmaps.
COPYRIGHT AND LICENSE INFORMATION

View file

@ -5312,7 +5312,6 @@ init_buffer ()
if (!pwd)
fatal ("`get_current_dir_name' failed: %s\n", strerror (errno));
#ifndef VMS
/* Maybe this should really use some standard subroutine
whose definition is filename syntax dependent. */
len = strlen (pwd);
@ -5323,7 +5322,6 @@ init_buffer ()
pwd[len] = DIRECTORY_SEP;
pwd[len + 1] = '\0';
}
#endif /* not VMS */
current_buffer->directory = make_unibyte_string (pwd, strlen (pwd));
if (! NILP (buffer_defaults.enable_multibyte_characters))

View file

@ -90,13 +90,9 @@ extern int errno;
#include "msdos.h"
#endif
#ifdef VMS
extern noshare char **environ;
#else
#ifndef USE_CRT_DLL
extern char **environ;
#endif
#endif
#ifdef HAVE_SETPGID
#if !defined (USG) || defined (BSD_PGRPS)
@ -142,8 +138,6 @@ static int call_process_exited;
EXFUN (Fgetenv_internal, 2);
#ifndef VMS /* VMS version is in vmsproc.c. */
static Lisp_Object
call_process_kill (fdpid)
Lisp_Object fdpid;
@ -843,7 +837,6 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
Vlocale_coding_system, 0);
return make_number (synch_process_retcode);
}
#endif
static Lisp_Object
delete_temp_file (name)
@ -999,8 +992,6 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
RETURN_UNGCPRO (unbind_to (count, Fcall_process (nargs, args)));
}
#ifndef VMS /* VMS version is in vmsproc.c. */
static int relocate_fd ();
static char **
@ -1448,7 +1439,6 @@ egetenv (var)
return 0;
}
#endif /* not VMS */
/* This is run before init_cmdargs. */
@ -1551,16 +1541,9 @@ init_callproc ()
dir_warning ("Warning: arch-independent data dir (%s) does not exist.\n",
Vdata_directory);
#ifdef VMS
Vshell_file_name = build_string ("*dcl*");
#else
sh = (char *) getenv ("SHELL");
Vshell_file_name = build_string (sh ? sh : "/bin/sh");
#endif
#ifdef VMS
Vtemp_file_name_pattern = build_string ("tmp:emacsXXXXXX.");
#else
if (getenv ("TMPDIR"))
{
char *dir = getenv ("TMPDIR");
@ -1570,7 +1553,6 @@ init_callproc ()
}
else
Vtemp_file_name_pattern = build_string ("/tmp/emacsXXXXXX");
#endif
#ifdef DOS_NT
Vshared_game_score_directory = Qnil;
@ -1686,10 +1668,8 @@ use.
See `setenv' and `getenv'. */);
Vprocess_environment = Qnil;
#ifndef VMS
defsubr (&Scall_process);
defsubr (&Sgetenv_internal);
#endif
defsubr (&Scall_process_region);
}

View file

@ -3271,10 +3271,6 @@ arith_error (signo)
must reestablish each time */
signal (signo, arith_error);
#endif /* USG */
#ifdef VMS
/* VMS systems are like USG. */
signal (signo, arith_error);
#endif /* VMS */
sigsetmask (SIGEMPTYMASK);
SIGNAL_THREAD_CHECK (signo);

View file

@ -27,18 +27,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#ifndef VMS
#include <grp.h>
#endif
#include <errno.h>
#ifdef VMS
#include <string.h>
#include <rms.h>
#include <rmsdef.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
@ -62,15 +54,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#else /* not SYSV_SYSTEM_DIR */
#ifdef NONSYSTEM_DIR_LIBRARY
#include "ndir.h"
#else /* not NONSYSTEM_DIR_LIBRARY */
#ifdef MSDOS
#include <dirent.h>
#else
#include <sys/dir.h>
#endif
#endif /* not NONSYSTEM_DIR_LIBRARY */
#include <sys/stat.h>
@ -174,10 +162,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
compile_pattern to do the work for us. */
/* Pass 1 for the MULTIBYTE arg
because we do make multibyte strings if the contents warrant. */
#ifdef VMS
bufp = compile_pattern (match, 0,
buffer_defaults.downcase_table, 0, 1);
#else /* !VMS */
# ifdef WINDOWSNT
/* Windows users want case-insensitive wildcards. */
bufp = compile_pattern (match, 0,
@ -185,7 +169,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
# else /* !WINDOWSNT */
bufp = compile_pattern (match, 0, Qnil, 0, 1);
# endif /* !WINDOWSNT */
#endif /* !VMS */
}
/* Note: ENCODE_FILE and DECODE_FILE can GC because they can run
@ -215,11 +198,9 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
re_match_object = Qt;
/* Decide whether we need to add a directory separator. */
#ifndef VMS
if (directory_nbytes == 0
|| !IS_ANY_SEP (SREF (directory, directory_nbytes - 1)))
needsep = 1;
#endif /* not VMS */
/* Loop reading blocks until EOF or error. */
for (;;)
@ -483,21 +464,7 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
elt = Qnil;
#ifdef VMS
extern DIRENTRY * readdirver ();
DIRENTRY *((* readfunc) ());
/* Filename completion on VMS ignores case, since VMS filesys does. */
specbind (Qcompletion_ignore_case, Qt);
readfunc = readdir;
if (ver_flag)
readfunc = readdirver;
file = Fupcase (file);
#else /* not VMS */
CHECK_STRING (file);
#endif /* not VMS */
#ifdef FILE_SYSTEM_CASE
file = FILE_SYSTEM_CASE (file);
@ -535,9 +502,6 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
int len;
int canexclude = 0;
#ifdef VMS
dp = (*readfunc) (d);
#else
errno = 0;
dp = readdir (d);
if (dp == NULL && (0
@ -549,7 +513,6 @@ file_name_completion (file, dirname, all_flag, ver_flag, predicate)
# endif
))
{ QUIT; continue; }
#endif
if (!dp) break;
@ -830,10 +793,8 @@ file_name_completion_stat (dirname, dp, st_addr)
#endif /* MSDOS */
bcopy (SDATA (dirname), fullname, pos);
#ifndef VMS
if (!IS_DIRECTORY_SEP (fullname[pos - 1]))
fullname[pos++] = DIRECTORY_SEP;
#endif
bcopy (dp->d_name, fullname + pos, len);
fullname[pos + len] = 0;
@ -856,47 +817,6 @@ file_name_completion_stat (dirname, dp, st_addr)
#endif /* S_IFLNK */
}
#ifdef VMS
DEFUN ("file-name-all-versions", Ffile_name_all_versions,
Sfile_name_all_versions, 2, 2, 0,
doc: /* Return a list of all versions of file name FILE in directory DIRECTORY. */)
(file, directory)
Lisp_Object file, directory;
{
return file_name_completion (file, directory, 1, 1, Qnil);
}
DEFUN ("file-version-limit", Ffile_version_limit, Sfile_version_limit, 1, 1, 0,
doc: /* Return the maximum number of versions allowed for FILE.
Returns nil if the file cannot be opened or if there is no version limit. */)
(filename)
Lisp_Object filename;
{
Lisp_Object retval;
struct FAB fab;
struct RAB rab;
struct XABFHC xabfhc;
int status;
filename = Fexpand_file_name (filename, Qnil);
fab = cc$rms_fab;
xabfhc = cc$rms_xabfhc;
fab.fab$l_fna = SDATA (filename);
fab.fab$b_fns = strlen (fab.fab$l_fna);
fab.fab$l_xab = (char *) &xabfhc;
status = sys$open (&fab, 0, 0);
if (status != RMS$_NORMAL) /* Probably non-existent file */
return Qnil;
sys$close (&fab, 0, 0);
if (xabfhc.xab$w_verlimit == 32767)
return Qnil; /* No version limit */
else
return make_number (xabfhc.xab$w_verlimit);
}
#endif /* VMS */
Lisp_Object
make_time (time)
time_t time;
@ -1132,10 +1052,6 @@ syms_of_dired ()
defsubr (&Sdirectory_files);
defsubr (&Sdirectory_files_and_attributes);
defsubr (&Sfile_name_completion);
#ifdef VMS
defsubr (&Sfile_name_all_versions);
defsubr (&Sfile_version_limit);
#endif /* VMS */
defsubr (&Sfile_name_all_completions);
defsubr (&Sfile_attributes);
defsubr (&Sfile_attributes_lessp);

View file

@ -6836,12 +6836,7 @@ init_display ()
if (! inhibit_window_system && ! display_arg)
{
char *display;
#ifdef VMS
display = getenv ("DECW$DISPLAY");
#else
display = getenv ("DISPLAY");
#endif
display_arg = (display != 0 && *display != 0);
if (display_arg && !x_display_ok (display))
@ -6912,40 +6907,15 @@ init_display ()
#endif
if (!terminal_type)
{
#ifdef VMS
fprintf (stderr, "Please specify your terminal type.\n\
For types defined in VMS, use set term /device=TYPE.\n\
For types not defined in VMS, use define emacs_term \"TYPE\".\n\
\(The quotation marks are necessary since terminal types are lower case.)\n");
#else /* not VMS */
#ifdef HAVE_WINDOW_SYSTEM
if (! inhibit_window_system)
fprintf (stderr, "Please set the environment variable DISPLAY or TERM (see `tset').\n");
else
#endif /* HAVE_WINDOW_SYSTEM */
fprintf (stderr, "Please set the environment variable TERM; see `tset'.\n");
#endif /* not VMS */
exit (1);
}
#ifdef VMS
/* VMS DCL tends to up-case things, so down-case term type.
Hardly any uppercase letters in terminal types; should be none. */
{
char *new = (char *) xmalloc (strlen (terminal_type) + 1);
char *p;
strcpy (new, terminal_type);
for (p = new; *p; p++)
if (isupper (*p))
*p = tolower (*p);
terminal_type = new;
}
#endif /* VMS */
{
struct terminal *t;
struct frame *f = XFRAME (selected_frame);

View file

@ -58,28 +58,6 @@ extern Lisp_Object Voverriding_local_map;
extern Lisp_Object Qremap;
/* For VMS versions with limited file name syntax,
convert the name to something VMS will allow. */
static void
munge_doc_file_name (name)
char *name;
{
#ifdef VMS
#ifndef NO_HYPHENS_IN_FILENAMES
extern char * sys_translate_unix (char *ufile);
strcpy (name, sys_translate_unix (name));
#else /* NO_HYPHENS_IN_FILENAMES */
char *p = name;
while (*p)
{
if (*p == '-')
*p = '_';
p++;
}
#endif /* NO_HYPHENS_IN_FILENAMES */
#endif /* VMS */
}
/* Buffer used for reading from documentation file. */
static char *get_doc_string_buffer;
static int get_doc_string_buffer_size;
@ -169,7 +147,6 @@ get_doc_string (filepos, unibyte, definition)
name = (char *) alloca (minsize + SCHARS (file) + 8);
strcpy (name, SDATA (Vdoc_directory));
strcat (name, SDATA (file));
munge_doc_file_name (name);
}
else
{
@ -186,7 +163,6 @@ get_doc_string (filepos, unibyte, definition)
So check in ../etc. */
strcpy (name, "../etc/");
strcat (name, SDATA (file));
munge_doc_file_name (name);
fd = emacs_open (name, O_RDONLY, 0);
}
@ -618,7 +594,6 @@ the same file name is found in the `doc-directory'. */)
strcpy (name, SDATA (Vdoc_directory));
}
strcat (name, SDATA (filename)); /*** Add this line ***/
munge_doc_file_name (name);
/* Vbuild_files is nil when temacs is run, and non-nil after that. */
if (NILP (Vbuild_files))

View file

@ -27,10 +27,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/file.h>
#ifdef VMS
#include <ssdef.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
@ -378,9 +374,6 @@ fatal_error_signal (sig)
shut_down_emacs (sig, 0, Qnil);
}
#ifdef VMS
LIB$STOP (SS$_ABORT);
#else
/* Signal the same code; this time it will really be fatal.
Remember that since we're in a signal handler, the signal we're
going to send is probably blocked, so we have to unblock it if we
@ -393,7 +386,6 @@ fatal_error_signal (sig)
fatal_error_signal_hook ();
kill (getpid (), fatal_error_code);
#endif /* not VMS */
}
#ifdef SIGDANGER
@ -591,14 +583,6 @@ DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory,
}
#ifdef VMS
#ifdef LINK_CRTL_SHARE
#ifdef SHARABLE_LIB_BUG
extern noshare char **environ;
#endif /* SHARABLE_LIB_BUG */
#endif /* LINK_CRTL_SHARE */
#endif /* VMS */
#ifdef HAVE_TZSET
/* A valid but unlikely value for the TZ environment value.
It is OK (though a bit slower) if the user actually chooses this value. */
@ -785,16 +769,7 @@ bug_reporting_address ()
/* ARGSUSED */
int
main (argc, argv
#ifdef VMS
, envp
#endif
)
int argc;
char **argv;
#ifdef VMS
char **envp;
#endif
main (int argc, char **argv)
{
#if GC_MARK_STACK
Lisp_Object dummy;
@ -921,29 +896,6 @@ main (argc, argv
}
#endif
#ifdef VMS
/* If -map specified, map the data file in. */
{
char *file;
if (argmatch (argv, argc, "-map", "--map-data", 3, &file, &skip_args))
mapin_data (file);
}
#ifdef LINK_CRTL_SHARE
#ifdef SHARABLE_LIB_BUG
/* Bletcherous shared libraries! */
if (!stdin)
stdin = fdopen (0, "r");
if (!stdout)
stdout = fdopen (1, "w");
if (!stderr)
stderr = fdopen (2, "w");
if (!environ)
environ = envp;
#endif /* SHARABLE_LIB_BUG */
#endif /* LINK_CRTL_SHARE */
#endif /* VMS */
#if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK)
/* Extend the stack space available.
Don't do that if dumping, since some systems (e.g. DJGPP)
@ -1565,9 +1517,6 @@ main (argc, argv
#endif
syms_of_textprop ();
syms_of_composite ();
#ifdef VMS
syms_of_vmsproc ();
#endif /* VMS */
#ifdef WINDOWSNT
syms_of_ntproc ();
#endif /* WINDOWSNT */
@ -1644,16 +1593,8 @@ main (argc, argv
init_editfns (); /* init_process uses Voperating_system_release. */
init_process (); /* init_display uses add_keyboard_wait_descriptor. */
init_keyboard (); /* This too must precede init_sys_modes. */
#ifdef VMS
init_vmsproc (); /* And this too. */
#endif /* VMS */
if (!noninteractive)
{
#ifdef VMS
init_vms_input ();/* init_display calls get_tty_size, that needs this. */
#endif /* VMS */
init_display (); /* Determine terminal type. Calls init_sys_modes. */
}
init_display (); /* Determine terminal type. Calls init_sys_modes. */
init_fns ();
init_xdisp ();
#ifdef HAVE_WINDOW_SYSTEM
@ -1662,9 +1603,6 @@ main (argc, argv
#endif /* HAVE_WINDOW_SYSTEM */
init_macros ();
init_floatfns ();
#ifdef VMS
init_vmsfns ();
#endif /* VMS */
#ifdef HAVE_SOUND
init_sound ();
#endif
@ -1769,9 +1707,6 @@ struct standard_args standard_args[] =
{ "-version", "--version", 150, 0 },
#ifdef HAVE_SHM
{ "-nl", "--no-shared-memory", 140, 0 },
#endif
#ifdef VMS
{ "-map", "--map-data", 130, 0 },
#endif
{ "-t", "--terminal", 120, 1 },
{ "-nw", "--no-window-system", 110, 0 },
@ -2051,12 +1986,6 @@ all of which are called before Emacs is actually killed. */)
UNGCPRO;
/* Is it really necessary to do this deassign
when we are going to exit anyway? */
/* #ifdef VMS
stop_vms_input ();
#endif */
shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil);
/* If we have an auto-save list file,
@ -2124,10 +2053,6 @@ shut_down_emacs (sig, no_x, stuff)
unlock_all_files ();
#endif
#ifdef VMS
kill_vms_processes ();
#endif
#if 0 /* This triggers a bug in XCloseDisplay and is not needed. */
#ifdef HAVE_X_WINDOWS
/* It's not safe to call intern here. Maybe we are crashing. */
@ -2264,9 +2189,6 @@ You must run Emacs in batch mode in order to dump it. */)
#endif
fflush (stdout);
#ifdef VMS
mapout_data (SDATA (filename));
#else
/* Tell malloc where start of impure now is. */
/* Also arrange for warnings when nearly out of space. */
#ifndef SYSTEM_MALLOC
@ -2297,7 +2219,6 @@ You must run Emacs in batch mode in order to dump it. */)
#ifdef DOUG_LEA_MALLOC
free (malloc_state_ptr);
#endif
#endif /* not VMS */
Vpurify_flag = tem;
@ -2455,7 +2376,6 @@ Special values:
`ms-dos' compiled as an MS-DOS application.
`windows-nt' compiled as a native W32 application.
`cygwin' compiled using the Cygwin library.
`vax-vms' compiled for a (Open)VMS system.
Anything else indicates some sort of Unix system. */);
Vsystem_type = intern (SYSTEM_TYPE);

File diff suppressed because it is too large Load diff

View file

@ -101,16 +101,6 @@ extern int errno;
#endif
#endif
/* Avoid traps on VMS from sinh and cosh.
All the other functions set errno instead. */
#ifdef VMS
#undef cosh
#undef sinh
#define cosh(x) ((exp(x)+exp(-x))*0.5)
#define sinh(x) ((exp(x)-exp(-x))*0.5)
#endif /* VMS */
#ifdef FLOAT_CATCH_SIGILL
static SIGTYPE float_error ();
#endif

View file

@ -19,10 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef HAVE_GETPAGESIZE
# ifdef VMS
# define getpagesize() 512
# endif
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif

View file

@ -1,4 +0,0 @@
/* Emacs ioctl emulation for VMS */
/* arch-tag: 48595931-af6e-407d-95c7-484059087767
(do not change this comment) */

View file

@ -51,9 +51,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "msdos.h"
#include <time.h>
#else /* not MSDOS */
#ifndef VMS
#include <sys/ioctl.h>
#endif
#endif /* not MSDOS */
#include "syssignal.h"
@ -4015,9 +4013,6 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
/* One way or another, wait until input is available; then, if
interrupt handlers have not read it, read it now. */
#ifdef OLDVMS
wait_for_kbd_input ();
#else
/* Note SIGIO has been undef'd if FIONREAD is missing. */
#ifdef SIGIO
gobble_input (0);
@ -4048,7 +4043,6 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr)
/* Pass 1 for EXPECT since we just waited to have input. */
read_avail_input (1);
#endif /* not VMS */
}
if (CONSP (Vunread_command_events))
@ -6907,7 +6901,6 @@ gobble_input (expected)
xd_read_queued_messages ();
#endif /* HAVE_DBUS */
#ifndef VMS
#ifdef SIGIO
if (interrupt_input)
{
@ -6929,7 +6922,6 @@ gobble_input (expected)
sigsetmask (mask);
}
else
#endif
#endif
read_avail_input (expected);
#endif
@ -6980,17 +6972,11 @@ record_asynch_buffer_change ()
}
}
#ifndef VMS
/* Read any terminal input already buffered up by the system
into the kbd_buffer, but do not wait.
EXPECTED should be nonzero if the caller knows there is some input.
Except on VMS, all input is read by this function.
If interrupt_input is nonzero, this function MUST be called
only when SIGIO is blocked.
Returns the number of keyboard chars read, or -1 meaning
this is a bad time to try to read input. */
@ -7238,7 +7224,6 @@ tty_read_avail_input (struct terminal *terminal,
return nread;
}
#endif /* not VMS */
void
handle_async_input ()
@ -11011,19 +10996,11 @@ handle_interrupt ()
*/
sys_suspend ();
#else
#ifdef VMS
if (sys_suspend () == -1)
{
printf ("Not running as a subprocess;\n");
printf ("you can continue or abort.\n");
}
#else /* not VMS */
/* Perhaps should really fork an inferior shell?
But that would not provide any way to get back
to the original shell, ever. */
printf ("No support for stopping a process on this operating system;\n");
printf ("you can continue or abort.\n");
#endif /* not VMS */
#endif /* not SIGTSTP */
#ifdef MSDOS
/* We must remain inside the screen area when the internal terminal
@ -11062,11 +11039,7 @@ handle_interrupt ()
#ifdef MSDOS
printf ("\r\nAbort? (y or n) ");
#else /* not MSDOS */
#ifdef VMS
printf ("Abort (and enter debugger)? (y or n) ");
#else /* not VMS */
printf ("Abort (and dump core)? (y or n) ");
#endif /* not VMS */
#endif /* not MSDOS */
fflush (stdout);
if (((c = getchar ()) & ~040) == 'Y')
@ -11169,11 +11142,6 @@ See also `current-input-mode'. */)
new_interrupt_input = 0;
#endif /* not SIGIO */
/* Our VMS input only works by interrupts, as of now. */
#ifdef VMS
new_interrupt_input = 1;
#endif
if (new_interrupt_input != interrupt_input)
{
#ifdef POLL_FOR_INPUT
@ -11589,11 +11557,6 @@ init_keyboard ()
interrupt_input = 0;
#endif
/* Our VMS input only works by interrupts, as of now. */
#ifdef VMS
interrupt_input = 1;
#endif
sigfree ();
dribble = 0;

View file

@ -1342,11 +1342,7 @@ complete_filename_p (pathname)
register const unsigned char *s = SDATA (pathname);
return (IS_DIRECTORY_SEP (s[0])
|| (SCHARS (pathname) > 2
&& IS_DEVICE_SEP (s[1]) && IS_DIRECTORY_SEP (s[2]))
#ifdef VMS
|| index (s, ':')
#endif /* VMS */
);
&& IS_DEVICE_SEP (s[1]) && IS_DIRECTORY_SEP (s[2])));
}
DEFUN ("locate-file-internal", Flocate_file_internal, Slocate_file_internal, 2, 4, 0,
@ -3719,9 +3715,7 @@ oblookup (obarray, ptr, size, size_byte)
}
/* This is sometimes needed in the middle of GC. */
obsize &= ~ARRAY_MARK_FLAG;
/* Combining next two lines breaks VMS C 2.3. */
hash = hash_string (ptr, size_byte);
hash %= obsize;
hash = hash_string (ptr, size_byte) % obsize;
bucket = XVECTOR (obarray)->contents[hash];
oblookup_last_bucket_number = hash;
if (EQ (bucket, make_number (0)))

View file

@ -25,11 +25,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
NOTE-START
The vax (-machine=vax) runs zillions of different operating systems.
Vax running VMS (-opsystem=vms)
18.36 believed to work. Addition of features is necessary to make
this Emacs version more usable.
NOTE-END */
/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
@ -57,18 +52,6 @@ NOTE-END */
#endif /* BSD_SYSTEM */
#ifdef VMS
/* Data type of load average, as read out of driver. */
#define LOAD_AVE_TYPE float
/* Convert that into an integer that is 100 for a load average of 1.0 */
#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
#endif /* VMS */
#ifdef BSD4_2
#define HAVE_FTIME
#endif

View file

@ -7,30 +7,13 @@
* copyright, constituting the only possible expression of the
* algorithm in this format.
*/
#ifdef VMS
#ifndef FAB$C_BID
#include <fab.h>
#endif
#ifndef NAM$C_BID
#include <nam.h>
#endif
#ifndef RMS$_SUC
#include <rmsdef.h>
#endif
#include "vmsdir.h"
#endif /* VMS */
#define DIRBLKSIZ 512 /* size of directory block */
#ifdef VMS
#define MAXNAMLEN (DIR$S_NAME + 7) /* 80 plus room for version #. */
#define MAXFULLSPEC NAM$C_MAXRSS /* Maximum full spec */
#else
#ifdef WINDOWSNT
#define MAXNAMLEN 255
#else /* not WINDOWSNT */
#define MAXNAMLEN 15 /* maximum filename length */
#endif /* not WINDOWSNT */
#endif /* VMS */
/* NOTE: MAXNAMLEN must be one less than a multiple of 4 */
struct direct /* data from readdir() */

View file

@ -1,5 +0,0 @@
/* This is so that Emacs can run on VMS... */
#define EXEC_PAGESIZE 512
/* arch-tag: a6daea28-33a6-4dd3-97d8-5ee1a12f09d3
(do not change this comment) */

View file

@ -167,11 +167,6 @@ extern int noninteractive_need_newline;
extern int minibuffer_auto_raise;
#ifdef MAX_PRINT_CHARS
static int print_chars;
static int max_print;
#endif /* MAX_PRINT_CHARS */
void print_interval ();
/* GDB resets this to zero on W32 to disable OutputDebugString calls. */
@ -309,11 +304,6 @@ printchar (ch, fun)
unsigned int ch;
Lisp_Object fun;
{
#ifdef MAX_PRINT_CHARS
if (max_print)
print_chars++;
#endif /* MAX_PRINT_CHARS */
if (!NILP (fun) && !EQ (fun, Qt))
call1 (fun, make_number (ch));
else
@ -382,11 +372,6 @@ strout (ptr, size, size_byte, printcharfun, multibyte)
bcopy (ptr, print_buffer + print_buffer_pos_byte, size_byte);
print_buffer_pos += size;
print_buffer_pos_byte += size_byte;
#ifdef MAX_PRINT_CHARS
if (max_print)
print_chars += size;
#endif /* MAX_PRINT_CHARS */
}
else if (noninteractive && EQ (printcharfun, Qt))
{
@ -419,11 +404,6 @@ strout (ptr, size, size_byte, printcharfun, multibyte)
insert_char (ch);
}
}
#ifdef MAX_PRINT_CHARS
if (max_print)
print_chars += size;
#endif /* MAX_PRINT_CHARS */
}
else
{
@ -764,9 +744,6 @@ is used instead. */)
{
PRINTDECLARE;
#ifdef MAX_PRINT_CHARS
max_print = 0;
#endif /* MAX_PRINT_CHARS */
if (NILP (printcharfun))
printcharfun = Vstandard_output;
PRINTPREPARE;
@ -900,10 +877,6 @@ is used instead. */)
PRINTDECLARE;
struct gcpro gcpro1;
#ifdef MAX_PRINT_CHARS
print_chars = 0;
max_print = MAX_PRINT_CHARS;
#endif /* MAX_PRINT_CHARS */
if (NILP (printcharfun))
printcharfun = Vstandard_output;
GCPRO1 (object);
@ -912,10 +885,6 @@ is used instead. */)
print (object, printcharfun, 1);
PRINTCHAR ('\n');
PRINTFINISH;
#ifdef MAX_PRINT_CHARS
max_print = 0;
print_chars = 0;
#endif /* MAX_PRINT_CHARS */
UNGCPRO;
return object;
}
@ -1614,14 +1583,6 @@ print_object (obj, printcharfun, escapeflag)
print_depth++;
#ifdef MAX_PRINT_CHARS
if (max_print && print_chars > max_print)
{
PRINTCHAR ('\n');
print_chars = 0;
}
#endif /* MAX_PRINT_CHARS */
switch (XTYPE (obj))
{
case Lisp_Int:

View file

@ -159,11 +159,7 @@ extern Lisp_Object QCfilter;
#endif /* HAVE_SOCKETS */
/* Define first descriptor number available for subprocesses. */
#ifdef VMS
#define FIRST_PROC_DESC 1
#else /* Not VMS */
#define FIRST_PROC_DESC 3
#endif
/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals
testing SIGCHLD. */
@ -192,9 +188,6 @@ extern void serial_configure (struct Lisp_Process *p, Lisp_Object contact);
#ifndef USE_CRT_DLL
extern int errno;
#endif
#ifdef VMS
extern char *sys_errlist[];
#endif
#ifndef HAVE_H_ERRNO
extern int h_errno;
@ -1417,12 +1410,7 @@ list_processes_1 (query_only)
{
Lisp_Object tem;
tem = Fcar (Fcdr (p->status));
#ifdef VMS
if (XINT (tem) < NSIG)
write_string (sys_errlist [XINT (tem)], -1);
else
#endif
Fprinc (symbol, Qnil);
Fprinc (symbol, Qnil);
}
else if (NETCONN1_P (p) || SERIALCONN1_P (p))
{
@ -1587,12 +1575,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
register Lisp_Object *args;
{
Lisp_Object buffer, name, program, proc, current_dir, tem;
#ifdef VMS
register unsigned char *new_argv;
int len;
#else
register unsigned char **new_argv;
#endif
register int i;
int count = SPECPDL_INDEX ();
@ -1709,28 +1692,6 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
XPROCESS (proc)->encode_coding_system = val;
}
#ifdef VMS
/* Make a one member argv with all args concatenated
together separated by a blank. */
len = SBYTES (program) + 2;
for (i = 3; i < nargs; i++)
{
tem = args[i];
CHECK_STRING (tem);
len += SBYTES (tem) + 1; /* count the blank */
}
new_argv = (unsigned char *) alloca (len);
strcpy (new_argv, SDATA (program));
for (i = 3; i < nargs; i++)
{
tem = args[i];
CHECK_STRING (tem);
strcat (new_argv, " ");
strcat (new_argv, SDATA (tem));
}
/* Need to add code here to check for program existence on VMS */
#else /* not VMS */
new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *));
/* If program file name is not absolute, search our path for it.
@ -1782,7 +1743,6 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
new_argv[i - 2] = SDATA (tem);
}
new_argv[i - 2] = 0;
#endif /* not VMS */
XPROCESS (proc)->decoding_buf = make_uninit_string (0);
XPROCESS (proc)->decoding_carryover = 0;
@ -1841,7 +1801,6 @@ create_process_sigchld ()
#endif
#endif
#ifndef VMS /* VMS version of this function is in vmsproc.c. */
void
create_process (process, new_argv, current_dir)
Lisp_Object process;
@ -2285,7 +2244,6 @@ create_process (process, new_argv, current_dir)
if (pid < 0)
report_file_error ("Doing vfork", Qnil);
}
#endif /* not VMS */
#ifdef HAVE_SOCKETS
@ -4098,19 +4056,9 @@ deactivate_process (proc)
{
/* Beware SIGCHLD hereabouts. */
flush_pending_output (inchannel);
#ifdef VMS
{
VMS_PROC_STUFF *get_vms_process_pointer (), *vs;
sys$dassgn (outchannel);
vs = get_vms_process_pointer (p->pid);
if (vs)
give_back_vms_process_stuff (vs);
}
#else
emacs_close (inchannel);
if (outchannel >= 0 && outchannel != inchannel)
emacs_close (outchannel);
#endif
p->infd = -1;
p->outfd = -1;
@ -5231,37 +5179,6 @@ read_process_output (proc, channel)
int carryover = p->decoding_carryover;
int readmax = 4096;
#ifdef VMS
VMS_PROC_STUFF *vs, *get_vms_process_pointer();
vs = get_vms_process_pointer (p->pid);
if (vs)
{
if (!vs->iosb[0])
return (0); /* Really weird if it does this */
if (!(vs->iosb[0] & 1))
return -1; /* I/O error */
}
else
error ("Could not get VMS process pointer");
chars = vs->inputBuffer;
nbytes = clean_vms_buffer (chars, vs->iosb[1]);
if (nbytes <= 0)
{
start_vms_process_read (vs); /* Crank up the next read on the process */
return 1; /* Nothing worth printing, say we got 1 */
}
if (carryover > 0)
{
/* The data carried over in the previous decoding (which are at
the tail of decoding buffer) should be prepended to the new
data read to decode all together. */
chars = (char *) alloca (nbytes + carryover);
bcopy (SDATA (p->decoding_buf), buf, carryover);
bcopy (vs->inputBuffer, chars + carryover, nbytes);
}
#else /* not VMS */
chars = (char *) alloca (carryover + readmax);
if (carryover)
/* See the comment above. */
@ -5318,7 +5235,6 @@ read_process_output (proc, channel)
else
nbytes = nbytes + 1;
}
#endif /* not VMS */
p->decoding_carryover = 0;
@ -5441,9 +5357,6 @@ read_process_output (proc, channel)
if (waiting_for_user_input_p == -1)
record_asynch_buffer_change ();
#ifdef VMS
start_vms_process_read (vs);
#endif
unbind_to (count, Qnil);
return nbytes;
}
@ -5566,9 +5479,6 @@ read_process_output (proc, channel)
SET_PT_BOTH (opoint, opoint_byte);
set_buffer_internal (old);
}
#ifdef VMS
start_vms_process_read (vs);
#endif
return nbytes;
}
@ -5620,10 +5530,6 @@ send_process (proc, buf, len, object)
GCPRO1 (object);
#ifdef VMS
VMS_PROC_STUFF *vs, *get_vms_process_pointer();
#endif /* VMS */
if (p->raw_status_new)
update_status (p);
if (! EQ (p->status, Qrun))
@ -5704,14 +5610,6 @@ send_process (proc, buf, len, object)
buf = SDATA (coding->dst_object);
}
#ifdef VMS
vs = get_vms_process_pointer (p->pid);
if (vs == 0)
error ("Could not find this process: %x", p->pid);
else if (write_to_vms_process (vs, buf, len))
;
#else /* not VMS */
if (pty_max_bytes == 0)
{
#if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON)
@ -5873,23 +5771,16 @@ send_process (proc, buf, len, object)
Fprocess_send_eof (proc);
}
}
#endif /* not VMS */
else
{
signal (SIGPIPE, old_sigpipe);
#ifndef VMS
proc = process_sent_to;
p = XPROCESS (proc);
#endif
p->raw_status_new = 0;
p->status = Fcons (Qexit, Fcons (make_number (256), Qnil));
p->tick = ++process_tick;
deactivate_process (proc);
#ifdef VMS
error ("Error writing to process %s; closed it", SDATA (p->name));
#else
error ("SIGPIPE raised on process %s; closed it", SDATA (p->name));
#endif
}
UNGCPRO;
@ -6193,20 +6084,8 @@ process_send_signal (process, signo, current_group, nomsg)
break;
#endif /* ! defined (SIGCONT) */
case SIGINT:
#ifdef VMS
send_process (proc, "\003", 1, Qnil); /* ^C */
goto whoosh;
#endif
case SIGQUIT:
#ifdef VMS
send_process (proc, "\031", 1, Qnil); /* ^Y */
goto whoosh;
#endif
case SIGKILL:
#ifdef VMS
sys$forcex (&(p->pid), 0, 1);
whoosh:
#endif
flush_pending_output (p->infd);
break;
}
@ -6547,9 +6426,6 @@ process has been transmitted to the serial port. */)
send_process (proc, "", 0, Qnil);
}
#ifdef VMS
send_process (proc, "\032", 1, Qnil); /* ^z */
#else
if (XPROCESS (proc)->pty_flag)
send_process (proc, "\004", 1, Qnil);
else if (EQ (XPROCESS (proc)->type, Qserial))
@ -6594,7 +6470,6 @@ process has been transmitted to the serial port. */)
XPROCESS (proc)->outfd = new_outfd;
}
#endif /* VMS */
return process;
}

View file

@ -152,7 +152,7 @@ extern int synch_process_termsig;
extern int synch_process_retcode;
/* The name of the file open to get a null file, or a data sink.
VMS, MS-DOS, and OS/2 redefine this. */
MS-DOS, and OS/2 redefine this. */
#ifndef NULL_DEVICE
#define NULL_DEVICE "/dev/null"
#endif

View file

@ -40,7 +40,6 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
#define DOS_NT /* MSDOS or WINDOWSNT */
#undef BSD_SYSTEM
#undef VMS
/* SYSTEM_TYPE should indicate the kind of system you are using.
It sets the Lisp variable system-type. */

View file

@ -31,7 +31,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* #define BSD4_2 */
/* #define BSD4_3 */
/* #define BSD_SYSTEM */
/* #define VMS */
/* SYSTEM_TYPE should indicate the kind of system you are using.
It sets the Lisp variable system-type. */
@ -93,13 +92,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define HAVE_PTYS
/*
* Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
* The 4.2 opendir, etc., library functions.
*/
#define NONSYSTEM_DIR_LIBRARY
/* Define this symbol if your system has the functions bcopy, etc. */
#define BSTRING

View file

@ -1,192 +0,0 @@
/* system description header for VMS
Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/*
* Define symbols to identify the version of Unix this is.
* Define all the symbols that apply correctly.
*/
#ifndef VMS /* Decus cpp doesn't define this but VAX C does */
#define VMS
#endif /* VMS */
/* Note that this file is used indirectly via vms4-0.h, or some other
such file. These other files define a symbol VMS4_0, VMS4_2, etc. */
/* SYSTEM_TYPE should indicate the kind of system you are using.
It sets the Lisp variable system-type. */
#define SYSTEM_TYPE "vax-vms"
/* Letter to use in finding device name of first pty,
if system supports pty's. 'a' means it is /dev/ptya0 */
#define FIRST_PTY_LETTER 'a'
/*
* Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
* The 4.2 opendir, etc., library functions.
*/
#define NONSYSTEM_DIR_LIBRARY
/* Define the maximum record length for print strings, if needed. */
#define MAX_PRINT_CHARS 300
/* Here, on a separate page, add any special hacks needed
to make Emacs work on this system. For example,
you might define certain system call names that don't
exist on your system, or that do different things on
your system and must be used only through an encapsulation
(Which you should place, by convention, in sysdep.c). */
/* In olden days, VMS filenames did not support hyphen (i.e., the "-"
character). You can #undef this in vmsX-Y.h for newer versions. */
#define NO_HYPHENS_IN_FILENAMES
/* Do you have the sharable library bug? If you link with a sharable
library that contains psects with the NOSHR attribute and also refer to
those psects in your program, the linker give you a private version of
the psect which is not related to the version used by the sharable
library. The end result is that your references to variables in that
psect have absolutely nothing to do with library references to what is
supposed to be the same variable. If you intend to link with the standard
C library (NOT the sharable one) you don't need to define this. (This
is NOT fixed in V4.4...) */
#define SHARABLE_LIB_BUG
/* Partially due to the above mentioned bug and also so that we don't need
to require that people have a sharable C library, the default for Emacs
is to link with the non-shared library. If you want to link with the
shared library, define this and remake xmakefile and fileio.c. This allows
us to ship a guaranteed executable image. */
#define LINK_CRTL_SHARE
/* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user
information. If you do use this, you must either make SYSUAF.DAT world
readable or install Emacs with SYSPRV. */
/* #define READ_SYSUAF */
/* Traditionally, filenames on VMS are always upper case. */
#define FILE_SYSTEM_CASE Fupcase
/* On VMS these have a different name */
#define index strchr
#define rindex strrchr
#define unlink delete
#ifndef __GNUC__
extern double mth$dmod(double, double);
#endif
/* Some time routines are missing in the VAX C RTL, or needs some
extra bit of code */
#define tzset sys_tzset
#define localtime sys_localtime
#define gmtime sys_gmtime
/* On later versions of VMS these exist in the C run time library, but
we are using our own implementations. Hide their names to avoid
linker errors */
#define rename sys_rename
#define execvp sys_execvp
#define system sys_system
#ifndef GNU_MALLOC
/* Hide these names so that we don't get linker errors */
#define malloc sys_malloc
#define free sys_free
#define realloc sys_realloc
#define calloc sys_calloc
/* Don't use the standard brk and sbrk */
#define sbrk sys_sbrk
#define brk sys_brk
#endif
/* On VMS we want to avoid reading and writing very large amounts of
data at once, so we redefine read and write here. */
#define read sys_read
#define write sys_write
/* sys_creat just calls the real creat with additional args of
"rfm=var", "rat=cr" to get "normal" VMS files... */
#define creat sys_creat
/* fwrite forces an RMS PUT on every call. This is abysmally slow, so
we emulate fwrite with fputc, which forces buffering and is much
faster! */
#define fwrite sys_fwrite
/* getuid only returns the member number, which is not unique on most VMS
systems. We emulate it with (getgid()<<16 | getuid()). */
#define getuid sys_getuid
/* If user asks for TERM, check first for EMACS_TERM. */
#define getenv sys_getenv
/* Standard C abort is less useful than it should be. */
#define abort sys_abort
/* Case conflicts with C library fread. */
#define Fread F_read
/* Case conflicts with C library srandom. */
#define Srandom S_random
/* Cause initialization of vmsfns.c to be run. */
#define SYMS_SYSTEM syms_of_vmsfns ()
/* VAXCRTL access doesn't deal with SYSPRV very well (among other oddities...)
Here, we use $CHKPRO to really determine access. */
#define access sys_access
#define PAGESIZE 512
#define _longjmp longjmp
#define _setjmp setjmp
globalref char sdata[];
#define DATA_START (((int) sdata + 511) & ~511)
#define TEXT_START 512
#define PURESIZE 330000
/* Stdio FILE type has extra indirect on VMS, so must alter this macro. */
#define PENDING_OUTPUT_COUNT(FILE) ((*(FILE))->_ptr - (*(FILE))->_base)
#define NULL_DEVICE "NLA0:"
/* Case conflict with Xlib XFree () */
#define xfree emacs_xfree
/* What separator do we use in paths? */
#define SEPCHAR ','
/* arch-tag: 76bc2b70-46d1-4334-8f12-955c0d0ca6d4
(do not change this comment) */

File diff suppressed because it is too large Load diff

View file

@ -192,13 +192,11 @@ extern SIGMASKTYPE sigprocmask_set;
/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals
testing SIGCHLD. */
#ifndef VMS
#ifdef SIGCLD
#ifndef SIGCHLD
#define SIGCHLD SIGCLD
#endif /* SIGCHLD */
#endif /* ! defined (SIGCLD) */
#endif /* VMS */
#ifndef HAVE_STRSIGNAL
/* strsignal is in sysdep.c */

View file

@ -42,12 +42,6 @@ extern char *tzname[]; /* RS6000 and others want it this way. */
extern time_t timezone;
#endif
#ifdef VMS
#ifdef VAXC
#include "vmstime.h"
#endif
#endif
/* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h
disagree about the name of the guard symbol. */
#ifdef HPUX

View file

@ -40,46 +40,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define INCLUDED_FCNTL
#include <fcntl.h>
#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
#ifndef VMS
#ifndef DOS_NT
#include <sgtty.h>
#endif /* not DOS_NT */
#else /* VMS */
#include <descrip.h>
static struct iosb
{
short status;
short offset;
short termlen;
short term;
} input_iosb;
extern int waiting_for_ast;
extern int stop_input;
extern int input_ef;
extern int timer_ef;
extern int process_ef;
extern int input_eflist;
extern int timer_eflist;
static $DESCRIPTOR (input_dsc, "TT");
static int terminator_mask[2] = { 0, 0 };
static struct sensemode {
short status;
unsigned char xmit_baud;
unsigned char rcv_baud;
unsigned char crfill;
unsigned char lffill;
unsigned char parity;
unsigned char unused;
char class;
char type;
short scr_wid;
unsigned long tt_char : 24, scr_len : 8;
unsigned long tt2_char;
} sensemode_iosb;
#endif /* VMS */
#endif /* not HAVE_TERMIOS */
#endif /* not HAVE_TERMIO */
@ -250,9 +213,6 @@ struct emacs_tty {
#ifdef HAVE_TERMIO
struct termio main;
#else
#ifdef VMS
struct sensemode main;
#else
#ifdef DOS_NT
int main;
#else /* not DOS_NT */
@ -260,7 +220,6 @@ struct emacs_tty {
#endif /* not DOS_NT */
#endif
#endif
#endif
/* If we have TERMIOS, we don't need to do this - they're taken care of
by the tc*attr calls. */
@ -306,11 +265,6 @@ extern int emacs_set_tty P_ ((int, struct emacs_tty *, int));
#define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3)
#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */
#ifdef VMS
#define EMACS_TTY_TABS_OK(p) (((p)->main.tt_char & TT$M_MECHTAB) != 0)
#else
#ifdef DOS_NT
#define EMACS_TTY_TABS_OK(p) 0
@ -318,7 +272,6 @@ extern int emacs_set_tty P_ ((int, struct emacs_tty *, int));
#define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS)
#endif /* not DOS_NT */
#endif /* not def VMS */
#endif /* not def HAVE_TERMIO */
#endif /* not def HAVE_TERMIOS */

View file

@ -24,8 +24,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_SYSWAIT_H
#define EMACS_SYSWAIT_H
#ifndef VMS
#include <sys/types.h>
#ifdef HAVE_SYS_WAIT_H /* We have sys/wait.h with POSIXoid definitions. */
@ -57,21 +55,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#undef WRETCODE
#define WRETCODE(status) WEXITSTATUS (status)
#else /* VMS */
#define WIFSTOPPED(w) 0
#define WIFSIGNALED(w) 0
#define WIFEXITED(w) ((w) != -1)
#define WRETCODE(w) (w)
#define WSTOPSIG(w) (w)
#define WCOREDUMP(w) 0
#define WTERMSIG(w) (w)
#include <ssdef.h>
#include <iodef.h>
#include <clidef.h>
#include "vmsproc.h"
#endif /* VMS */
#endif /* EMACS_SYSWAIT_H */

View file

@ -1,60 +0,0 @@
cluster=emacs,,,-
DISPNEW.OBJ,-
SCROLL.OBJ,-
XDISP.OBJ,-
WINDOW.OBJ,-
TERM.OBJ,-
CM.OBJ,-
EMACS.OBJ,-
KEYBOARD.OBJ,-
MACROS.OBJ,-
KEYMAP.OBJ,-
SYSDEP.OBJ,-
BUFFER.OBJ,-
FILELOCK.OBJ,-
INSDEL.OBJ,-
MARKER.OBJ,-
MINIBUF.OBJ,-
FILEIO.OBJ,-
DIRED.OBJ,-
FILEMODE.OBJ,-
CMDS.OBJ,-
CASEFIDDLE.OBJ,-
INDENT.OBJ,-
SEARCH.OBJ,-
REGEX.OBJ,-
UNDO.OBJ,-
ALLOC.OBJ,-
DATA.OBJ,-
DOC.OBJ,-
EDITFNS.OBJ,-
CALLINT.OBJ,-
EVAL.OBJ,-
FNS.OBJ,-
PRINT.OBJ,-
LREAD.OBJ,-
ABBREV.OBJ,-
SYNTAX.OBJ,-
MOCKLISP.OBJ,-
BYTECODE.OBJ,-
PROCESS.OBJ,-
CALLPROC.OBJ,-
VMSFNS.OBJ,-
VMSPROC.OBJ,-
DOPRNT.OBJ,-
vmsmap.obj,-
termcap.obj,-
tparam.obj,-
lastfile.obj,-
alloca.obj,-
malloc.obj
collect=non_saved_data,-
stdin,-
stdout,-
stderr,-
errno,-
vaxc$errno,-
sys_errlist,-
sys_nerr,-
environ
sys$library:vaxcrtl/library

View file

@ -3489,12 +3489,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
Down (tty) = tgetstr ("do", address);
if (!Down (tty))
Down (tty) = tgetstr ("nl", address); /* Obsolete name for "do" */
#ifdef VMS
/* VMS puts a carriage return before each linefeed,
so it is not safe to use linefeeds. */
if (Down (tty) && Down (tty)[0] == '\n' && Down (tty)[1] == '\0')
Down (tty) = 0;
#endif /* VMS */
if (tgetflag ("bs"))
Left (tty) = "\b"; /* can't possibly be longer! */
else /* (Actually, "bs" is obsolete...) */
@ -3610,15 +3604,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
TabWidth (tty) = tgetnum ("tw");
#ifdef VMS
/* These capabilities commonly use ^J.
I don't know why, but sending them on VMS does not work;
it causes following spaces to be lost, sometimes.
For now, the simplest fix is to avoid using these capabilities ever. */
if (Down (tty) && Down (tty)[0] == '\n')
Down (tty) = 0;
#endif /* VMS */
if (!tty->TS_bell)
tty->TS_bell = "\07";
@ -3734,13 +3719,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
{
maybe_fatal (must_succeed, NULL, terminal,
"Terminal type \"%s\" is not powerful enough to run Emacs",
#ifdef VMS
"Terminal type \"%s\" is not powerful enough to run Emacs.\n\
It lacks the ability to position the cursor.\n\
If that is not the actual type of terminal you have, use either the\n\
DCL command `SET TERMINAL/DEVICE= ...' for DEC-compatible terminals,\n\
or `define EMACS_TERM \"terminal type\"' for non-DEC terminals.",
#else /* not VMS */
# ifdef TERMINFO
"Terminal type \"%s\" is not powerful enough to run Emacs.\n\
It lacks the ability to position the cursor.\n\
@ -3756,7 +3734,6 @@ use the Bourne shell command `TERM=... export TERM' (C-shell:\n\
`setenv TERM ...') to specify the correct type. It may be necessary\n\
to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
# endif /* TERMINFO */
#endif /*VMS */
terminal_type);
}

View file

@ -349,13 +349,8 @@ char PC;
static int speeds[] =
{
#ifdef VMS
0, 50, 75, 110, 134, 150, -3, -6, -12, -18,
-20, -24, -36, -48, -72, -96, -192
#else /* not VMS */
0, 50, 75, 110, 135, 150, -2, -3, -6, -12,
-18, -24, -48, -96, -192, -288, -384, -576, -1152
#endif /* not VMS */
};
#endif /* not emacs */
@ -441,34 +436,6 @@ static char *gobble_line ();
static int compare_contin ();
static int name_match ();
#ifdef VMS
#include <rmsdef.h>
#include <fab.h>
#include <nam.h>
#include <starlet.h>
static int
valid_filename_p (fn)
char *fn;
{
struct FAB fab = cc$rms_fab;
struct NAM nam = cc$rms_nam;
char esa[NAM$C_MAXRSS];
fab.fab$l_fna = fn;
fab.fab$b_fns = strlen(fn);
fab.fab$l_nam = &nam;
fab.fab$l_fop = FAB$M_NAM;
nam.nam$l_esa = esa;
nam.nam$b_ess = sizeof esa;
return SYS$PARSE(&fab, 0, 0) == RMS$_NORMAL;
}
#else /* !VMS */
#ifdef MSDOS /* MW, May 1993 */
static int
valid_filename_p (fn)
@ -480,8 +447,6 @@ valid_filename_p (fn)
#define valid_filename_p(fn) (*(fn) == '/')
#endif
#endif /* !VMS */
/* Find the termcap entry data for terminal type NAME
and store it in the block that BP points to.
Record its address for future use.

Some files were not shown because too many files have changed in this diff Show more