Subject: bug#8093: closed (Re: bug#8093: etags: Downcase drive letters, for consistency with Emacs proper.)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 22 Feb 2011 17:40:03 +0000

Your bug report

#8093: etags: Downcase drive letters, for consistency with Emacs proper.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
8093: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8093
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#8093: etags: Downcase drive letters, for consistency with Emacs proper.
From: Paul Eggert <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: Francesco Potortì <[email-masked]>, [email-masked]
Date: Tue, 22 Feb 2011 09:39:12 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On 02/22/2011 09:33 AM, Eli Zaretskii wrote:
> Thanks, Paul.

You're welcome, and I installed it as revno 103385
on the trunk.

Subject: etags: Downcase drive letters, for consistency with Emacs proper.
From: Paul Eggert <[email-masked]>
To: [email-masked]
Date: Mon, 21 Feb 2011 22:12:04 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Emacs downcases drive letters when canonicalizing file names on
Microsoft Windows, but etags upcases them.  etags should be consistent
with Emacs.  I found this problem by code inspection, because there's
a macro 'upcase' that normally isn't used in etags.c; its only use is
in the section of code that upcases drive letters.  Here's a proposed
patch.

2011-02-21  Paul Eggert  <[email-masked]>

	etags: Downcase drive letters, for consistency with Emacs proper.
	* etags.c (upcase): Remove; no longer used.
	(canonicalize_filename): Downcase drive letters.

--- lib-src/etags.c	2011-02-21 16:47:08.883947000 -0800
+++ /u/cs/fac/eggert/junk/etags.c	2011-02-21 21:21:04.074974000 -0800
@@ -239,7 +239,6 @@ If you want regular expression support,
  #define ISLOWER(c)	islower (CHAR(c))
  
  #define lowcase(c)	tolower (CHAR(c))
-#define upcase(c)	toupper (CHAR(c))

  /*
@@ -6638,7 +6637,7 @@ filename_is_absolute (char *fn)
  	  );
  }
  
-/* Upcase DOS drive letter and collapse separators into single slashes.
+/* Downcase DOS drive letter and collapse separators into single slashes.
     Works in place. */
  static void
  canonicalize_filename (register char *fn)
@@ -6648,8 +6647,8 @@ canonicalize_filename (register char *fn
  
  #ifdef DOS_NT
    /* Canonicalize drive letter case.  */
-  if (fn[0] != '\0' && fn[1] == ':' && ISLOWER (fn[0]))
-    fn[0] = upcase (fn[0]);
+  if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0]))
+    fn[0] = downcase (fn[0]);
  
    sep = '\\';
  #endif