annotate man/xemacs/startup.texi @ 4981:4aebb0131297

Cleanups/renaming of EXTERNAL_TO_C_STRING and friends -------------------- ChangeLog entries follow: -------------------- modules/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * postgresql/postgresql.c: * postgresql/postgresql.c (CHECK_LIVE_CONNECTION): * postgresql/postgresql.c (Fpq_connectdb): * postgresql/postgresql.c (Fpq_connect_start): * postgresql/postgresql.c (Fpq_lo_import): * postgresql/postgresql.c (Fpq_lo_export): * ldap/eldap.c (Fldap_open): * ldap/eldap.c (Fldap_search_basic): * ldap/eldap.c (Fldap_add): * ldap/eldap.c (Fldap_modify): * ldap/eldap.c (Fldap_delete): * canna/canna_api.c (Fcanna_initialize): * canna/canna_api.c (Fcanna_store_yomi): * canna/canna_api.c (Fcanna_parse): * canna/canna_api.c (Fcanna_henkan_begin): EXTERNAL_TO_C_STRING returns its argument instead of storing it in a parameter, and is renamed to EXTERNAL_TO_ITEXT. Similar things happen to related macros. See entry in src/ChangeLog. More Mule-izing of postgresql.c. Extract out common code between `pq-connectdb' and `pq-connect-start'. Fix places that signal an error string using a formatted string to instead follow the standard and have a fixed reason followed by the particular error message stored as one of the frobs. src/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * console-msw.c (write_string_to_mswindows_debugging_output): * console-msw.c (Fmswindows_message_box): * console-x.c (x_perhaps_init_unseen_key_defaults): * console.c: * database.c (dbm_get): * database.c (dbm_put): * database.c (dbm_remove): * database.c (berkdb_get): * database.c (berkdb_put): * database.c (berkdb_remove): * database.c (Fopen_database): * device-gtk.c (gtk_init_device): * device-msw.c (msprinter_init_device_internal): * device-msw.c (msprinter_default_printer): * device-msw.c (msprinter_init_device): * device-msw.c (sync_printer_with_devmode): * device-msw.c (Fmsprinter_select_settings): * device-x.c (sanity_check_geometry_resource): * device-x.c (Dynarr_add_validified_lisp_string): * device-x.c (x_init_device): * device-x.c (Fx_put_resource): * device-x.c (Fx_valid_keysym_name_p): * device-x.c (Fx_set_font_path): * dialog-msw.c (push_lisp_string_as_unicode): * dialog-msw.c (handle_directory_dialog_box): * dialog-msw.c (handle_file_dialog_box): * dialog-x.c (dbox_descriptor_to_widget_value): * editfns.c (Fformat_time_string): * editfns.c (Fencode_time): * editfns.c (Fset_time_zone_rule): * emacs.c (make_argc_argv): * emacs.c (Fdump_emacs): * emodules.c (emodules_load): * eval.c: * eval.c (maybe_signal_error_1): * event-msw.c (Fdde_alloc_advise_item): * event-msw.c (mswindows_dde_callback): * event-msw.c (mswindows_wnd_proc): * fileio.c (report_error_with_errno): * fileio.c (Fsysnetunam): * fileio.c (Fdo_auto_save): * font-mgr.c (extract_fcapi_string): * font-mgr.c (Ffc_config_app_font_add_file): * font-mgr.c (Ffc_config_app_font_add_dir): * font-mgr.c (Ffc_config_filename): * frame-gtk.c (gtk_set_frame_text_value): * frame-gtk.c (gtk_create_widgets): * frame-msw.c (mswindows_init_frame_1): * frame-msw.c (mswindows_set_title_from_ibyte): * frame-msw.c (msprinter_init_frame_3): * frame-x.c (x_set_frame_text_value): * frame-x.c (x_set_frame_properties): * frame-x.c (start_drag_internal_1): * frame-x.c (x_cde_transfer_callback): * frame-x.c (x_create_widgets): * glyphs-eimage.c (my_jpeg_output_message): * glyphs-eimage.c (jpeg_instantiate): * glyphs-eimage.c (gif_instantiate): * glyphs-eimage.c (png_instantiate): * glyphs-eimage.c (tiff_instantiate): * glyphs-gtk.c (xbm_instantiate_1): * glyphs-gtk.c (gtk_xbm_instantiate): * glyphs-gtk.c (gtk_xpm_instantiate): * glyphs-gtk.c (gtk_xface_instantiate): * glyphs-gtk.c (cursor_font_instantiate): * glyphs-gtk.c (gtk_redisplay_widget): * glyphs-gtk.c (gtk_widget_instantiate_1): * glyphs-gtk.c (gtk_add_tab_item): * glyphs-msw.c (mswindows_xpm_instantiate): * glyphs-msw.c (bmp_instantiate): * glyphs-msw.c (mswindows_resource_instantiate): * glyphs-msw.c (xbm_instantiate_1): * glyphs-msw.c (mswindows_xbm_instantiate): * glyphs-msw.c (mswindows_xface_instantiate): * glyphs-msw.c (mswindows_redisplay_widget): * glyphs-msw.c (mswindows_widget_instantiate): * glyphs-msw.c (add_tree_item): * glyphs-msw.c (add_tab_item): * glyphs-msw.c (mswindows_combo_box_instantiate): * glyphs-msw.c (mswindows_widget_query_string_geometry): * glyphs-x.c (x_locate_pixmap_file): * glyphs-x.c (xbm_instantiate_1): * glyphs-x.c (x_xbm_instantiate): * glyphs-x.c (extract_xpm_color_names): * glyphs-x.c (x_xpm_instantiate): * glyphs-x.c (x_xface_instantiate): * glyphs-x.c (autodetect_instantiate): * glyphs-x.c (safe_XLoadFont): * glyphs-x.c (cursor_font_instantiate): * glyphs-x.c (x_redisplay_widget): * glyphs-x.c (Fchange_subwindow_property): * glyphs-x.c (x_widget_instantiate): * glyphs-x.c (x_tab_control_redisplay): * glyphs.c (pixmap_to_lisp_data): * gui-x.c (menu_separator_style_and_to_external): * gui-x.c (add_accel_and_to_external): * gui-x.c (button_item_to_widget_value): * hpplay.c (player_error_internal): * hpplay.c (play_sound_file): * hpplay.c (play_sound_data): * intl.c (Fset_current_locale): * lisp.h: * menubar-gtk.c (gtk_xemacs_set_accel_keys): * menubar-msw.c (populate_menu_add_item): * menubar-msw.c (populate_or_checksum_helper): * menubar-x.c (menu_item_descriptor_to_widget_value_1): * nt.c (init_user_info): * nt.c (get_long_basename): * nt.c (nt_get_resource): * nt.c (init_mswindows_environment): * nt.c (get_cached_volume_information): * nt.c (mswindows_readdir): * nt.c (read_unc_volume): * nt.c (mswindows_stat): * nt.c (mswindows_getdcwd): * nt.c (mswindows_executable_type): * nt.c (Fmswindows_short_file_name): * ntplay.c (nt_play_sound_file): * objects-gtk.c: * objects-gtk.c (gtk_valid_color_name_p): * objects-gtk.c (gtk_initialize_font_instance): * objects-gtk.c (gtk_font_list): * objects-msw.c (font_enum_callback_2): * objects-msw.c (parse_font_spec): * objects-x.c (x_parse_nearest_color): * objects-x.c (x_valid_color_name_p): * objects-x.c (x_initialize_font_instance): * objects-x.c (x_font_instance_truename): * objects-x.c (x_font_list): * objects-xlike-inc.c (XFUN): * objects-xlike-inc.c (xft_find_charset_font): * process-nt.c (mswindows_report_winsock_error): * process-nt.c (nt_create_process): * process-nt.c (get_internet_address): * process-nt.c (nt_open_network_stream): * process-unix.c: * process-unix.c (allocate_pty): * process-unix.c (get_internet_address): * process-unix.c (unix_canonicalize_host_name): * process-unix.c (unix_open_network_stream): * realpath.c: * select-common.h (lisp_data_to_selection_data): * select-gtk.c (symbol_to_gtk_atom): * select-gtk.c (atom_to_symbol): * select-msw.c (symbol_to_ms_cf): * select-msw.c (mswindows_register_selection_data_type): * select-x.c (symbol_to_x_atom): * select-x.c (x_atom_to_symbol): * select-x.c (hack_motif_clipboard_selection): * select-x.c (Fx_store_cutbuffer_internal): * sound.c (Fplay_sound_file): * sound.c (Fplay_sound): * sound.h (sound_perror): * sysdep.c: * sysdep.c (qxe_allocating_getcwd): * sysdep.c (qxe_execve): * sysdep.c (copy_in_passwd): * sysdep.c (qxe_getpwnam): * sysdep.c (qxe_ctime): * sysdll.c (dll_open): * sysdll.c (dll_function): * sysdll.c (dll_variable): * sysdll.c (search_linked_libs): * sysdll.c (dll_error): * sysfile.h: * sysfile.h (PATHNAME_CONVERT_OUT_TSTR): * sysfile.h (PATHNAME_CONVERT_OUT_UTF_8): * sysfile.h (PATHNAME_CONVERT_OUT): * sysfile.h (LISP_PATHNAME_CONVERT_OUT): * syswindows.h (ITEXT_TO_TSTR): * syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR): * syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT): * syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN): * syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR): * text.h: * text.h (eicpy_ext_len): * text.h (enum new_dfc_src_type): * text.h (EXTERNAL_TO_ITEXT): * text.h (GET_STRERROR): * tooltalk.c (check_status): * tooltalk.c (Fadd_tooltalk_message_arg): * tooltalk.c (Fadd_tooltalk_pattern_attribute): * tooltalk.c (Fadd_tooltalk_pattern_arg): * win32.c (tstr_to_local_file_format): * win32.c (mswindows_lisp_error_1): * win32.c (mswindows_report_process_error): * win32.c (Fmswindows_shell_execute): * win32.c (mswindows_read_link_1): Changes involving external/internal format conversion, mostly code cleanup and renaming. 1. Eliminate the previous macros like LISP_STRING_TO_EXTERNAL that stored its result in a parameter. The new version of LISP_STRING_TO_EXTERNAL returns its result through the return value, same as the previous NEW_LISP_STRING_TO_EXTERNAL. Use the new-style macros throughout the code. 2. Rename C_STRING_TO_EXTERNAL and friends to ITEXT_TO_EXTERNAL, in keeping with overall naming rationalization involving Itext and related types. Macros involved in previous two: EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC LISP_STRING_TO_EXTERNAL LISP_STRING_TO_EXTERNAL_MALLOC LISP_STRING_TO_TSTR C_STRING_TO_TSTR -> ITEXT_TO_TSTR TSTR_TO_C_STRING -> TSTR_TO_ITEXT The following four still return their values through parameters, since they have more than one value to return: C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL LISP_STRING_TO_SIZED_EXTERNAL C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC LISP_STRING_TO_SIZED_EXTERNAL_MALLOC Sometimes additional casts had to be inserted, since the old macros played strange games and completely defeated the type system of the store params. 3. Rewrite many places where direct calls to TO_EXTERNAL_FORMAT occurred with calls to one of the convenience macros listed above, or to make_extstring(). 4. Eliminate SIZED_C_STRING macros (they were hardly used, anyway) and use a direct call to TO_EXTERNAL_FORMAT or TO_INTERNAL_FORMAT. 4. Use LISP_PATHNAME_CONVERT_OUT in many places instead of something like LISP_STRING_TO_EXTERNAL(..., Qfile_name). 5. Eliminate some temporary variables that are no longer necessary now that we return a value rather than storing it into a variable. 6. Some Mule-izing in database.c. 7. Error functions: -- A bit of code cleanup in maybe_signal_error_1. -- Eliminate report_file_type_error; it's just an alias for signal_error_2 with params in a different order. -- Fix some places in the hostname-handling code that directly inserted externally-retrieved error strings into the supposed ASCII "reason" param instead of doing the right thing and sticking text descriptive of what was going on in "reason" and putting the external message in a frob. 8. Use Ascbyte instead of CIbyte in process-unix.c and maybe one or two other places. 9. Some code cleanup in copy_in_passwd() in sysdep.c. 10. Fix a real bug due to accidental variable shadowing in tstr_to_local_file_format() in win32.c.
author Ben Wing <ben@xemacs.org>
date Fri, 05 Feb 2010 11:02:24 -0600
parents 15139dbf89f4
children 9c4bf82eaac2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1 @node Startup Paths, Packages, Command Switches, Top
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @section How XEmacs finds Directories and Files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @cindex startup paths
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 @cindex directories
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 XEmacs deals with a multitude of files during operation. These files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 are spread over many directories, and XEmacs determines the location of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 most of these directories at startup and organizes them into various
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 paths. (A @dfn{path},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 @cindex path
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 for the purposes of this section, is simply a list of directories which
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 XEmacs searches successively in order to locate a file.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 @subsection XEmacs Directory Hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 @cindex hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 @cindex directory hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 Many of the files XEmacs looks for are located within the XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 installation itself. However, there are several views of what actually
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 constitutes the "XEmacs installation": XEmacs may be run from the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 compilation directory, it may be installed into arbitrary directories,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 spread over several directories unrelated to each other. Moreover, it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 may subsequently be moved to a different place. (This last case is not
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 as uncommon as it sounds. Binary kits work this way.) Consequently,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 XEmacs has quite complex procedures in place to find directories, no
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 matter where they may be hidden.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 XEmacs will always respect directory options passed to @code{configure}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 However, if it cannot locate a directory at the configured place, it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 will initiate a search for the directory in any of a number of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 @dfn{hierarchies} rooted under a directory which XEmacs assumes contain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 parts of the XEmacs installation; it may locate several such hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 and search across them. (Typically, there are just one or two
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 hierarchies: the hierarchy where XEmacs was or will be installed, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 the one where it is being built.) Such a directory containing a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 hierarchy is called a @dfn{root}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 @cindex root of a hierarchy
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 Whenever this section refers to a directory using the shorthand
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 @code{<root>}, it means that XEmacs searches for it under all
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 432
diff changeset
42 hierarchies XEmacs was able to scrounge up. In a
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 running XEmacs, the hierarchy roots are stored in the variable
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 @code{emacs-roots}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 @vindex emacs-roots
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 @subsection Package Hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 @cindex package hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 Many relevant directories and files XEmacs uses are actually not part of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 the core installation. They are part of any of the many packages
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 usually installed on top of an XEmacs installation. (@xref{Packages}.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 Hence, they play a prominent role in the various paths XEmacs sets up.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 XEmacs locates packages in any of a number of package hierarchies.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 Package hierarchies fall into three groups: @dfn{early}, @dfn{late},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 and @dfn{last},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 @cindex early package hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 @cindex late package hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 @cindex last package hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 according to the relative location at which they show
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 up in the various XEmacs paths. Early package hierarchies are at the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 very front, late ones somewhere in the middle, and last hierarchies are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 (you guessed it) last.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 432
diff changeset
66 By default, XEmacs expects an early package hierarchy in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 432
diff changeset
67 subdirectory @file{.xemacs/xemacs-packages} of the user's home
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 432
diff changeset
68 directory.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 Moreover, XEmacs expects late hierarchies in the subdirectories
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 @file{site-packages}, @file{mule-packages}, and @file{xemacs-packages}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 (in that order) of the @file{<root>/lib/xemacs} subdirectory of one of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 the installation hierarchies. (If you run in-place, these are direct
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 subdirectories of the build directory.) Furthermore, XEmacs will also
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 search these subdirectories in the @file{<root>/lib/xemacs-<VERSION>}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 subdirectory and prefer directories found there.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 By default, XEmacs does not have a pre-configured last package
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 hierarchy. Last hierarchies are primarily for using package hierarchies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 of outdated versions of XEmacs as a fallback option. For example, it is
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 432
diff changeset
81 possible to run XEmacs 21 with the 20.4 package hierarchy as a last
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 hierarchy.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 It is possible to specify at configure-time the location of the various
3179
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
85 package directories with the @code{--with-user-packages} (an alias for
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
86 @samp{--with-early-packages}), @code{--with-system-packages} (an alias
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
87 for @samp{--with-late-packages}), and @code{--with-legacy-packages} (an
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
88 alias for @samp{--with-last-packages}) options to configure.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 @cindex package path
3179
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
90 At run time, the package directories may also be specified via the
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
91 @code{EMACSEARLYPACKAGES}, @code{EMACSLATEPACKAGES}, and
15139dbf89f4 [xemacs-hg @ 2005-12-27 18:50:47 by michaels]
michaels
parents: 1258
diff changeset
92 @code{EMACSLASTPACKAGES} environment variables.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 444
diff changeset
94 An XEmacs package hierarchy is laid out just like a normal installed
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
95 XEmacs directory. It may have @file{lisp}, @file{etc}, @file{info}, and
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
96 @file{lib-src} subdirectories. (The @file{lib-src} subdirectory
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
97 contains architecture-independent general-purpose scripts interpreted by
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
98 the shell or Perl. Java is also being widely used, but Java programs
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
99 are generally found under @file{etc}, because they are specific to
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
100 particular packages such as @file{JDE} and @file{xslt}.) XEmacs adds
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
101 these at appropriate places within the various system-wide paths.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 There may be any number of package hierarchy directories.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 @subsection Directories and Paths
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 @cindex paths
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 Here is a list of the various directories and paths XEmacs tries to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 locate during startup. XEmacs distinguishes between directories and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 paths specific to @dfn{version}, @dfn{site}, and @dfn{architecture}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 when looking for them.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 @item version-specific
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 @cindex version-specific directories
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 directories are specific to the version of XEmacs they belong to and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 typically reside under @file{<root>/lib/xemacs-<VERSION>}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 @item site-specific
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 @cindex site-specific directories
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 directories are independent of the version of XEmacs they belong to and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 typically reside under @file{<root>/lib/xemacs}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 @item architecture-specific
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 @cindex architecture-specific directories
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 directories are specific both to the version of XEmacs and the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 architecture it runs on and typically reside under
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 @file{<root>/lib/xemacs-<VERSION>/<ARCHITECTURE>}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 During installation, all of these directories may also reside directly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 under @file{<root>}, because that is where they are in the XEmacs tarball.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 If XEmacs runs with the @code{-debug-paths} option (@pxref{Command
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 Switches}), it will print the values of these variables, hopefully
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 aiding in debugging any problems which come up.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 @item lisp-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 @vindex lisp-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 Contains the version-specific location of the Lisp files that come with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 the core distribution of XEmacs. XEmacs will search it recursively to a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 depth of 1 when setting up @code{load-path}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 @item load-path
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 @vindex load-path
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 Is where XEmacs searches for XEmacs Lisp files with commands like
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 @code{load-library}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 @findex load-library
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 It contains the package lisp directories (see further down) and the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 version-specific core Lisp directories. If the environment variable
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 @code{EMACSLOADPATH} is set at startup, its directories are prepended to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @code{load-path}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 @vindex EMACSLOADPATH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 @item Info-directory-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @vindex Info-directory-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 Contains the location of info files. (See @ref{(info)}.) It contains
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 the package info directories and the version-specific core
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 documentation. Moreover, XEmacs will add @file{/usr/info},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 @file{/usr/local/info} as well as the directories of the environment
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 variable @code{INFOPATH}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 @vindex INFOPATH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 to @code{Info-directory-list}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 @item exec-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 @vindex exec-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 Is the directory of architecture-dependent files that come with XEmacs,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168 especially executable programs intended for XEmacs to invoke.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 @item exec-path
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 @vindex exec-path
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 Is the path for executables which XEmacs may want to start. It contains
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 the package executable paths as well as @code{exec-directory}, and the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 directories of the environment variables @code{PATH}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 @vindex PATH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 and @code{EMACSPATH}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 @vindex EMACSPATH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 @item doc-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 @vindex doc-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 Is the directory containing the architecture-specific @file{DOC} file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 that contains documentation for XEmacs' commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 @item data-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 @vindex data-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 Is the version-specific directory that contains core data files XEmacs uses.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 It may be initialized from the @code{EMACSDATA}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 @vindex EMACSDATA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 environment variable.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 @item data-directory-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 @vindex data-directory-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 Is the path where XEmacs looks for data files. It contains package data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 directories as well as @code{data-directory}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198