+2007-10-10 Eli Zaretskii <eliz@gnu.org>
+
+ * dir.c (find_directory) [WINDOWS32]: Remove trailing slashes from
+ pathnames, with const strings.
+ * build_w32.bat [WINDOWS32]: If no config.h.W32 exists, create one
+ from the template (used for building from CVS, not a dist).
+
+2007-10-10 Paul Smith <psmith@gnu.org>
+
+ * make.h: Add a prototype for w32_kill() (change suggested by
+ Yongwei Wu <wuyongwei@gmail.com>).
+
2007-08-15 Paul Smith <psmith@gnu.org>
* doc/make.texi (GNU Free Documentation License): The fdl.texi
rem You should have received a copy of the GNU General Public License along\r
rem with this program. If not, see <http://www.gnu.org/licenses/>.\r
\r
+if exist config.h.W32 GoTo NotCVS\r
+sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.in > config.h.W32.sed\r
+echo s,%%PACKAGE%%,make,g >> config.h.W32.sed\r
+sed -f config.h.W32.sed config.h.W32.template > config.h.W32\r
+:NotCVS\r
if not exist config.h copy config.h.W32 config.h\r
cd w32\subproc\r
echo "Creating the subproc library"\r
/* The directory is not in the name hash table.
Find its device and inode numbers, and look it up by them. */
-#ifdef WINDOWS32
- /* Remove any trailing '\'. Windows32 stat fails even on valid
- directories if they end in '\'. */
- if (p[-1] == '\\')
- p[-1] = '\0';
-#endif
-
#ifdef VMS
r = vmsstat_dir (name, &st);
+#elif defined(WINDOWS32)
+ {
+ char tem[MAXPATHLEN], *tstart, *tend;
+
+ /* Remove any trailing slashes. Windows32 stat fails even on
+ valid directories if they end in a slash. */
+ memcpy (tem, name, p - name + 1);
+ tstart = tem;
+ if (tstart[1] == ':')
+ tstart += 2;
+ for (tend = tem + (p - name - 1);
+ tend > tstart && (*tend == '/' || *tend == '\\');
+ tend--)
+ *tend = '\0';
+
+ r = stat (tem, &st);
+ }
#else
EINTRLOOP (r, stat (name, &st));
#endif
-#ifdef WINDOWS32
- /* Put back the trailing '\'. If we don't, we're permanently
- truncating the value! */
- if (p[-1] == '\0')
- p[-1] = '\\';
-#endif
-
if (r < 0)
{
/* Couldn't stat the directory. Mark this by
# define kill(_pid,_sig) w32_kill((_pid),(_sig))
void sync_Path_environment (void);
-int kill (int pid, int sig);
+int w32_kill (int pid, int sig);
char *end_of_token_w32 (const char *s, char stopchar);
int find_and_set_default_shell (const char *token);