[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/buffer.c
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] Changes to emacs/src/buffer.c |
Date: |
Sat, 10 Sep 2005 07:30:06 -0400 |
Index: emacs/src/buffer.c
diff -c emacs/src/buffer.c:1.488 emacs/src/buffer.c:1.489
*** emacs/src/buffer.c:1.488 Sun Aug 7 12:33:16 2005
--- emacs/src/buffer.c Sat Sep 10 11:30:06 2005
***************
*** 32,41 ****
extern int errno;
#endif
- #ifndef MAXPATHLEN
- /* in 4.1 [probably SunOS? -stef] , param.h fails to define this. */
- #define MAXPATHLEN 1024
- #endif /* not MAXPATHLEN */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
--- 32,37 ----
***************
*** 54,59 ****
--- 50,57 ----
#include "keymap.h"
#include "frame.h"
+ extern char * get_current_dir_name ();
+
struct buffer *current_buffer; /* the current buffer */
/* First buffer in chain of all buffers (in reverse order of creation).
***************
*** 5115,5121 ****
void
init_buffer ()
{
- char buf[MAXPATHLEN + 1];
char *pwd;
struct stat dotstat, pwdstat;
Lisp_Object temp;
--- 5113,5118 ----
***************
*** 5138,5174 ****
if (NILP (buffer_defaults.enable_multibyte_characters))
Fset_buffer_multibyte (Qnil);
! /* If PWD is accurate, use it instead of calling getwd. PWD is
! sometimes a nicer name, and using it may avoid a fatal error if a
! parent directory is searchable but not readable. */
! if ((pwd = getenv ("PWD")) != 0
! && (IS_DIRECTORY_SEP (*pwd) || (*pwd && IS_DEVICE_SEP (pwd[1])))
! && stat (pwd, &pwdstat) == 0
! && stat (".", &dotstat) == 0
! && dotstat.st_ino == pwdstat.st_ino
! && dotstat.st_dev == pwdstat.st_dev
! && strlen (pwd) < MAXPATHLEN)
! strcpy (buf, pwd);
! #ifdef HAVE_GETCWD
! else if (getcwd (buf, MAXPATHLEN+1) == 0)
! fatal ("`getcwd' failed: %s\n", strerror (errno));
! #else
! else if (getwd (buf) == 0)
! fatal ("`getwd' failed: %s\n", buf);
! #endif
#ifndef VMS
/* Maybe this should really use some standard subroutine
whose definition is filename syntax dependent. */
! rc = strlen (buf);
! if (!(IS_DIRECTORY_SEP (buf[rc - 1])))
{
! buf[rc] = DIRECTORY_SEP;
! buf[rc + 1] = '\0';
}
#endif /* not VMS */
! current_buffer->directory = make_unibyte_string (buf, strlen (buf));
if (! NILP (buffer_defaults.enable_multibyte_characters))
/* At this momemnt, we still don't know how to decode the
direcotry name. So, we keep the bytes in multibyte form so
--- 5135,5157 ----
if (NILP (buffer_defaults.enable_multibyte_characters))
Fset_buffer_multibyte (Qnil);
! pwd = get_current_dir_name ();
!
! if(!pwd)
! fatal ("`get_cwd' failed: %s\n", strerror (errno));
#ifndef VMS
/* Maybe this should really use some standard subroutine
whose definition is filename syntax dependent. */
! rc = strlen (pwd);
! if (!(IS_DIRECTORY_SEP (pwd[rc - 1])))
{
! pwd[rc] = DIRECTORY_SEP;
! pwd[rc + 1] = '\0';
}
#endif /* not VMS */
! current_buffer->directory = make_unibyte_string (pwd, strlen (pwd));
if (! NILP (buffer_defaults.enable_multibyte_characters))
/* At this momemnt, we still don't know how to decode the
direcotry name. So, we keep the bytes in multibyte form so
***************
*** 5190,5195 ****
--- 5173,5180 ----
temp = get_minibuffer (0);
XBUFFER (temp)->directory = current_buffer->directory;
+
+ free (pwd);
}
/* initialize the buffer routines */
- [Emacs-diffs] Changes to emacs/src/buffer.c,
Eli Zaretskii <=