Mercurial > emacs
changeset 108595:a9dc4c72f652
Fix DOS build; don't override convert-standard-filename.
config.bat: Remove support for DJGPP v1.x.
src/Makefile.in: Fix MSDOS-related comments.
msdos/sed3v2.inp (INSTALLABLES): Edit out extra ${EXEEXT} after "emacsclient".
(emacsserver, timer, wakeup): Remove edit-out commands.
msdos/sed1v2.inp (MSDOS_OBJ): Add w16select.o.
(TERMCAP_OBJ): Add termcap.o.
lisp/files.el (convert-standard-filename): Call
w32-convert-standard-filename and dos-convert-standard-filename on
the corresponding systems.
lisp/w32-fns.el (w32-convert-standard-filename): Rename from
convert-standard-filename. Doc fix.
lisp/dos-fns.el (dos-convert-standard-filename): Doc fix.
(convert-standard-filename): Don't defalias.
(register-name-alist, make-register, register-value)
(set-register-value, intdos): Obsolete aliases for the
corresponding dos-* functions and variables.
(dos-intdos): Add a doc string.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 15 May 2010 11:38:48 +0300 |
parents | 7e6170a6733d (current diff) a5969c855306 (diff) |
children | cd5442b2826b f0d831cccbeb 7752767c4c7f |
files | |
diffstat | 11 files changed, 94 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat May 15 09:25:23 2010 +0300 +++ b/ChangeLog Sat May 15 11:38:48 2010 +0300 @@ -1,3 +1,7 @@ +2010-05-15 Eli Zaretskii <eliz@gnu.org> + + * config.bat: Remove support for DJGPP v1.x. + 2010-05-15 Glenn Morris <rgm@gnu.org> * configure.in (OLDXMENU_TARGET): New output variable.
--- a/config.bat Sat May 15 09:25:23 2010 +0300 +++ b/config.bat Sat May 15 11:38:48 2010 +0300 @@ -23,7 +23,7 @@ rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: rem rem + msdos version 3 or better. -rem + DJGPP version 1.12maint1 or later (version 2.03 or later recommended). +rem + DJGPP version 2.0 or later (version 2.03 or later recommended). rem + make utility that allows breaking of the 128 chars limit on rem command lines. ndmake (as of version 4.5) won't work due to a rem line length limit. The make that comes with DJGPP does work (and is @@ -125,11 +125,10 @@ Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! Goto End :go32Ok -set djgpp_ver=1 -If ErrorLevel 20 set djgpp_ver=2 +set djgpp_ver=2 +If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later! +If Not ErrorLevel 20 Goto End rm -f junk.c junk junk.exe -rem The v1.x build does not need djecho -if "%DJGPP_VER%" == "1" Goto djechoOk rem DJECHO is used by the top-level Makefile in the v2.x build Echo Checking whether 'djecho' is available... redir -o Nul -eo djecho -o junk.$$$ foo @@ -159,12 +158,7 @@ if "%X11%" == "" goto src4 sed -f ../msdos/sed2x.inp <config.in >config.tmp :src4 -if "%DJGPP_VER%" == "2" Goto src41 -sed -f ../msdos/sed2.inp <config.tmp >config.h2 -goto src42 -:src41 sed -f ../msdos/sed2v2.inp <config.tmp >config.h2 -:src42 Rem See if DECL_ALIGN can be supported with this GCC rm -f junk.c junk.o junk junk.exe echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c @@ -198,12 +192,7 @@ rem Create "makefile" from "makefile.in". rm -f Makefile junk.c sed -e "1,/== start of cpp stuff ==/s@^##*[ ].*$@@" <Makefile.in >junk.c -If "%DJGPP_VER%" == "1" Goto mfV1 gcc -E -traditional junk.c | sed -f ../msdos/sed1v2.inp >Makefile -goto mfDone -:mfV1 -gcc -E -traditional junk.c | sed -f ../msdos/sed1.inp >Makefile -:mfDone rm -f junk.c if "%X11%" == "" goto src5 @@ -221,12 +210,7 @@ rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src -If "%DJGPP_VER%" == "2" goto libsrc-v2 -sed -f ../msdos/sed3.inp <Makefile.in >Makefile -Goto libsrc2 -:libsrc-v2 sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile -:libsrc2 if "%X11%" == "" goto libsrc2a mv Makefile makefile.tmp sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile @@ -272,7 +256,6 @@ Echo Configuring the main directory... If Exist .dir-locals.el update .dir-locals.el _dir-locals.el If Exist src\.dbxinit update src/.dbxinit src/_dbxinit -If "%DJGPP_VER%" == "1" goto mainv1 Echo Looking for the GDB init file... If Exist src\.gdbinit update src/.gdbinit src/_gdbinit If Exist src\_gdbinit goto gdbinitOk @@ -287,8 +270,6 @@ :gdbinitOk Echo Looking for the GDB init file...found copy msdos\mainmake.v2 Makefile >nul -:mainv1 -If "%DJGPP_VER%" == "1" copy msdos\mainmake Makefile >nul rem ---------------------------------------------------------------------- goto End :SmallEnv
--- a/lisp/ChangeLog Sat May 15 09:25:23 2010 +0300 +++ b/lisp/ChangeLog Sat May 15 11:38:48 2010 +0300 @@ -1,3 +1,20 @@ +2010-05-15 Eli Zaretskii <eliz@gnu.org> + + Don't override standard definition of convert-standard-filename. + * files.el (convert-standard-filename): Call + w32-convert-standard-filename and dos-convert-standard-filename on + the corresponding systems. + + * w32-fns.el (w32-convert-standard-filename): Rename from + convert-standard-filename. Doc fix. + + * dos-fns.el (dos-convert-standard-filename): Doc fix. + (convert-standard-filename): Don't defalias. + (register-name-alist, make-register, register-value) + (set-register-value, intdos): Obsolete aliases for the + corresponding dos-* functions and variables. + (dos-intdos): Add a doc string. + 2010-05-15 Jay Belanger <jay.p.belanger@gmail.com> * calc/calc-aent.el (math-read-token, math-find-user-tokens):
--- a/lisp/dos-fns.el Sat May 15 09:25:23 2010 +0300 +++ b/lisp/dos-fns.el Sat May 15 11:38:48 2010 +0300 @@ -30,16 +30,16 @@ (declare-function int86 "dosfns.c") (declare-function msdos-long-file-names "msdos.c") -;; This overrides a trivial definition in files.el. +;; See convert-standard-filename in files.el. (defun dos-convert-standard-filename (filename) - "Convert a standard file's name to something suitable for the current OS. + "Convert a standard file's name to something suitable for MS-DOS. This means to guarantee valid names and perhaps to canonicalize certain patterns. +This function is called by `convert-standard-filename'. + On Windows and DOS, replace invalid characters. On DOS, make -sure to obey the 8.3 limitations. On Windows, turn Cygwin names -into native names, and also turn slashes into backslashes if the -shell requires it (see `w32-shell-dos-semantics')." +sure to obey the 8.3 limitations." (if (or (not (stringp filename)) ;; This catches the case where FILENAME is "x:" or "x:/" or ;; "/", thus preventing infinite recursion. @@ -128,11 +128,6 @@ (dos-convert-standard-filename dir)) string)))))) -;; Only redirect convert-standard-filename if it has a chance of working, -;; otherwise loading dos-fns.el might make your non-DOS Emacs misbehave. -(when (fboundp 'msdos-long-file-names) - (defalias 'convert-standard-filename 'dos-convert-standard-filename)) - (defun dos-8+3-filename (filename) "Truncate FILENAME to DOS 8+3 limits." (if (or (not (stringp filename)) @@ -243,9 +238,14 @@ (al . (0 . 0)) (bl . (1 . 0)) (cl . (2 . 0)) (dl . (3 . 0)) (ah . (0 . 1)) (bh . (1 . 1)) (ch . (2 . 1)) (dh . (3 . 1)))) +(define-obsolete-variable-alias + 'register-name-alist 'dos-register-name-alist "24.1") + (defun dos-make-register () (make-vector 8 0)) +(define-obsolete-function-alias 'make-register 'dos-make-register "24.1") + (defun dos-register-value (regs name) (let ((where (cdr (assoc name dos-register-name-alist)))) (cond ((consp where) @@ -257,6 +257,8 @@ (aref regs where)) (t nil)))) +(define-obsolete-function-alias 'register-value 'dos-register-value "24.1") + (defun dos-set-register-value (regs name value) (and (numberp value) (>= value 0) @@ -273,9 +275,18 @@ (aset regs where (logand value 65535)))))) regs) +(define-obsolete-function-alias + 'set-register-value 'dos-set-register-value "24.1") + (defsubst dos-intdos (regs) + "Issue the DOS Int 21h with registers REGS. + +REGS should be a vector produced by `dos-make-register' +and `dos-set-register-value', which see." (int86 33 regs)) +(define-obsolete-function-alias 'intdos 'dos-intdos "24.1") + ;; Backward compatibility for obsolescent functions which ;; set screen size. @@ -284,6 +295,8 @@ (interactive) (set-frame-size (selected-frame) 80 25)) +(define-obsolete-function-alias 'mode25 'dos-mode25 "24.1") + (defun dos-mode4350 () "Changes the number of rows to 43 or 50. Emacs always tries to set the screen height to 50 rows first. @@ -295,6 +308,8 @@ nil ; the original built-in function returned nil (set-frame-size (selected-frame) 80 43))) +(define-obsolete-function-alias 'mode4350 'dos-mode4350 "24.1") + (provide 'dos-fns) ;; arch-tag: 00b03579-8ebb-4a02-8762-5c5a929774ad
--- a/lisp/files.el Sat May 15 09:25:23 2010 +0300 +++ b/lisp/files.el Sat May 15 11:38:48 2010 +0300 @@ -574,6 +574,9 @@ (inhibit-file-name-operation op)) (apply op args)))) +(declare-function dos-convert-standard-filename "dos-fns.el" (filename)) +(declare-function w32-convert-standard-filename "w32-fns.el" (filename)) + (defun convert-standard-filename (filename) "Convert a standard file's name to something suitable for the OS. This means to guarantee valid names and perhaps to canonicalize @@ -591,15 +594,20 @@ `w32-shell-dos-semantics'). See Info node `(elisp)Standard File Names' for more details." - (if (eq system-type 'cygwin) - (let ((name (copy-sequence filename)) - (start 0)) - ;; Replace invalid filename characters with ! - (while (string-match "[?*:<>|\"\000-\037]" name start) - (aset name (match-beginning 0) ?!) - (setq start (match-end 0))) - name) - filename)) + (cond + ((eq system-type 'cygwin) + (let ((name (copy-sequence filename)) + (start 0)) + ;; Replace invalid filename characters with ! + (while (string-match "[?*:<>|\"\000-\037]" name start) + (aset name (match-beginning 0) ?!) + (setq start (match-end 0))) + name)) + ((eq system-type 'windows-nt) + (w32-convert-standard-filename filename)) + ((eq system-type 'ms-dos) + (dos-convert-standard-filename filename)) + (t filename))) (defun read-directory-name (prompt &optional dir default-dirname mustmatch initial) "Read directory name, prompting with PROMPT and completing in directory DIR.
--- a/lisp/w32-fns.el Sat May 15 09:25:23 2010 +0300 +++ b/lisp/w32-fns.el Sat May 15 11:38:48 2010 +0300 @@ -253,15 +253,16 @@ ;; (setq source-directory (file-name-as-directory ;; (expand-file-name ".." exec-directory))))) -(defun convert-standard-filename (filename) - "Convert a standard file's name to something suitable for the current OS. +(defun w32-convert-standard-filename (filename) + "Convert a standard file's name to something suitable for the MS-Windows. This means to guarantee valid names and perhaps to canonicalize certain patterns. -On Windows and DOS, replace invalid characters. On DOS, make -sure to obey the 8.3 limitations. On Windows, turn Cygwin names -into native names, and also turn slashes into backslashes if the -shell requires it (see `w32-shell-dos-semantics')." +This function is called by `convert-standard-filename'. + +Replace invalid characters and turn Cygwin names into native +names, and also turn slashes into backslashes if the shell +requires it (see `w32-shell-dos-semantics')." (save-match-data (let ((name (if (string-match "\\`/cygdrive/\\([a-zA-Z]\\)/" filename)
--- a/msdos/ChangeLog Sat May 15 09:25:23 2010 +0300 +++ b/msdos/ChangeLog Sat May 15 11:38:48 2010 +0300 @@ -1,3 +1,12 @@ +2010-05-15 Eli Zaretskii <eliz@gnu.org> + + * sed3v2.inp (INSTALLABLES): Edit out extra ${EXEEXT} after + "emacsclient". + (emacsserver, timer, wakeup): Remove edit-out commands. + + * sed1v2.inp (MSDOS_OBJ): Add w16select.o. + (TERMCAP_OBJ): Add termcap.o. + 2010-05-15 Glenn Morris <rgm@gnu.org> * sed1v2.inp (OLDXMENU_TARGET): Edit to empty.
--- a/msdos/sed1v2.inp Sat May 15 09:25:23 2010 +0300 +++ b/msdos/sed1v2.inp Sat May 15 11:38:48 2010 +0300 @@ -77,7 +77,7 @@ /^GCONF_LIBS *=/s/@GCONF_LIBS@// /^GTK_OBJ *=/s/@GTK_OBJ@// /^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@// -/^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/tparam.o/ +/^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/ /^LIBXMU *=/s/@LIBXMU@// /^LIBXSM *=/s/@LIBXSM@// /^LIBXTR6 *=/s/@LIBXTR6@// @@ -91,7 +91,7 @@ /^RSVG_CFLAGS *=/s/@RSVG_CFLAGS@// /^WIDGET_OBJ *=/s/@WIDGET_OBJ@// /^CYGWIN_OBJ *=/s/@CYGWIN_OBJ@// -/^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o/ +/^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o w16select.o/ /^MSDOS_SUPPORT *=/s/= */= $(MSDOS_SUPPORT_REAL)/ /^ns_appdir *=/s/@ns_appdir@// /^ns_appbindir *=/s/@ns_appbindir@//
--- a/msdos/sed3v2.inp Sat May 15 09:25:23 2010 +0300 +++ b/msdos/sed3v2.inp Sat May 15 11:38:48 2010 +0300 @@ -44,11 +44,10 @@ /^EXEEXT *=/s!@EXEEXT@!! /^GETOPT_H *=/s!@GETOPT_H@!getopt.h! /^GETOPTOBJS *=/s!@GETOPTOBJS@!getopt.o getopt1.o! -/^INSTALLABLES/s/emacsclient *// +/^INSTALLABLES/s/emacsclient[^ ]* *// s!^ \./! ! -/^UTILITIES=/s/ wakeup// -/^UTILITIES=/s/ movemail// -/^UTILITIES=/s/ emacsserver// -/^UTILITIES=/s/ timer// +/^UTILITIES *=/,/^$/{ + s/movemail[^ ]* *// +} # arch-tag: 16f3be18-a45b-496c-b19c-e43840359de8
--- a/src/ChangeLog Sat May 15 09:25:23 2010 +0300 +++ b/src/ChangeLog Sat May 15 11:38:48 2010 +0300 @@ -1,3 +1,7 @@ +2010-05-15 Eli Zaretskii <eliz@gnu.org> + + * Makefile.in: Fix MSDOS-related comments. + 2010-05-15 Glenn Morris <rgm@gnu.org> * Makefile.in (OLDXMENU_TARGET): New, set by configure.
--- a/src/Makefile.in Sat May 15 09:25:23 2010 +0300 +++ b/src/Makefile.in Sat May 15 11:38:48 2010 +0300 @@ -189,7 +189,7 @@ ## sheap.o if CYGWIN, otherwise empty. CYGWIN_OBJ=@CYGWIN_OBJ@ -## dosfns.o msdos.o if MSDOS. +## dosfns.o msdos.o w16select.o if MSDOS. MSDOS_OBJ = ## w16select.o termcap.o if MSDOS && HAVE_X_WINDOWS. MSDOS_X_OBJ =