]> git.eshelyaron.com Git - emacs.git/commitdiff
Include blockinput.h.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 12 Jul 2006 08:37:45 +0000 (08:37 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 12 Jul 2006 08:37:45 +0000 (08:37 +0000)
(Fexpand_file_name, search_embedded_absfilename): Add BLOCK_INPUT
around getpwnam.
(search_embedded_absfilename): Remove spurious xfree.

src/fileio.c

index b4fc934900b8ad48b52f0487828ee1b33bcdedc5..21e6fd3a86c5b971adc71acb5771513f318aa015 100644 (file)
@@ -77,6 +77,7 @@ extern int errno;
 #include "charset.h"
 #include "coding.h"
 #include "window.h"
+#include "blockinput.h"
 
 #ifdef WINDOWSNT
 #define NOMINMAX 1
@@ -1386,7 +1387,9 @@ See also the function `substitute-in-file-name'.  */)
          bcopy ((char *) nm, o, p - nm);
          o [p - nm] = 0;
 
+         BLOCK_INPUT;
          pw = (struct passwd *) getpwnam (o + 1);
+         UNBLOCK_INPUT;
          if (pw)
            {
              newdir = (unsigned char *) pw -> pw_dir;
@@ -1917,7 +1920,9 @@ See also the function `substitute-in-file-name'.")
        o[len] = 0;
 
        /* Look up the user name. */
+       BLOCK_INPUT;
        pw = (struct passwd *) getpwnam (o + 1);
+       UNBLOCK_INPUT;
        if (!pw)
          error ("\"%s\" isn't a registered user", o + 1);
 
@@ -2111,10 +2116,11 @@ search_embedded_absfilename (nm, endp)
              /* If we have ~user and `user' exists, discard
                 everything up to ~.  But if `user' does not exist, leave
                 ~user alone, it might be a literal file name.  */
-             if ((pw = getpwnam (o + 1)))
+             BLOCK_INPUT;
+             pw = getpwnam (o + 1);
+             UNBLOCK_INPUT;
+             if (pw)
                return p;
-             else
-               xfree (pw);
            }
          else
            return p;