# HG changeset patch # User Eli Zaretskii # Date 1220004435 0 # Node ID c37da6340b74ba24a9fe2ab398ab19eacbbb731a # Parent 8d9c25087de72164275dc0f8abda799ba6987463 (Fexpand_file_name): Copy argument `name' into local storage on all platforms, not just on DOS_NT. diff -r 8d9c25087de7 -r c37da6340b74 src/fileio.c --- a/src/fileio.c Fri Aug 29 08:18:41 2008 +0000 +++ b/src/fileio.c Fri Aug 29 10:07:15 2008 +0000 @@ -1149,11 +1149,10 @@ nm = SDATA (name); multibyte = STRING_MULTIBYTE (name); + /* Make a local copy of nm[] to protect it from GC in DECODE_FILE below. */ + nm = strcpy (alloca (strlen (nm) + 1), nm); + #ifdef DOS_NT - /* We will force directory separators to be either all \ or /, so make - a local copy to modify, even if there ends up being no change. */ - nm = strcpy (alloca (strlen (nm) + 1), nm); - /* Note if special escape prefix is present, but remove for now. */ if (nm[0] == '/' && nm[1] == ':') { @@ -1340,7 +1339,7 @@ } return name; #else /* not DOS_NT */ - if (nm == SDATA (name)) + if (strcmp (nm, SDATA (name)) == 0) return name; return make_specified_string (nm, -1, strlen (nm), multibyte); #endif /* not DOS_NT */