view build-ins.in @ 25022:3ea84b15b5e6

(read_char): Use message3_nolog to show help-echo. (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers. (kbd_store_ptr): Declare it as a volatile pointer instead of a pointer to a volatile input_event. (kbd_buffer_store_event): Remove volatile modifier from declaration of local variable `sp'. (Fdiscard_input): Don't cast when assigning kbd_store_ptr to kbd_fetch_ptr. (make_lispy_event): Handle mouse on top lines. (make_lispy_movement): Ditto. (read_char): Rename local variable echo_area_message because it shadows the global one. (cmd_error_internal): Set echo_areA_message. (command_loop_1): Test echo_areA_message. (read_char): Ditto. (record_menu_key): Set echo_area_message to nil. (Fexecute_extended_command): Test echo_area_message. (Fexecute_extended_command): Handle echo_area_message. (toolbar_items): Call access_keymap with third parameter 1, so that we don't get inherited toolbar item definitions. Ditto. (kbd_buffer_get_event): Set flag to prevent recording TOOLBAR_EVENT events in last_nonmenu_event. (timer_check): Inhibit busy cursor around calls to timer-event-handler. This busy cursor tends to be anoying if fontifying stealthily. (command_loop_1): Display busy cursor. (Vshow_help_function): New. (read_char): Use it. (make_lispy_event): Add string and string position info to mouse-click events. (read_key_sequence): Handle `local-map' property of mode line strings. (Qend_scroll): New. (scroll_bar_parts): Add it. (scroll_bar_parts): Add Qtop and Qbottom. (syms_of_keyboard): Add Qbottom. (make_lispy_event): Handle scroll_bar_click differently when using toolkit scroll bars. (cmd_error_internal): Bug fix. (syms_of_keyboard): Staticpro toolbar_item_properties and toolbar_items_vectors. (Qhelp_echo): New symbol. (read_char): Handle `toolbar' and `help_echo' events. (kbd_buffer_get_event): Handle HELP_ECHO input event. (make_lispy_event): Handle TOOLBAR_EVENT. (toolbar_items): New. (process_toolbar_item): New. (PROP): New. (init_toolbar_items): New. (append_toolbar_item): New. (read_char_x_menu_prompt): Handle `toolbar' event. (read_key_sequence): Ditto. (syms_of_keyboard): Intern `:help'. (toolbar_items): New. (process_toolbar_item): New. (parse_toolbar_item): New. (init_toolbar_items): New. (append_toolbar_item): New. (detect_input_pending_run_timers): Likewise. (detect_input_pending_run_timers): Call gobble_input after redisplaying. (clear_waiting_for_input): Return void. (record_asynch_buffer_change): Return void. (stop_polling): Return void. (start_polling): Ditto. (cmd_error_internal): Write to stderr if selected frame is Vterminal_frame under X. This is the case when a font cannot be loaded when Emacs starts. Replace test for FRAME_MESSAGE_BUF with test for glyphs_initialized_p. (quit_throw_to_read_char): Ditto. (make_lispy_event): mouse clicks; don't do frame glyph position calculations. (make_lispy_movement): Use buffer_posn_from_coords and window relative coordinates. (make_lispy_event): For mouse clicks, use x_y_to_hpos_vpos. (make_lispy_event): Use BUFFER_POSN_FROM_COORDS with window relative pixel coordinates. Use GLYPH_TO_PIXEL_- COORDS mit new arguments. (make_lispy_event): WINDOW_FROM_COORDINATES with pixel coords. (make_lispy_movement): Same. (interrupt_signal): Cursor_to with 4 params. (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT for any character.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 21 Jul 1999 21:43:52 +0000
parents 1541c518f769
children
line wrap: on
line source

#!/bin/sh -x
#
#Shell script for building and installing Emacs.

# ==================== Where To Install Things ====================

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  This directory must exist when
# you start installation.  The default values for many of the
# variables below are expressed in terms of this one, so you may not
# need to change them.
prefix=/usr/local

# Where to install Emacs and other binaries that people will want to
# run directly (like etags).
bindir=${prefix}/bin

# A directory under which we will install many of Emacs's files.  The
# default values for many of the variables below are expressed in
# terms of this one, so you may not need to change them.
emacsdir=${prefix}/emacs-19.0

# Where to install and expect the architecture-independent data files
# (like the tutorial and the Zippy database).
datadir=${emacsdir}/etc

# Where to install the elisp files distributed with Emacs.  Strictly
# speaking, all the elisp files should go under datadir (above), since
# both elisp source and compiled elisp are completely portable, but
# it's traditional to give the lisp files their own subdirectory.
lispdir=${emacsdir}/lisp

# Directories Emacs should search for elisp files specific to this
# site (i.e. customizations), before consulting ${lispdir}.  This
# should be a colon-separated list of directories.
locallisppath=${emacsdir}/local-lisp

# Where Emacs will search to find its elisp files.  Before changing
# this, check to see if your purpose wouldn't better be served by
# changing locallisppath.  This should be a colon-separated list of
# directories.
lisppath=${locallisppath}:${lispdir}

# Where Emacs will search for its elisp files before dumping.  This is
# only used during the process of compiling Emacs, to help Emacs find
# its lisp files before they've been installed in their final
# location.  It's usually identical to lisppath, except that the entry
# for the directory containing the installed lisp files has been
# replaced with ../lisp.  This should be a colon-separated list of
# directories.
dumplisppath=../lisp

# Where to install and expect the files that Emacs modifies as it
# runs.	 These files are all architecture-independent.	Right now,
# the only such data is the locking directory.
statedir=${emacsdir}

# Where to create and expect the locking directory, where the Emacs
# locking code keeps track of which files are currently being edited.
lockdir=${statedir}/lock

# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.
libdir=${emacsdir}/arch-lib

# Where to install Emacs's man pages.
mandir=/usr/man/man1

# Where to install and expect the info files describing Emacs.	In the
# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
# since there are now many packages documented with the texinfo
# system, it is inappropriate to imply that it is part of Emacs.
infodir=${prefix}/info

removenullpaths="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'"

lisppath=`echo ${lisppath} | ${removenullpaths}` ;		\
dumplisppath=`echo ${dumplisppath} | ${removenullpaths}` ;	\
/bin/sed < src/paths.h.in > src/paths.h				\
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'		\
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";'	\
-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";'			\
-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";'			\
-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'

(cd lib-src; make) || exit 1
(cd src; make) || exit 1

# Subdirectories to install, and where they'll go.
copydir=arch-lib etc info lisp
copydests=${libdir} ${datadir} ${infodir} ${lispdir}

# If any of the directories are below ${emacsdir} or ${statedir}, create them.
for dir in ${copydests}; do
  case "${dir}" in
    ${emacsdir}/* )
      if [ ! -d ${emacsdir} ]; then
	mkdir ${emacsdir}
	chmod 777 ${emacsdir}
      fi
    ;;
    ${statedir}/* )
      if [ ! -d ${statedir} ]; then
	mkdir ${statedir}
	chmod 777 ${statedir}
      fi
    ;;
  esac
done

set ${copydests}
for dir in ${copydir} ; do
  dest=$1 ; shift
  mv ${dir} ${dest}
  if [ $? != 0 ]; then
    echo mv ${dir} to ${dest} failed -- using tar to copy.
    if [ `/bin/pwd`/${dir} != `(cd ${dest}; /bin/pwd)` ] ; then
      (cd ${dir}; tar cf - . ) | (cd ${dest}; umask 0; tar xf - )
      if [ $? != 0 ]; then
	echo "tar-copying ${dir} to ${dest} failed too.  I give up."
	exit 1
      fi
      for subdir in `find ${dest} -type d ! -name RCS -print` ; do
	rm -rf ${subdir}/RCS
	rm -f  ${subdir}/\#*
	rm -f  ${subdir}/*~
      done
    fi
  fi
done

cp ${libdir}/[ce]tags ${bindir}
mv src/emacs ${BINDIR}/emacs
rm src/temacs
chmod 777 ${bindir}/[ce]tags ${bindir}/emacs