aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2015-01-21 20:21:45 -0800
committerPaul Eggert2015-01-21 20:29:42 -0800
commit8dd58a2d1fedaa16573bc67e986dc2014620c681 (patch)
tree14d570f1ebf867a8feb07cfe3d3a385989643e1f /src
parent938bca8e4141f5f96497f9be26b0ea0bb90f40cd (diff)
downloademacs-8dd58a2d1fedaa16573bc67e986dc2014620c681.tar.gz
emacs-8dd58a2d1fedaa16573bc67e986dc2014620c681.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/fileio.c40
2 files changed, 14 insertions, 30 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4c5b2a1397a..8f23dd3833e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
12015-01-22 Paul Eggert <eggert@cs.ucla.edu> 12015-01-22 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Don't downcase system diagnostics' first letters
4 * fileio.c (report_file_errno): Don't downcase, and simplify.
5 Fixes: bug#19642
6
3 Isolate NIL_IS_ZERO-assuming code better 7 Isolate NIL_IS_ZERO-assuming code better
4 Suggested by Stefan Monnier in: 8 Suggested by Stefan Monnier in:
5 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html 9 http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
diff --git a/src/fileio.c b/src/fileio.c
index ff6720d4ae2..d0fd08a742e 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -186,37 +186,17 @@ void
186report_file_errno (char const *string, Lisp_Object name, int errorno) 186report_file_errno (char const *string, Lisp_Object name, int errorno)
187{ 187{
188 Lisp_Object data = CONSP (name) || NILP (name) ? name : list1 (name); 188 Lisp_Object data = CONSP (name) || NILP (name) ? name : list1 (name);
189 Lisp_Object errstring;
190 char *str;
191
192 synchronize_system_messages_locale (); 189 synchronize_system_messages_locale ();
193 str = strerror (errorno); 190 char *str = strerror (errorno);
194 errstring = code_convert_string_norecord (build_unibyte_string (str), 191 Lisp_Object errstring
195 Vlocale_coding_system, 0); 192 = code_convert_string_norecord (build_unibyte_string (str),
196 193 Vlocale_coding_system, 0);
197 while (1) 194 Lisp_Object errdata = Fcons (errstring, data);
198 switch (errorno) 195
199 { 196 if (errorno == EEXIST)
200 case EEXIST: 197 xsignal (Qfile_already_exists, errdata);
201 xsignal (Qfile_already_exists, Fcons (errstring, data)); 198 else
202 break; 199 xsignal (Qfile_error, Fcons (build_string (string), errdata));
203 default:
204 /* System error messages are capitalized. Downcase the initial
205 unless it is followed by a slash. (The slash case caters to
206 error messages that begin with "I/O" or, in German, "E/A".) */
207 if (STRING_MULTIBYTE (errstring)
208 && ! EQ (Faref (errstring, make_number (1)), make_number ('/')))
209 {
210 int c;
211
212 str = SSDATA (errstring);
213 c = STRING_CHAR ((unsigned char *) str);
214 Faset (errstring, make_number (0), make_number (downcase (c)));
215 }
216
217 xsignal (Qfile_error,
218 Fcons (build_string (string), Fcons (errstring, data)));
219 }
220} 200}
221 201
222/* Signal a file-access failure that set errno. STRING describes the 202/* Signal a file-access failure that set errno. STRING describes the