changeset 71818:086c76517b02

Include blockinput.h. (Fexpand_file_name, search_embedded_absfilename): Add BLOCK_INPUT around getpwnam. (search_embedded_absfilename): Remove spurious xfree.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Wed, 12 Jul 2006 08:37:45 +0000
parents fb57c1830788
children bbfb5030b0cc
files src/fileio.c
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c	Wed Jul 12 08:37:25 2006 +0000
+++ b/src/fileio.c	Wed Jul 12 08:37:45 2006 +0000
@@ -77,6 +77,7 @@
 #include "charset.h"
 #include "coding.h"
 #include "window.h"
+#include "blockinput.h"
 
 #ifdef WINDOWSNT
 #define NOMINMAX 1
@@ -1386,7 +1387,9 @@
 	  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 @@
 	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 @@
 	      /* 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;