Mercurial > hg > xemacs-beta
annotate etc/xemacs-fe.sh @ 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 | a4f53d9b3154 |
children | cc15677e0335 308d34e9f07d |
rev | line source |
---|---|
177 | 1 #! /bin/sh |
2 # emacs-fe --- front end driver for `emacs' and other programs | |
3 | |
4 # Copyright (C) 1995, 1996 Noah S. Friedman | |
5 | |
6 # Author: Noah Friedman <friedman@prep.ai.mit.edu> | |
7 # Created: 1995-09-11 | |
8 | |
9 # $.Id: emacs-fe,v 1.8 1996/03/07 04:32:33 friedman Exp $ | |
10 | |
11 # This program is free software; you can redistribute it and/or modify | |
12 # it under the terms of the GNU General Public License as published by | |
13 # the Free Software Foundation; either version 2, or (at your option) | |
14 # any later version. | |
15 # | |
16 # This program is distributed in the hope that it will be useful, | |
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 # GNU General Public License for more details. | |
20 # | |
21 # You should have received a copy of the GNU General Public License | |
22 # along with this program; if not, you can either send email to this | |
23 # program's maintainer or write to: The Free Software Foundation, | |
24 # Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. | |
25 | |
26 # Commentary: | |
27 | |
28 # Inspired by a similar set of scripts by Charles Sandel <sandel@cli.com>, | |
29 # but generalized into this single script. | |
30 | |
31 # Front-end shell script for GNU Emacs, used to manage multiple versions of | |
32 # Emacs and its associated utilities. | |
33 # | |
34 # Strategy: Install this script as "$prefix/bin/[progname]", for each | |
35 # program named [progname], (e.g. "emacs", "ispell", "etags", etc). These | |
36 # are the commands users would normally execute to run them. | |
37 | |
38 # Give each version of emacs/xemacs/mule/ispell a separate hierarchy under | |
39 # $prefix/[emacs|xemacs|mule|ispell], with the name | |
40 # "[emacs|xemacs|mule|ispell]-NN.NN" where NN.NN is the version number. | |
41 # This script looks at what versions are available, and selects a version, | |
42 # currently whatever is specified by $DEFAULTLVERSION. | |
43 | |
44 # However, users can specify their own choice to force the selection of a | |
45 # particular version by setting the environment variable PROGNAMEVERSION | |
46 # (e.g. EMACSVERSION, MULEVERSION, XEMACSVERSION, etc.) to have a value | |
47 # which is the version number of the program that they want to use (just | |
48 # the numeric value), or to specify either the NEWEST or OLDEST versions. | |
49 | |
50 # Code: | |
51 | |
52 # Name by which this script was invoked. | |
53 progname=`echo "$0" | sed -e 's/[^\/]*\///g'` | |
54 | |
55 # To prevent hairy quoting and escaping later. | |
56 bq='`' | |
57 eq="'" | |
58 | |
59 case "$progname" in | |
60 emacs-fe-print ) | |
61 case $# in | |
62 1 ) : ;; | |
63 * ) | |
64 echo "$progname: Exactly one argument is required." 1>&2 | |
65 exit 1 | |
66 ;; | |
67 esac | |
68 | |
69 # sed is more portable than `dirname' | |
70 dir=`echo "$0" | sed -e 's/\/*$//' -e 's/\/[^\/]*$//'` | |
71 if test -f "$dir/$1"; then | |
72 EMACS_FE_PRINT=t | |
73 export EMACS_FE_PRINT | |
74 exec "$dir/$1" | |
75 fi | |
76 | |
77 echo "$progname: $bq$dir/$1$eq does not seem to exist." 1>&2 | |
78 exit 1 | |
79 ;; | |
80 esac | |
81 | |
82 DEFAULTVERSION="${DEFAULTVERSION-NEWEST}" | |
83 VARIANT="${EMACSVARIANT-emacs}" | |
84 | |
85 if [ "$prefix" = "" ] ; then | |
86 # root of the GNU installed tree | |
87 prefix=/usr/local/gnu | |
88 fi | |
89 | |
90 if [ ! -d "$prefix" ] ; then | |
91 echo "Cannot find root of GNU tree ($prefix)." | |
92 exit 1 | |
93 fi | |
94 | |
95 case "$progname" in | |
96 emacs | lemacs | xemacs | mule | ispell ) | |
97 if [ "$eprefix" = "" ] ; then | |
98 # prefix name of the subdirectory | |
99 eprefix="${progname}/${progname}-" | |
100 fi | |
101 ;; | |
102 * ) | |
103 eprefix="$VARIANT/${VARIANT}-" | |
104 ;; | |
105 esac | |
106 | |
107 # Find out which versions are available on the system and sort them | |
108 # in numeric order. | |
109 # | |
110 # The largish sed script prefixes all version numbers with a sort key. | |
111 # That key is constructed by padding out any single or double digits to 3 | |
367 | 112 # digits from the version number, then converting all occurrences of `.' to |
177 | 113 # `0', and prefixing and suffixing the entire result with an additional |
114 # zero. After sorting, the sort key is stripped from the output. | |
115 # We do all this because `sort' cannot numerically sort decimal numbers and | |
116 # will stop on the first `.'. | |
117 # This may not work correctly if the version number has more than 4 levels | |
118 # of minor versions (e.g. "1.2.3.4.5" may cause problems). | |
119 availversions=`ls -1d $prefix/${eprefix}*/. 2> /dev/null \ | |
120 | sed -n \ | |
121 -e "s#^$prefix/$eprefix\([0-9.][0-9.]*\)/\.*#\1#" \ | |
122 -e 'h | |
123 s/[^.]*[^0-9.][^.]*\.//g | |
124 :0 | |
125 /[0-9.][0-9.]*\.[0-9.][0-9.]*\.[0-9.][0-9.]*\.[0-9.][0-9.]*/!{ | |
126 s/$/.0/ | |
127 b 0 | |
128 } | |
129 s/^/./ | |
130 s/$/./ | |
131 :1 | |
132 s/\.\([0-9]\)\./.00\1./g | |
133 s/\.\([0-9][0-9]\)\./.0\1./g | |
134 t 1 | |
135 s/\./0/g | |
136 G | |
137 s/\n/ /' \ | |
138 -e 'p' \ | |
139 | sort -nu \ | |
140 | sed -e 's/.* //'` | |
141 | |
142 if [ "$availversions" = "" ] ; then | |
143 echo "No version of $progname found in $prefix/$eprefix*." | |
144 exit 1 | |
145 fi | |
146 | |
147 # This sets `oldest' to the oldest version available, and `newest' | |
148 # to the newest version available. | |
149 # On line 1, we save the original pattern in the hold space and restore it | |
150 # in case it is the only line of input. | |
151 eval `echo "$availversions" \ | |
152 | sed -ne '1{h;s/^/oldest=/p;g;} | |
153 ${s/^/newest=/p;} | |
154 '` | |
155 | |
156 # The environment variable [progname]VERSION can have a value which specifies | |
157 # a version number, OR it can contain the values "NEWEST" or "OLDEST" to | |
158 # specify the newest or oldest version which was found. | |
159 sed_upcase='y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | |
160 | |
161 PROGNAME=`echo "$progname" | sed -e "$sed_upcase" -e 's/-/_/g'` | |
162 eval version=\"\$${PROGNAME}VERSION\" | |
163 | |
164 # If there is no ETAGSVERSION, EMACSCLIENTVERSION, etc, then look for | |
165 # EMACSVERSION, XEMACSVERSION, or whatever the current variant is. | |
166 case "$version" in | |
167 '' ) | |
168 case "$progname" in | |
169 ispell ) | |
170 # If this is ispell and ISPELLVERSION isn't set, just use 3.1. | |
171 # We could run this script recursively with a flag indicating to | |
172 # find the current emacs variant and version and just print it out, | |
173 # but that is a very pathological case and is a lot of work. | |
174 version=3.1 ;; | |
175 * ) | |
176 variant=`echo "$VARIANT" | sed -e "$sed_upcase"` | |
177 eval version=\"\$${variant}VERSION\" | |
178 case "$version" in | |
179 '' ) version="$DEFAULTVERSION" ;; | |
180 esac | |
181 ;; | |
182 esac | |
183 esac | |
184 | |
185 case "$version" in | |
186 [Oo][Ll][Dd][Ee][Ss][Tt]) version="$oldest" ;; | |
187 [Nn][Ee][Ww][Ee][Ss][Tt]) version="$newest" ;; | |
188 '') version="$oldest" ;; | |
189 *) | |
190 if [ ! -d "$prefix/$eprefix$version" ] ; then | |
191 echo "$progname: $version: Cannot find requested version." 1>&2 | |
192 version= | |
193 fi | |
194 ;; | |
195 esac | |
196 | |
197 # If we don't have a version by now, then give up. | |
198 if [ "$version" = "" ] ; then | |
199 exec 1>&2 | |
200 echo "$progname: Cannot determine which version to use." | |
201 case "$availversions" in | |
202 */* ) | |
203 echo "Available versions are:" | |
204 for f in $availversions; do | |
205 echo " $f" | |
206 done | sort | |
207 ;; | |
208 * ) | |
209 echo "Available versions are:" $availversions | |
210 ;; | |
211 esac | |
212 exit 1 | |
213 fi | |
214 | |
215 case "$progname" in | |
216 emacs | lemacs | xemacs | mule ) | |
217 EMACSVARIANT=$progname | |
218 eval ${PROGNAME}VERSION=$version | |
219 eval export EMACSVARIANT ${PROGNAME}VERSION | |
220 | |
221 case "$EMACSVARIANT-$version" in | |
222 emacs-18* ) ISPELLVERSION=4.0 ;; | |
223 emacs-19.[0-9] ) ISPELLVERSION=4.0 ;; | |
224 emacs-19.1[0-9] ) ISPELLVERSION=4.0 ;; | |
225 emacs-19.2[0-2] ) ISPELLVERSION=4.0 ;; | |
226 emacs-19.2[3-9] ) ISPELLVERSION=3.1 ;; | |
227 emacs-* ) ISPELLVERSION=3.1 ;; | |
228 | |
229 lemacs-19.[0-9] ) ISPELLVERSION=3.0.09 ;; | |
230 lemacs-19.10 ) ISPELLVERSION=3.1 ;; | |
231 | |
232 xemacs-* ) ISPELLVERSION=3.1 ;; | |
233 | |
234 mule-* ) ISPELLVERSION=3.1 ;; | |
235 esac | |
236 export ISPELLVERSION | |
237 ;; | |
238 esac | |
239 | |
240 case "$progname" in | |
241 xemacs ) | |
242 # xemacs expects to use the keysym database in /usr/openwin, but that | |
243 # database doesn't define many of the keysyms it uses. Unless the user | |
244 # has already defined their own, specify the keysym database in X11. | |
245 XKEYSYMDB="${XKEYSYMDB-/usr/local/X11/lib/X11/XKeysymDB}" | |
246 export XKEYSYMDB | |
247 | |
248 # Some versions of xemacs (e.g. 19.12) are dynamically linked against | |
249 # the openwin tooltalk library (libtt.so), so add openwin to the | |
250 # dynamic load path if necessary. | |
251 case "$LD_LIBRARY_PATH" in | |
252 *'/usr/openwin/lib'* ) : ;; | |
253 '' ) | |
254 LD_LIBRARY_PATH=/usr/local/X11R5/lib:/usr/openwin/lib:/lib | |
255 export LD_LIBRARY_PATH | |
256 ;; | |
257 * ) | |
258 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/openwin/lib" | |
259 export LD_LIBRARY_PATH | |
260 ;; | |
261 esac | |
262 ;; | |
263 esac | |
264 | |
265 # Set up the MANPATH so that the man pages for this version | |
266 # are searched first | |
267 if [ -d $prefix/$eprefix$version/man ] ; then | |
268 MANPATH=$prefix/$eprefix$version/man:$MANPATH | |
269 export MANPATH | |
270 fi | |
271 | |
272 # There is no need to do this, and it can potentially cause problems, | |
273 # especially if a program like `xemacs' exists in that directory and gets | |
274 # run in subshells instead of this script. | |
275 #PATH=$prefix/$eprefix$version/bin:$PATH | |
276 #export PATH | |
277 | |
278 searchdirs=`exec 2> /dev/null | |
279 cd $prefix/$eprefix$version \ | |
280 && find bin \ | |
281 libexec/$VARIANT/$version/* \ | |
282 lib/$VARIANT/$version/* \ | |
283 lib/$VARIANT-$version/* \ | |
284 lib/$VARIANT/etc \ | |
285 lib/etc \ | |
286 -type d -print` | |
287 | |
288 for dir in $searchdirs ; do | |
289 for p in $progname-$version $progname ; do | |
290 prog="$prefix/$eprefix$version/$dir/$p" | |
291 | |
292 if test -f "$prog" ; then | |
293 case "${EMACS_FE_PRINT+set}" in | |
294 set ) | |
295 echo "$prog" | |
296 exit 0 | |
297 ;; | |
298 esac | |
299 | |
300 exec "$prog" ${1+"$@"} | |
301 fi | |
302 done | |
303 done | |
304 | |
305 exec 1>&2 | |
306 | |
307 echo "$progname: Cannot find $bq$progname-$version$eq or $bq$progname$eq in" | |
308 | |
309 for d in $searchdirs ; do | |
310 ls -1d $prefix/$eprefix$version/$d 2> /dev/null \ | |
311 | sed -e "s/^/$progname: /" | |
312 done | |
313 | |
314 exit 1 | |
315 | |
316 # emacs-fe ends here |