emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/dired.c


From: Ken Raeburn
Subject: [Emacs-diffs] Changes to emacs/src/dired.c
Date: Sun, 14 Jul 2002 20:00:47 -0400

Index: emacs/src/dired.c
diff -c emacs/src/dired.c:1.95 emacs/src/dired.c:1.96
*** emacs/src/dired.c:1.95      Thu Jul 11 10:10:00 2002
--- emacs/src/dired.c   Sun Jul 14 20:00:36 2002
***************
*** 188,194 ****
       unwind_protect to do so would be a pain.  */
   retry:
    
!   d = opendir (XSTRING (dirfilename)->data);
    if (d == NULL)
      report_file_error ("Opening directory", Fcons (directory, Qnil));
  
--- 188,194 ----
       unwind_protect to do so would be a pain.  */
   retry:
    
!   d = opendir (SDATA (dirfilename));
    if (d == NULL)
      report_file_error ("Opening directory", Fcons (directory, Qnil));
  
***************
*** 199,211 ****
                         Fcons (make_number (((unsigned long) d) >> 16),
                                make_number (((unsigned long) d) & 0xffff)));
  
!   directory_nbytes = STRING_BYTES (XSTRING (directory));
    re_match_object = Qt;
  
    /* Decide whether we need to add a directory separator.  */
  #ifndef VMS
    if (directory_nbytes == 0
!       || !IS_ANY_SEP (XSTRING (directory)->data[directory_nbytes - 1]))
      needsep = 1;
  #endif /* not VMS */
  
--- 199,211 ----
                         Fcons (make_number (((unsigned long) d) >> 16),
                                make_number (((unsigned long) d) & 0xffff)));
  
!   directory_nbytes = SBYTES (directory);
    re_match_object = Qt;
  
    /* Decide whether we need to add a directory separator.  */
  #ifndef VMS
    if (directory_nbytes == 0
!       || !IS_ANY_SEP (SREF (directory, directory_nbytes - 1)))
      needsep = 1;
  #endif /* not VMS */
  
***************
*** 237,243 ****
          /* Note: ENCODE_FILE can GC; it should protect its argument,
             though.  */
          name = DECODE_FILE (name);
!         len = STRING_BYTES (XSTRING (name));
  
          /* Now that we have unwind_protect in place, we might as well
               allow matching to be interrupted.  */
--- 237,243 ----
          /* Note: ENCODE_FILE can GC; it should protect its argument,
             though.  */
          name = DECODE_FILE (name);
!         len = SBYTES (name);
  
          /* Now that we have unwind_protect in place, we might as well
               allow matching to be interrupted.  */
***************
*** 245,251 ****
          QUIT;
  
          if (NILP (match)
!             || (0 <= re_search (bufp, XSTRING (name)->data, len, 0, len, 0)))
            wanted = 1;
  
          immediate_quit = 0;
--- 245,251 ----
          QUIT;
  
          if (NILP (match)
!             || (0 <= re_search (bufp, SDATA (name), len, 0, len, 0)))
            wanted = 1;
  
          immediate_quit = 0;
***************
*** 259,283 ****
                  int nchars;
  
                  fullname = make_uninit_multibyte_string (nbytes, nbytes);
!                 bcopy (XSTRING (directory)->data, XSTRING (fullname)->data,
                         directory_nbytes);
                  
                  if (needsep)
!                   XSTRING (fullname)->data[directory_nbytes] = DIRECTORY_SEP;
                  
!                 bcopy (XSTRING (name)->data,
!                        XSTRING (fullname)->data + directory_nbytes + needsep,
                         len);
                  
!                 nchars = chars_in_text (XSTRING (fullname)->data, nbytes);
  
                  /* Some bug somewhere.  */
                  if (nchars > nbytes)
                    abort ();
                      
!                 XSTRING (fullname)->size = nchars;
                  if (nchars == nbytes)
