GNU bug report logs - #12945
Assume POSIX 1003.1-1988 or later for unistd.h.

Previous Next

Package: emacs;

Reported by: Paul Eggert <eggert <at> cs.ucla.edu>

Date: Tue, 20 Nov 2012 17:41:02 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 12945 <at> debbugs.gnu.org
Subject: bug#12945: Assume POSIX 1003.1-1988 or later for unistd.h.
Date: Wed, 21 Nov 2012 05:40:30 +0200
> Date: Tue, 20 Nov 2012 12:51:00 -0800
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> CC: 12945 <at> debbugs.gnu.org
> 
> > Here's the patch for that:
> 
> Thanks.  Won't we need patches elswhere to match?

Some, but not all.  See below.

> Also, how is this related to the "#define getcwd _getcwd" in
> lib-src/ntlib.h?

We might need that for MSVC.  But that's a different issue, since
lib-src programs don't use any code in w32.c.

> --- nt/config.nt	2012-11-17 23:58:56 +0000
> +++ nt/config.nt	2012-11-20 20:44:17 +0000
> @@ -411,11 +411,10 @@
>  /* Define to 1 if you have the `getaddrinfo' function. */
>  #undef HAVE_GETADDRINFO
>  
> -/* Define to 1 if you have the `getcwd' function.
> -   If you think about defining HAVE_GETCWD, don't: the alternative
> -   getwd is redefined on w32.c, and does not really return the current
> +/* Define to 1 if you have the `getcwd' function.  This is
> +   defined on w32.c, and does not really return the current
>     directory, to get the desired results elsewhere in Emacs.  */
> -#undef HAVE_GETCWD
> +#define HAVE_GETCWD 1

This should be removed entirely, since there are no HAVE_GETCWD tests
anymore, right?

> === modified file 'src/msdos.c'
> --- src/msdos.c	2012-11-05 03:18:32 +0000
> +++ src/msdos.c	2012-11-20 20:44:17 +0000
> @@ -3784,7 +3784,7 @@
>    Lisp_Object cmd;
>  
>    /* Get current directory as MSDOS cwd is not per-process.  */
> -  getwd (oldwd);
> +  getcwd (oldwd, sizeof oldwd);

MSDOS is unrelated.  This can be changed or left alone.

> --- src/sysdep.c	2012-11-20 17:33:00 +0000
> +++ src/sysdep.c	2012-11-20 20:44:17 +0000
> @@ -101,7 +101,6 @@
>  #define _P_WAIT 0
>  int _cdecl _spawnlp (int, const char *, const char *, ...);
>  int _cdecl _getpid (void);
> -extern char *getwd (char *);
>  #endif
>  
>  #include "syssignal.h"
> @@ -504,7 +503,7 @@
>        const char *sh = 0;
>  
>  #ifdef DOS_NT    /* MW, Aug 1993 */
> -      getwd (oldwd);
> +      getcwd (oldwd, sizeof oldwd);
>        if (sh == 0)
>  	sh = (char *) egetenv ("SUSPEND");	/* KFS, 1994-12-14 */
>  #endif

This is needed.

> === modified file 'src/w32.h'
> --- src/w32.h	2012-10-17 19:02:44 +0000
> +++ src/w32.h	2012-11-20 20:44:17 +0000
> @@ -163,7 +163,7 @@
>  extern void register_child (int, int);
>  
>  extern void sys_sleep (int);
> -extern char *getwd (char *);
> +extern char *getcwd (char *, size_t);
>  extern int sys_link (const char *, const char *);

This isn't needed; the prototype for getcwd is on a system header.
The prototype for getwd should be removed.




This bug report was last modified 12 years and 244 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.