Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
07f4d123
Commit
07f4d123
authored
Feb 03, 1994
by
Richard M. Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(init_cmdargs): Set Vinstallation_directory.
(syms_of_emacs): staticpro it.
parent
0736cafe
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
82 additions
and
0 deletions
+82
-0
src/emacs.c
src/emacs.c
+82
-0
No files found.
src/emacs.c
View file @
07f4d123
...
...
@@ -63,6 +63,10 @@ Lisp_Object Vinvocation_name;
/* The directory name from which Emacs was invoked. */
Lisp_Object
Vinvocation_directory
;
/* The directory name in which to find subdirs such as lisp and etc.
nil means get them only from PATH_LOADSEARCH. */
Lisp_Object
Vinstallation_directory
;
/* Hook run by `kill-emacs' before it does really anything. */
Lisp_Object
Vkill_emacs_hook
;
...
...
@@ -179,6 +183,7 @@ init_cmdargs (argc, argv, skip_args)
int
skip_args
;
{
register
int
i
;
Lisp_Object
name
,
dir
;
Vinvocation_name
=
Ffile_name_nondirectory
(
build_string
(
argv
[
0
]));
Vinvocation_directory
=
Ffile_name_directory
(
build_string
(
argv
[
0
]));
...
...
@@ -193,6 +198,81 @@ init_cmdargs (argc, argv, skip_args)
Vinvocation_directory
=
Ffile_name_directory
(
found
);
}
Vinstallation_directory
=
Qnil
;
if
(
!
NILP
(
Vinvocation_directory
))
{
dir
=
Vinvocation_directory
;
name
=
Fexpand_file_name
(
Vinvocation_name
,
dir
);
while
(
1
)
{
Lisp_Object
tem
,
lisp_exists
,
lib_src_exists
;
Lisp_Object
etc_exists
,
info_exists
;
/* See if dir contains subdirs for use by Emacs. */
tem
=
Fexpand_file_name
(
build_string
(
"lisp"
),
dir
);
lisp_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
lisp_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"lib-src"
),
dir
);
lib_src_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
lib_src_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"etc"
),
dir
);
etc_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
etc_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"info"
),
dir
);
info_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
info_exists
))
{
Vinstallation_directory
=
Ffile_name_as_directory
(
dir
);
break
;
}
}
}
}
/* See if dir's parent contains those subdirs. */
tem
=
Fexpand_file_name
(
build_string
(
"../lisp"
),
dir
);
lisp_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
lisp_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"../lib-src"
),
dir
);
lib_src_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
lib_src_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"../etc"
),
dir
);
etc_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
etc_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
"../info"
),
dir
);
info_exists
=
Ffile_exists_p
(
tem
);
if
(
!
NILP
(
info_exists
))
{
tem
=
Fexpand_file_name
(
build_string
(
".."
),
dir
);
Vinstallation_directory
=
Ffile_name_as_directory
(
tem
);
break
;
}
}
}
}
/* If the Emacs executable is actually a link,
next try the dir that the link points into. */
tem
=
Ffile_symlink_p
(
name
);
if
(
!
NILP
(
tem
))
{
name
=
tem
;
dir
=
Ffile_name_directory
(
name
);
}
else
break
;
}
}
Vcommand_line_args
=
Qnil
;
for
(
i
=
argc
-
1
;
i
>=
0
;
i
--
)
...
...
@@ -962,6 +1042,8 @@ and only if the Emacs executable is installed with setuid to permit\n\
it to change priority. (Emacs sets its uid back to the real uid.)"
);
emacs_priority
=
0
;
staticpro
(
&
Vinstallation_directory
);
Vinstallation_directory
=
Qnil
;
staticpro
(
&
Vinvocation_name
);
Vinvocation_name
=
Qnil
;
staticpro
(
&
Vinvocation_directory
);
...
...
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