mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Don't downcase system diagnostics' first letters
* etc/NEWS: Document this. * lisp/emacs-lisp/bytecomp.el (byte-compile-file): * lisp/ffap.el (find-file-at-point): * lisp/files.el (insert-file-1): * lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory) (ange-ftp-copy-file-internal): * lisp/progmodes/etags.el (visit-tags-table): * lisp/url/url-dav.el (url-dav-delete-directory, url-dav-delete-file) (url-dav-directory-files): Keep diagnostics consistent with system's. * lisp/erc/erc-dcc.el (erc-dcc-server): * lisp/ffap.el (ffap-machine-p): Ignore case while comparing diagnostics. * src/fileio.c (report_file_errno): Don't downcase, and simplify. Fixes: bug#19642
This commit is contained in:
parent
938bca8e41
commit
8dd58a2d1f
14 changed files with 60 additions and 43 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't downcase system diagnostics' first letters
|
||||
* NEWS: Document this.
|
||||
|
||||
2015-01-16 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* NEWS: Document installing packages from directories.
|
||||
|
|
|
|||
5
etc/NEWS
5
etc/NEWS
|
|
@ -538,6 +538,11 @@ position list returned for such events is now nil.
|
|||
These slots used to hold key-shortcut data, but have been obsolete since
|
||||
Emacs-21.
|
||||
|
||||
** Emacs no longer downcases the first letter of a system diagnostic
|
||||
when signaling a file error. For example, it now reports "Permission
|
||||
denied" instead of "permission denied". The old behavior was problematic
|
||||
in languages like German where downcasing rules depend on grammar.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 25.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't downcase system diagnostics' first letters
|
||||
* emacs-lisp/bytecomp.el (byte-compile-file):
|
||||
* ffap.el (find-file-at-point):
|
||||
* files.el (insert-file-1):
|
||||
* net/ange-ftp.el (ange-ftp-barf-if-not-directory)
|
||||
(ange-ftp-copy-file-internal):
|
||||
* progmodes/etags.el (visit-tags-table):
|
||||
Keep diagnostics consistent with system's.
|
||||
* ffap.el (ffap-machine-p):
|
||||
Ignore case while comparing diagnostics.
|
||||
|
||||
2015-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* help.el (help-make-usage): Don't turn a "_" arg into an empty-string
|
||||
|
|
|
|||
|
|
@ -1863,8 +1863,8 @@ The value is non-nil if there were no errors, nil if errors."
|
|||
(signal 'file-error
|
||||
(list "Opening output file"
|
||||
(if (file-exists-p target-file)
|
||||
"cannot overwrite file"
|
||||
"directory not writable or nonexistent")
|
||||
"Cannot overwrite file"
|
||||
"Directory not writable or nonexistent")
|
||||
target-file)))
|
||||
(kill-buffer (current-buffer)))
|
||||
(if (and byte-compile-generate-call-tree
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't downcase system diagnostics' first letters
|
||||
* erc-dcc.el (erc-dcc-server): Ignore case while comparing diagnostics.
|
||||
|
||||
2014-11-23 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* erc-desktop-notifications.el (erc-notifications-bus):
|
||||
|
|
|
|||
|
|
@ -379,7 +379,7 @@ created subprocess, or nil."
|
|||
(set-process-filter-multibyte process nil)))))
|
||||
(file-error
|
||||
(unless (and (string= "Cannot bind server socket" (nth 1 err))
|
||||
(string= "address already in use" (nth 2 err)))
|
||||
(string= "address already in use" (downcase (nth 2 err))))
|
||||
(signal (car err) (cdr err)))
|
||||
(setq port (1+ port))
|
||||
(unless (< port upper)
|
||||
|
|
@ -1264,4 +1264,3 @@ other client."
|
|||
;; Local Variables:
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
|
|
|
|||
|
|
@ -476,7 +476,7 @@ Returned values:
|
|||
;; (file-error "connection failed" "address already in use"
|
||||
;; "ftp.uu.net" "ffap-machine-p")
|
||||
((equal mesg "connection failed")
|
||||
(if (equal (nth 2 error) "permission denied")
|
||||
(if (string= (downcase (nth 2 error)) "permission denied")
|
||||
nil ; host does not exist
|
||||
;; Other errors mean the host exists:
|
||||
(nth 2 error)))
|
||||
|
|
@ -1439,7 +1439,7 @@ and the functions `ffap-file-at-point' and `ffap-url-at-point'."
|
|||
(expand-file-name filename)))
|
||||
;; User does not want to find a non-existent file:
|
||||
((signal 'file-error (list "Opening file buffer"
|
||||
"no such file or directory"
|
||||
"No such file or directory"
|
||||
filename)))))))
|
||||
|
||||
;; Shortcut: allow {M-x ffap} rather than {M-x find-file-at-point}.
|
||||
|
|
|
|||
|
|
@ -2128,7 +2128,7 @@ This function ensures that none of these modifications will take place."
|
|||
|
||||
(defun insert-file-1 (filename insert-func)
|
||||
(if (file-directory-p filename)
|
||||
(signal 'file-error (list "Opening input file" "file is a directory"
|
||||
(signal 'file-error (list "Opening input file" "Is a directory"
|
||||
filename)))
|
||||
;; Check whether the file is uncommonly large
|
||||
(abort-if-file-too-large (nth 7 (file-attributes filename)) "insert" filename)
|
||||
|
|
|
|||
|
|
@ -1536,8 +1536,8 @@ then kill the related FTP process."
|
|||
(signal 'file-error
|
||||
(list "Opening directory"
|
||||
(if (file-exists-p directory)
|
||||
"not a directory"
|
||||
"no such file or directory")
|
||||
"Not a directory"
|
||||
"No such file or directory")
|
||||
directory))))
|
||||
|
||||
;;;; ------------------------------------------------------------
|
||||
|
|
@ -3664,7 +3664,7 @@ so return the size on the remote host exactly. See RFC 3659."
|
|||
|
||||
(or (file-exists-p filename)
|
||||
(signal 'file-error
|
||||
(list "Copy file" "no such file or directory" filename)))
|
||||
(list "Copy file" "No such file or directory" filename)))
|
||||
|
||||
;; canonicalize newname if a directory.
|
||||
(if (file-directory-p newname)
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ file the tag was in."
|
|||
(save-excursion
|
||||
(or (visit-tags-table-buffer file)
|
||||
(signal 'file-error (list "Visiting tags table"
|
||||
"file does not exist"
|
||||
"No such file or directory"
|
||||
file)))
|
||||
;; Set FILE to the expanded name.
|
||||
(setq file tags-file-name)))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't downcase system diagnostics' first letters
|
||||
* url-dav.el (url-dav-delete-directory, url-dav-delete-file)
|
||||
(url-dav-directory-files): Keep diagnostics consistent with system's.
|
||||
|
||||
2014-12-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* url-http.el (url-http-parse-headers): `gnutls-available-p' is
|
||||
|
|
|
|||
|
|
@ -741,7 +741,7 @@ files in the collection as well."
|
|||
(if (and (not recursive)
|
||||
(/= (length props) 1))
|
||||
(signal 'file-error (list "Removing directory"
|
||||
"directory not empty" url)))))
|
||||
"Directory not empty" url)))))
|
||||
|
||||
(mapc (lambda (result)
|
||||
(setq status (plist-get (cdr result) 'DAV:status))
|
||||
|
|
@ -760,7 +760,7 @@ files in the collection as well."
|
|||
url lock-token
|
||||
(setq props (url-dav-get-properties url))
|
||||
(if (eq (plist-get (cdar props) 'DAV:resourcetype) 'DAV:collection)
|
||||
(signal 'file-error (list "Removing old name" "is a collection" url)))))
|
||||
(signal 'file-error (list "Removing old name" "Is a collection" url)))))
|
||||
|
||||
(mapc (lambda (result)
|
||||
(setq status (plist-get (cdr result) 'DAV:status))
|
||||
|
|
@ -787,7 +787,7 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
|
|||
|
||||
(when (and (= (length properties) 1)
|
||||
(not (url-dav-file-directory-p url)))
|
||||
(signal 'file-error (list "Opening directory" "not a directory" url)))
|
||||
(signal 'file-error (list "Opening directory" "Not a directory" url)))
|
||||
|
||||
(while properties
|
||||
(setq child-props (pop properties)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't downcase system diagnostics' first letters
|
||||
* fileio.c (report_file_errno): Don't downcase, and simplify.
|
||||
Fixes: bug#19642
|
||||
|
||||
Isolate NIL_IS_ZERO-assuming code better
|
||||
Suggested by Stefan Monnier in:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
|
||||
|
|
|
|||
38
src/fileio.c
38
src/fileio.c
|
|
@ -186,37 +186,17 @@ void
|
|||
report_file_errno (char const *string, Lisp_Object name, int errorno)
|
||||
{
|
||||
Lisp_Object data = CONSP (name) || NILP (name) ? name : list1 (name);
|
||||
Lisp_Object errstring;
|
||||
char *str;
|
||||
|
||||
synchronize_system_messages_locale ();
|
||||
str = strerror (errorno);
|
||||
errstring = code_convert_string_norecord (build_unibyte_string (str),
|
||||
Vlocale_coding_system, 0);
|
||||
char *str = strerror (errorno);
|
||||
Lisp_Object errstring
|
||||
= code_convert_string_norecord (build_unibyte_string (str),
|
||||
Vlocale_coding_system, 0);
|
||||
Lisp_Object errdata = Fcons (errstring, data);
|
||||
|
||||
while (1)
|
||||
switch (errorno)
|
||||
{
|
||||
case EEXIST:
|
||||
xsignal (Qfile_already_exists, Fcons (errstring, data));
|
||||
break;
|
||||
default:
|
||||
/* System error messages are capitalized. Downcase the initial
|
||||
unless it is followed by a slash. (The slash case caters to
|
||||
error messages that begin with "I/O" or, in German, "E/A".) */
|
||||
if (STRING_MULTIBYTE (errstring)
|
||||
&& ! EQ (Faref (errstring, make_number (1)), make_number ('/')))
|
||||
{
|
||||
int c;
|
||||
|
||||
str = SSDATA (errstring);
|
||||
c = STRING_CHAR ((unsigned char *) str);
|
||||
Faset (errstring, make_number (0), make_number (downcase (c)));
|
||||
}
|
||||
|
||||
xsignal (Qfile_error,
|
||||
Fcons (build_string (string), Fcons (errstring, data)));
|
||||
}
|
||||
if (errorno == EEXIST)
|
||||
xsignal (Qfile_already_exists, errdata);
|
||||
else
|
||||
xsignal (Qfile_error, Fcons (build_string (string), errdata));
|
||||
}
|
||||
|
||||
/* Signal a file-access failure that set errno. STRING describes the
|
||||
|
|
|
|||
Loading…
Reference in a new issue