Changeset 4080

Show
Ignore:
Timestamp:
05/14/06 02:28:52 (3 years ago)
Author:
fujii
Message:

Bug fix of file name conversion by unix-to-dos-filename and
dos-to-unix-filename with w32-downcase-file-names.

* w32.c (normalize_filename): Correct conversion to lower
case.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/ChangeLog.Meadow

    r4079 r4080  
     12006-05-14  Masayuki FUJII  <boochang@m4.kcn.ne.jp> 
     2 
     3        * w32.c (normalize_filename): Correct conversion to lower 
     4        case. 
     5 
    162006-05-13  MIYOSHI Masanori  <miyoshi@meadowy.org> 
    27 
  • trunk/src/w32.c

    r4076 r4080  
    652652  else 
    653653    { 
    654       LPTSTR pelem, element_start; 
    655       TCHAR path_element[MAX_PATH + 1]; 
    656  
    657       element_start = fp; 
    658       for (pelem = path_element; *fp;) 
    659         { 
     654      for (; *fp; fp = n_fp) 
     655        { 
     656          n_fp = CharNext (fp); 
    660657          if (IS_DIRECTORY_SEP (*fp)) 
    661             { 
    662               if (element_start && (pelem > path_element)) 
    663                 memcpy (element_start, path_element, 
    664                         (pelem - path_element) * sizeof (TCHAR)); 
    665  
    666               *fp = path_sep; 
    667               pelem = path_element; 
    668               element_start = fp; 
    669             } 
    670           else if (*fp == ':') 
    671             { 
    672               if (element_start && (pelem > path_element)) 
    673                 memcpy (element_start, path_element, 
    674                         (pelem - path_element) * sizeof (TCHAR)); 
    675  
    676               pelem = path_element; 
    677               element_start = fp; 
    678             } 
    679           else if (*fp >= 'A' && *fp <= 'Z') 
    680             { 
    681               *pelem = tolower (*fp); 
    682               pelem++, fp++; 
    683             } 
    684           else if (*fp >= 'a' && *fp <= 'z') 
    685             element_start = NULL; 
    686  
    687           n_fp = CharNext (fp); 
    688           while (n_fp > fp) 
    689             *pelem++ = *fp++; 
     658            *fp = path_sep; 
     659          else if (_istupper(*fp)) 
     660            *fp = _totlower(*fp); 
    690661        } 
    691662    }