Don't override standard definition of convert-standard-filename.
Add obsolete aliases for dos-fns.el functions. 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.
This commit is contained in:
parent
78248b76e3
commit
98d8b17e45
4 changed files with 66 additions and 25 deletions
|
@ -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):
|
||||
|
|
|
@ -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 @@ shell requires it (see `w32-shell-dos-semantics')."
|
|||
(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 @@ returned unaltered."
|
|||
(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 @@ returned unaltered."
|
|||
(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 @@ returned unaltered."
|
|||
(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 @@ returned unaltered."
|
|||
(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 @@ that your video hardware might not support 50-line mode."
|
|||
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
|
||||
|
|
|
@ -574,6 +574,9 @@ Runs the usual ange-ftp hook, but only for completion operations."
|
|||
(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 @@ and also turn slashes into backslashes if the shell requires it (see
|
|||
`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.
|
||||
|
|
|
@ -253,15 +253,16 @@ You should set this to t when using a non-system shell.\n\n"))))
|
|||
;; (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)
|
||||
|
|
Loading…
Add table
Reference in a new issue