Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
01537133
Commit
01537133
authored
Sep 10, 2005
by
Eli Zaretskii
Browse files
(init_buffer): Use get_current_dir_name.
parent
f78f1a83
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
28 deletions
+13
-28
src/buffer.c
src/buffer.c
+13
-28
No files found.
src/buffer.c
View file @
01537133
...
...
@@ -32,10 +32,6 @@ Boston, MA 02110-1301, USA. */
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>
...
...
@@ -54,6 +50,8 @@ extern int errno;
#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,7 +5113,6 @@ init_buffer_once ()
void
init_buffer ()
{
char buf[MAXPATHLEN + 1];
char *pwd;
struct stat dotstat, pwdstat;
Lisp_Object temp;
...
...
@@ -5138,37 +5135,23 @@ init_buffer ()
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
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 (
buf
);
if (!(IS_DIRECTORY_SEP (
buf
[rc - 1])))
rc = strlen (
pwd
);
if (!(IS_DIRECTORY_SEP (
pwd
[rc - 1])))
{
buf
[rc] = DIRECTORY_SEP;
buf
[rc + 1] = '\0';
pwd
[rc] = DIRECTORY_SEP;
pwd
[rc + 1] = '\0';
}
#endif /* not VMS */
current_buffer->directory = make_unibyte_string (
buf
, strlen (
buf
));
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,6 +5173,8 @@ init_buffer ()
temp = get_minibuffer (0);
XBUFFER (temp)->directory = current_buffer->directory;
free (pwd);
}
/* initialize the buffer routines */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment