Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-Id: <4.2.2.20000608203034.00b4fd20@mailhost> X-Sender: paulson AT mailhost X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.2 Date: Thu, 08 Jun 2000 20:30:48 -0700 To: cygwin AT sourceware DOT cygnus DOT com From: John Paulson Subject: Patch for path.cc Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Problem: At work we develop using cygwin. Some source is inhouse, other comes from outside. Most source has "/" as the path delimiter. However, some outside source has "\" in various places (such as #include). Cygwin prior to 1.1 (b20 and 99r1) handled this properly. Cygwin 1.1 and later don't; the "\" forces interpretation as an MS-DOS path and the "/" aren't properly translated. We don't want to edit files to convert "\" to "/"; that is not acceptable. Solution: This change will treat a path as an MS-DOS path if one of two conditions are true: The path has a ":" character in it, or The path has a "\" character and no "/" character. The previous test was if either ":" or "\" was present. ChangeLog entry 2000-06-08 munch paulson * path.cc (mount_info::conv_to_win32_path): if both '\' and '/' in path then treat as posix path, not win. Patch *** path.cc.orig Thu Jun 8 19:32:08 2000 --- path.cc Thu Jun 8 19:40:04 2000 *************** *** 942,950 **** if (dst == NULL) goto out; /* Sanity check. */ ! /* An MS-DOS spec has either a : or a \. If this is found, short circuit most of the rest of this function. */ ! if (strpbrk (src_path, ":\\") != NULL) { debug_printf ("%s already win32", src_path); rc = normalize_win32_path (current_directory_name, src_path, dst); --- 942,951 ---- if (dst == NULL) goto out; /* Sanity check. */ ! /* An MS-DOS spec has either a : or a \ and no /. If this is found, short circuit most of the rest of this function. */ ! if (strchr (src_path, ':') != NULL ! || (strchr (src_path, '\\') != NULL && strchr (src_path, '/') == NULL)) { debug_printf ("%s already win32", src_path); rc = normalize_win32_path (current_directory_name, src_path, dst); ---------------------------- John Paulson PowerTV, Inc. Tel: 408/777-4769 Fax: 408/777-0176 mailto:paulson AT powertv DOT com http://www.powertv.com/ -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com