!                   SET_STRING_BYTES (XSTRING (fullname), -1);
                  
                  finalname = fullname;
                }
--- 259,283 ----
                  int nchars;
  
                  fullname = make_uninit_multibyte_string (nbytes, nbytes);
!                 bcopy (SDATA (directory), SDATA (fullname),
                         directory_nbytes);
                  
                  if (needsep)
!                   SREF (fullname, directory_nbytes) = DIRECTORY_SEP;
                  
!                 bcopy (SDATA (name),
!                        SDATA (fullname) + directory_nbytes + needsep,
                         len);
                  
!                 nchars = chars_in_text (SDATA (fullname), nbytes);
  
                  /* Some bug somewhere.  */
                  if (nchars > nbytes)
                    abort ();
                      
!                 SCHARS (fullname) = nchars;
                  if (nchars == nbytes)
!                   STRING_SET_UNIBYTE (fullname);
                  
                  finalname = fullname;
                }
***************
*** 519,525 ****
  
    for (passcount = !!all_flag; NILP (bestmatch) && passcount < 2; passcount++)
      {
!       d = opendir (XSTRING (Fdirectory_file_name (encoded_dir))->data);
        if (!d)
        report_file_error ("Opening directory", Fcons (dirname, Qnil));
  
--- 519,525 ----
  
    for (passcount = !!all_flag; NILP (bestmatch) && passcount < 2; passcount++)
      {
!       d = opendir (SDATA (Fdirectory_file_name (encoded_dir)));
        if (!d)
        report_file_error ("Opening directory", Fcons (dirname, Qnil));
  
***************
*** 542,550 ****
          if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
            goto quit;
          if (! DIRENTRY_NONEMPTY (dp)
!             || len < XSTRING (encoded_file)->size
!             || 0 <= scmp (dp->d_name, XSTRING (encoded_file)->data,
!                           XSTRING (encoded_file)->size))
            continue;
  
            if (file_name_completion_stat (encoded_dir, dp, &st) < 0)
--- 542,550 ----
          if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
            goto quit;
          if (! DIRENTRY_NONEMPTY (dp)
!             || len < SCHARS (encoded_file)
!             || 0 <= scmp (dp->d_name, SDATA (encoded_file),
!                           SCHARS (encoded_file)))
            continue;
  
            if (file_name_completion_stat (encoded_dir, dp, &st) < 0)
***************
*** 561,567 ****
                 actually in the way in a directory contains only one file.  */
              if (!passcount && TRIVIAL_DIRECTORY_ENTRY (dp->d_name))
                continue;
!             if (!passcount && len > XSTRING (encoded_file)->size)
                /* Ignore directories if they match an element of
                   completion-ignored-extensions which ends in a slash.  */
                for (tem = Vcompletion_ignored_extensions;
--- 561,567 ----
                 actually in the way in a directory contains only one file.  */
              if (!passcount && TRIVIAL_DIRECTORY_ENTRY (dp->d_name))
                continue;
!             if (!passcount && len > SCHARS (encoded_file))
                /* Ignore directories if they match an element of
                   completion-ignored-extensions which ends in a slash.  */
                for (tem = Vcompletion_ignored_extensions;
***************
*** 575,584 ****
                    /* Need to encode ELT, since scmp compares unibyte
                       strings only.  */
                    elt = ENCODE_FILE (elt);
!                   elt_len = XSTRING (elt)->size - 1; /* -1 for trailing / */
                    if (elt_len <= 0)
                      continue;
!                   p1 = XSTRING (elt)->data;
                    if (p1[elt_len] != '/')
                      continue;
                    skip = len - elt_len;
--- 575,584 ----
                    /* Need to encode ELT, since scmp compares unibyte
                       strings only.  */
                    elt = ENCODE_FILE (elt);
!                   elt_len = SCHARS (elt) - 1; /* -1 for trailing / */
                    if (elt_len <= 0)
                      continue;
!                   p1 = SDATA (elt);
                    if (p1[elt_len] != '/')
                      continue;
                    skip = len - elt_len;
***************
*** 594,600 ****
              {
              /* Compare extensions-to-be-ignored against end of this file name 
*/
              /* if name is not an exact match against specified string */
!             if (!passcount && len > XSTRING (encoded_file)->size)
                /* and exit this for loop if a match is found */
                for (tem = Vcompletion_ignored_extensions;
                     CONSP (tem); tem = XCDR (tem))
--- 594,600 ----
              {
              /* Compare extensions-to-be-ignored against end of this file name 
*/
              /* if name is not an exact match against specified string */
!             if (!passcount && len > SCHARS (encoded_file))
                /* and exit this for loop if a match is found */
                for (tem = Vcompletion_ignored_extensions;
                     CONSP (tem); tem = XCDR (tem))
***************
*** 604,615 ****
                    /* Need to encode ELT, since scmp compares unibyte
                       strings only.  */
                    elt = ENCODE_FILE (elt);
!                   skip = len - XSTRING (elt)->size;
                    if (skip < 0) continue;
  
                    if (0 <= scmp (dp->d_name + skip,
!                                  XSTRING (elt)->data,
!                                  XSTRING (elt)->size))
                      continue;
                    break;
                  }
--- 604,615 ----
                    /* Need to encode ELT, since scmp compares unibyte
                       strings only.  */
                    elt = ENCODE_FILE (elt);
!                   skip = len - SCHARS (elt);
                    if (skip < 0) continue;
  
                    if (0 <= scmp (dp->d_name + skip,
!                                  SDATA (elt),
!                                  SCHARS (elt)))
                      continue;
                    break;
                  }
***************
*** 661,673 ****
              else
                {
                  bestmatch = name;
!                 bestmatchsize = XSTRING (name)->size;
                }
            }
          else
            {
              compare = min (bestmatchsize, len);
!             p1 = XSTRING (bestmatch)->data;
              p2 = (unsigned char *) dp->d_name;
              matchsize = scmp(p1, p2, compare);
              if (matchsize < 0)
--- 661,673 ----
              else
                {
                  bestmatch = name;
!                 bestmatchsize = SCHARS (name);
                }
            }
          else
            {
              compare = min (bestmatchsize, len);
!             p1 = SDATA (bestmatch);
              p2 = (unsigned char *) dp->d_name;
              matchsize = scmp(p1, p2, compare);
              if (matchsize < 0)
***************
*** 682,688 ****
                     but BESTMATCH is not (it is too long).  */
                  if ((matchsize == len
                       && matchsize + !!directoryp 
!                         < XSTRING (bestmatch)->size)
                      ||
                      /* If there is no exact match ignoring case,
                         prefer a match that does not change the case
--- 682,688 ----
                     but BESTMATCH is not (it is too long).  */
                  if ((matchsize == len
                       && matchsize + !!directoryp 
!                         < SCHARS (bestmatch))
                      ||
                      /* If there is no exact match ignoring case,
                         prefer a match that does not change the case
***************
*** 695,703 ****
                      (((matchsize == len)
                        ==
                        (matchsize + !!directoryp 
!                        == XSTRING (bestmatch)->size))
!                      && !bcmp (p2, XSTRING (encoded_file)->data, XSTRING 
(encoded_file)->size)
!                      && bcmp (p1, XSTRING (encoded_file)->data, XSTRING 
(encoded_file)->size)))
                    {
                      bestmatch = make_string (dp->d_name, len);
                      if (directoryp)
--- 695,703 ----
                      (((matchsize == len)
                        ==
                        (matchsize + !!directoryp 
!                        == SCHARS (bestmatch)))
!                      && !bcmp (p2, SDATA (encoded_file), SCHARS 
(encoded_file))
!                      && bcmp (p1, SDATA (encoded_file), SCHARS 
(encoded_file))))
                    {
                      bestmatch = make_string (dp->d_name, len);
                      if (directoryp)
***************
*** 727,733 ****
        bestmatch = DECODE_FILE (bestmatch);
        return bestmatch;
      }
!   if (matchcount == 1 && bestmatchsize == XSTRING (file)->size)
      return Qt;
    bestmatch = Fsubstring (bestmatch, make_number (0),
                          make_number (bestmatchsize));
--- 727,733 ----
        bestmatch = DECODE_FILE (bestmatch);
        return bestmatch;
      }
!   if (matchcount == 1 && bestmatchsize == SCHARS (file))
      return Qt;
    bestmatch = Fsubstring (bestmatch, make_number (0),
                          make_number (bestmatchsize));
***************
*** 777,783 ****
       struct stat *st_addr;
  {
    int len = NAMLEN (dp);
!   int pos = XSTRING (dirname)->size;
    int value;
    char *fullname = (char *) alloca (len + pos + 2);
  
--- 777,783 ----
       struct stat *st_addr;
  {
    int len = NAMLEN (dp);
!   int pos = SCHARS (dirname);
    int value;
    char *fullname = (char *) alloca (len + pos + 2);
  
***************
*** 794,800 ****
  #endif /* __DJGPP__ > 1 */
  #endif /* MSDOS */
  
!   bcopy (XSTRING (dirname)->data, fullname, pos);
  #ifndef VMS
    if (!IS_DIRECTORY_SEP (fullname[pos - 1]))
      fullname[pos++] = DIRECTORY_SEP;
--- 794,800 ----
  #endif /* __DJGPP__ > 1 */
  #endif /* MSDOS */
  
!   bcopy (SDATA (dirname), fullname, pos);
  #ifndef VMS
    if (!IS_DIRECTORY_SEP (fullname[pos - 1]))
      fullname[pos++] = DIRECTORY_SEP;
***************
*** 847,853 ****
    filename = Fexpand_file_name (filename, Qnil);
    fab      = cc$rms_fab;
    xabfhc   = cc$rms_xabfhc;
!   fab.fab$l_fna = XSTRING (filename)->data;
    fab.fab$b_fns = strlen (fab.fab$l_fna);
    fab.fab$l_xab = (char *) &xabfhc;
    status = sys$open (&fab, 0, 0);
--- 847,853 ----
    filename = Fexpand_file_name (filename, Qnil);
    fab      = cc$rms_fab;
    xabfhc   = cc$rms_xabfhc;
!   fab.fab$l_fna = SDATA (filename);
    fab.fab$b_fns = strlen (fab.fab$l_fna);
    fab.fab$l_xab = (char *) &xabfhc;
    status = sys$open (&fab, 0, 0);
***************
*** 916,922 ****
  
    encoded = ENCODE_FILE (filename);
  
!   if (lstat (XSTRING (encoded)->data, &s) < 0)
      return Qnil;
  
    switch (s.st_mode & S_IFMT)
--- 916,922 ----
  
    encoded = ENCODE_FILE (filename);
  
!   if (lstat (SDATA (encoded), &s) < 0)
      return Qnil;
  
    switch (s.st_mode & S_IFMT)
***************
*** 946,952 ****
    dirname = Ffile_name_directory (filename);
    if (! NILP (dirname))
      encoded = ENCODE_FILE (dirname);
!   if (! NILP (dirname) && stat (XSTRING (encoded)->data, &sdir) == 0)
      values[9] = (sdir.st_gid != s.st_gid) ? Qt : Qnil;
    else                                        /* if we can't tell, assume 
worst */
      values[9] = Qt;
--- 946,952 ----
    dirname = Ffile_name_directory (filename);
    if (! NILP (dirname))
      encoded = ENCODE_FILE (dirname);
!   if (! NILP (dirname) && stat (SDATA (encoded), &sdir) == 0)
      values[9] = (sdir.st_gid != s.st_gid) ? Qt : Qnil;
    else                                        /* if we can't tell, assume 
worst */
      values[9] = Qt;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]