Commit e065a56e authored by Jim Blandy's avatar Jim Blandy
Browse files

*** empty log message ***

parent 1b1f8f85
...@@ -122,12 +122,13 @@ removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/' ...@@ -122,12 +122,13 @@ removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
src/paths.h: Makefile src/paths.h.in src/paths.h: Makefile src/paths.h.in
lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
/bin/sed < src/paths.h.in > src/paths.h \ /bin/sed < src/paths.h.in > src/paths.h.tmp \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \ -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \
-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'
./move-if-change src/paths.h.tmp src/paths.h
src: lib-src src: lib-src
......
...@@ -28,7 +28,15 @@ ...@@ -28,7 +28,15 @@
# config.status is removed. # config.status is removed.
# #
progname=$0 # Remove any leading "." elements from the path name. When this
# script is invoked from the config.status script, a new ./ gets added
# to the the front of the path, resulting in a "././" prefix. That
# prefix is then recorded in the resulting config.status file, so
# basically each time config.status is used, it prepends another "./"
# to the filename. This wouldn't be a problem, except that since
# progname gets recorded in all the Makefiles this script produces,
# move-if-changed thinks they're different when they're not.
progname="`echo $0 | sed 's:^\(\./\)*::'`"
short_usage="Type \`${progname} -usage' for more information about options." short_usage="Type \`${progname} -usage' for more information about options."
...@@ -99,6 +107,9 @@ lockdir="" ...@@ -99,6 +107,9 @@ lockdir=""
window_system="" window_system=""
have_x_menu="" have_x_menu=""
# Record all the arguments, so we can save them in config.status.
arguments="$*"
echo "Examining options." echo "Examining options."
while [ $# != 0 ]; do while [ $# != 0 ]; do
arg="$1" arg="$1"
...@@ -468,14 +479,15 @@ for flag in `echo ${config_h_opts} | tr ':' ' '`; do ...@@ -468,14 +479,15 @@ for flag in `echo ${config_h_opts} | tr ':' ' '`; do
esac esac
sed_flags="${sed_flags} ${f}" sed_flags="${sed_flags} ${f}"
done done
rm -f src/config.h chmod +w -f src/config.h
eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h' eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h.tmp'
./move-if-change src/config.h.tmp src/config.h
# Remind people not to edit this. # Remind people not to edit this.
chmod -w src/config.h chmod -w src/config.h
# Modify the parameters in the top makefile. # Modify the parameters in the top makefile.
echo "Producing ./Makefile from ./Makefile.in." echo "Producing ./Makefile from ./Makefile.in."
rm -f ./Makefile chmod +w -f ./Makefile
(echo "# This file is generated by \`${progname}' from \`./Makefile.in'. (echo "# This file is generated by \`${progname}' from \`./Makefile.in'.
# If you are thinking about editing it, you should seriously consider # If you are thinking about editing it, you should seriously consider
# editing \`./Makefile.in' itself, or running \`${progname}' instead." # editing \`./Makefile.in' itself, or running \`${progname}' instead."
...@@ -494,13 +506,14 @@ rm -f ./Makefile ...@@ -494,13 +506,14 @@ rm -f ./Makefile
-e 's;^\(libdir=\).*$;\1'"${libdir};" \ -e 's;^\(libdir=\).*$;\1'"${libdir};" \
-e 's;^\(mandir=\).*$;\1'"${mandir};" \ -e 's;^\(mandir=\).*$;\1'"${mandir};" \
-e 's;^\(infodir=\).*$;\1'"${infodir};" \ -e 's;^\(infodir=\).*$;\1'"${infodir};" \
) > ./Makefile ) > ./Makefile.tmp
./move-if-change Makefile.tmp Makefile
# Remind people not to edit this. # Remind people not to edit this.
chmod -w ./Makefile chmod -w ./Makefile
# Modify the parameters in the `build-install' script. # Modify the parameters in the `build-install' script.
echo "Producing ./build-install from ./build-install.in." echo "Producing ./build-install from ./build-install.in."
rm -f ./build-install chmod +w -f ./build-install
(echo "# This file is generated by \`${progname}' from \`./build-install.in'. (echo "# This file is generated by \`${progname}' from \`./build-install.in'.
# If you are thinking about editing it, you should seriously consider # If you are thinking about editing it, you should seriously consider
# editing \`./build-install.in' itself, or running \`${progname}' instead." # editing \`./build-install.in' itself, or running \`${progname}' instead."
...@@ -510,32 +523,35 @@ rm -f ./build-install ...@@ -510,32 +523,35 @@ rm -f ./build-install
-e 's;^\(lisppath=\).*$;\1'"${lisppath};" \ -e 's;^\(lisppath=\).*$;\1'"${lisppath};" \
-e 's;^\(datadir=\).*$;\1'"${datadir};" \ -e 's;^\(datadir=\).*$;\1'"${datadir};" \
-e 's;^\(lockdir=\).*$;\1'"${lockdir};" \ -e 's;^\(lockdir=\).*$;\1'"${lockdir};" \
-e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install.tmp
./move-if-change build-install.tmp build-install
# Remind people not to edit this. # Remind people not to edit this.
chmod -w build-install chmod -w build-install
chmod +x build-install chmod +x build-install
# Modify the parameters in the src makefile. # Modify the parameters in the src makefile.
echo "Producing src/Makefile from src/Makefile.in." echo "Producing src/Makefile from src/Makefile.in."
rm -f src/Makefile chmod +w -f src/Makefile
(echo "# This file is generated by \`${progname}' from \`Makefile.in'. (echo "# This file is generated by \`${progname}' from \`Makefile.in'.
# If you are thinking about editing it, you should seriously consider # If you are thinking about editing it, you should seriously consider
# editing \`Makefile.in' itself, or running \`${progname}' instead." # editing \`Makefile.in' itself, or running \`${progname}' instead."
/bin/sed < src/Makefile.in \ /bin/sed < src/Makefile.in \
-e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile.tmp
./move-if-change src/Makefile.tmp src/Makefile
# Remind people not to edit this. # Remind people not to edit this.
chmod -w src/Makefile chmod -w src/Makefile
# Modify the parameters in the lib-src makefile. # Modify the parameters in the lib-src makefile.
echo "Producing lib-src/Makefile from lib-src/Makefile.in." echo "Producing lib-src/Makefile from lib-src/Makefile.in."
rm -f lib-src/Makefile chmod +w -f lib-src/Makefile
(echo "# This file is generated by \`${progname}' from \`Makefile.in'. (echo "# This file is generated by \`${progname}' from \`Makefile.in'.
# If you are thinking about editing it, you should seriously consider # If you are thinking about editing it, you should seriously consider
# editing \`Makefile.in' itself, or running \`${progname}' instead." # editing \`Makefile.in' itself, or running \`${progname}' instead."
/bin/sed < lib-src/Makefile.in \ /bin/sed < lib-src/Makefile.in \
-e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \ -e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \
-e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \ -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \
-e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile.tmp
./move-if-change lib-src/Makefile.tmp lib-src/Makefile
# Remind people not to edit this. # Remind people not to edit this.
chmod -w lib-src/Makefile chmod -w lib-src/Makefile
...@@ -578,24 +594,7 @@ echo "# This file is generated by \`${progname}.' ...@@ -578,24 +594,7 @@ echo "# This file is generated by \`${progname}.'
# running \`${progname}' instead. # running \`${progname}' instead.
" >> config.status " >> config.status
echo "${message}" >> config.status echo "${message}" >> config.status
echo "'${progname}' \\ echo "'./${progname}' ${arguments} "'$@' >> config.status
-machine='${machine}' \\
-opsystem='${opsystem}' \\
-g=${g} \\
-O=${O} \\
-cc=${cc} \\
-libdir='${libdir}' \\
-datadir='${datadir}' \\
-bindir='${bindir}' \\
-lisppath='${lisppath}' \\
-lockdir='${lockdir}' \\
-window_system='${window_system}' \\
-have_x_menu='${have_x_menu}' \\
-gnu_malloc='${gnu_malloc}' \\
-rel_alloc='${rel_alloc}' \\
-highpri='${highpri}' \\
-lisp_float_type='${lisp_float_type}' \\
$@" >> config.status
# Remind people not to edit this. # Remind people not to edit this.
chmod -w config.status chmod -w config.status
chmod +x config.status chmod +x config.status
......
...@@ -118,52 +118,52 @@ getopt.o: getopt.c getopt.h ...@@ -118,52 +118,52 @@ getopt.o: getopt.c getopt.h
getopt1.o: getopt1.c getopt.h getopt1.o: getopt1.c getopt.h
etags: etags.c $(GETOPTDEPS) etags: etags.c $(GETOPTDEPS)
$(CC) -o etags ${CFLAGS} -DETAGS etags.c $(GETOPTOBJS) $(LOADLIBES) $(CC) ${CFLAGS} -DETAGS etags.c $(GETOPTOBJS) $(LOADLIBES) -o etags
ctags: etags.c $(GETOPTDEPS) ctags: etags.c $(GETOPTDEPS)
$(CC) -o ctags ${CFLAGS} -DCTAGS etags.c $(GETOPTOBJS) $(LOADLIBES) $(CC) ${CFLAGS} -DCTAGS etags.c $(GETOPTOBJS) $(LOADLIBES) -o ctags
wakeup: wakeup.c wakeup: wakeup.c
$(CC) -o wakeup ${CFLAGS} wakeup.c $(LOADLIBES) $(CC) ${CFLAGS} wakeup.c $(LOADLIBES) -o wakeup
make-docfile: make-docfile.c make-docfile: make-docfile.c
$(CC) -o make-docfile ${CFLAGS} make-docfile.c $(LOADLIBES) $(CC) ${CFLAGS} make-docfile.c $(LOADLIBES) -o make-docfile
digest-doc: digest-doc.c digest-doc: digest-doc.c
$(CC) -o digest-doc ${CFLAGS} digest-doc.c $(LOADLIBES) $(CC) ${CFLAGS} digest-doc.c $(LOADLIBES) -o digest-doc
sorted-doc: sorted-doc.c sorted-doc: sorted-doc.c
$(CC) -o sorted-doc ${CFLAGS} sorted-doc.c $(LOADLIBES) $(CC) ${CFLAGS} sorted-doc.c $(LOADLIBES) -o sorted-doc
b2m: b2m.c b2m: b2m.c
$(CC) -o b2m ${CFLAGS} b2m.c $(LOADLIBES) $(CC) ${CFLAGS} b2m.c $(LOADLIBES) -o b2m
movemail: movemail.c ../src/config.h movemail: movemail.c ../src/config.h
$(CC) -o movemail ${CFLAGS} movemail.c $(LOADLIBES) $(CC) ${CFLAGS} movemail.c $(LOADLIBES) -o movemail
cvtmail: cvtmail.c cvtmail: cvtmail.c
$(CC) -o cvtmail ${CFLAGS} cvtmail.c $(LOADLIBES) $(CC) ${CFLAGS} cvtmail.c $(LOADLIBES) -o cvtmail
fakemail: fakemail.c ../src/config.h fakemail: fakemail.c ../src/config.h
$(CC) -o fakemail ${CFLAGS} fakemail.c $(LOADLIBES) $(CC) ${CFLAGS} fakemail.c $(LOADLIBES) -o fakemail
yow: yow.c ../src/paths.h yow: yow.c ../src/paths.h
$(CC) -o yow ${CFLAGS} yow.c $(LOADLIBES) $(CC) ${CFLAGS} yow.c $(LOADLIBES) -o yow
env: env.c ../src/config.h env: env.c ../src/config.h
$(CC) -o env -DEMACS ${CFLAGS} env.c $(LOADLIBES) $(CC) -DEMACS ${CFLAGS} env.c $(LOADLIBES) -o env
emacsserver: emacsserver.c ../src/config.h emacsserver: emacsserver.c ../src/config.h
$(CC) -o emacsserver ${CFLAGS} emacsserver.c $(LOADLIBES) $(CC) ${CFLAGS} emacsserver.c $(LOADLIBES) -o emacsserver
emacsclient: emacsclient.c ../src/config.h emacsclient: emacsclient.c ../src/config.h
$(CC) -o emacsclient ${CFLAGS} emacsclient.c $(LOADLIBES) $(CC) ${CFLAGS} emacsclient.c $(LOADLIBES) -o emacsclient
hexl: hexl.c hexl: hexl.c
$(CC) -o hexl ${CFLAGS} hexl.c $(LOADLIBES) $(CC) ${CFLAGS} hexl.c $(LOADLIBES) -o hexl
timer: getdate.o timer.o timer: getdate.o timer.o
$(CC) -o timer $(CFLAGS) getdate.o timer.o $(CC) $(CFLAGS) getdate.o timer.o -o timer
# These are NOT included in INSTALLABLES or UTILITIES. # These are NOT included in INSTALLABLES or UTILITIES.
# See ../src/ymakefile. # See ../src/ymakefile.
......
/* Generate doc-string file for GNU Emacs from source files. /* Generate doc-string file for GNU Emacs from source files.
Copyright (C) 1985, 1986 Free Software Foundation, Inc. Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option) the Free Software Foundation; either version 2, or (at your option)
any later version. any later version.
GNU Emacs is distributed in the hope that it will be useful, GNU Emacs is distributed in the hope that it will be useful,
...@@ -166,7 +166,13 @@ write_c_args (out, buf, minargs, maxargs) ...@@ -166,7 +166,13 @@ write_c_args (out, buf, minargs, maxargs)
else if (c == ' ' && space) else if (c == ' ' && space)
continue; continue;
space = (c == ' '); space = (c == ' ');
putc (c, out);
/* Print the C arguments as they would appear in Elisp;
print underscores as hyphens. */
if (c == '_')
putc ('-');
else
putc (c, out);
} }
putc ('\n', out); putc ('\n', out);
} }
......
...@@ -333,34 +333,16 @@ buffer. The hook comint-exec-hook is run after each exec." ...@@ -333,34 +333,16 @@ buffer. The hook comint-exec-hook is run after each exec."
buffer)) buffer))
;;; This auxiliary function cranks up the process for comint-exec in ;;; This auxiliary function cranks up the process for comint-exec in
;;; the appropriate environment. It is twice as long as it should be ;;; the appropriate environment.
;;; because emacs has two distinct mechanisms for manipulating the
;;; process environment, selected at compile time with the
;;; MAINTAIN-ENVIRONMENT #define. In one case, process-environment
;;; is bound; in the other it isn't.
(defun comint-exec-1 (name buffer command switches) (defun comint-exec-1 (name buffer command switches)
(if (boundp 'process-environment) ; Not a completely reliable test. (let ((process-environment
(let ((process-environment (comint-update-env process-environment
(comint-update-env process-environment (list (format "TERMCAP=emacs:co#%d:tc=unknown"
(list (format "TERMCAP=emacs:co#%d:tc=unknown" (screen-width))
(screen-width)) "TERM=emacs"
"TERM=emacs" "EMACS=t"))))
"EMACS=t")))) (apply 'start-process name buffer command switches)))
(apply 'start-process name buffer command switches))
(let ((tcapv (getenv "TERMCAP"))
(termv (getenv "TERM"))
(emv (getenv "EMACS")))
(unwind-protect
(progn (setenv "TERMCAP" (format "emacs:co#%d:tc=unknown"
(screen-width)))
(setenv "TERM" "emacs")
(setenv "EMACS" "t")
(apply 'start-process name buffer command switches))
(setenv "TERMCAP" tcapv)
(setenv "TERM" termv)
(setenv "EMACS" emv)))))
......
...@@ -1046,8 +1046,8 @@ Optional second argument EXITING means ask about certain non-file buffers ...@@ -1046,8 +1046,8 @@ Optional second argument EXITING means ask about certain non-file buffers
(buffer-name buffer))))))) (buffer-name buffer)))))))
(function (function
(lambda (buffer) (lambda (buffer)
(set-buffer buffer) (set-buffer buffer)
(save-buffer))) (save-buffer)))
(buffer-list) (buffer-list)
'("buffer" "buffers" "save"))) '("buffer" "buffers" "save")))
(message "(No files need saving)")))) (message "(No files need saving)"))))
......
;; Fill commands for Emacs ;; Fill commands for Emacs
;; Copyright (C) 1985, 1986 Free Software Foundation, Inc. ;; Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
...@@ -18,6 +18,13 @@ ...@@ -18,6 +18,13 @@
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
(defconst fill-individual-varying-indent nil
"*Controls criterion for a new paragraph in `fill-individual-paragraphs'.
Non-nil means changing indent doesn't end a paragraph.
That mode can handle paragraphs with extra indentation on the first line,
but it requires separator lines between paragraphs.
Nil means that any change in indentation starts a new paragraph.")
(defun set-fill-prefix () (defun set-fill-prefix ()
"Set the fill-prefix to the current line up to point. "Set the fill-prefix to the current line up to point.
Filling expects lines to start with the fill prefix and Filling expects lines to start with the fill prefix and
...@@ -219,7 +226,13 @@ Prefix arg (non-nil third arg, if called from program) means justify as well." ...@@ -219,7 +226,13 @@ Prefix arg (non-nil third arg, if called from program) means justify as well."
(defun fill-individual-paragraphs (min max &optional justifyp mailp) (defun fill-individual-paragraphs (min max &optional justifyp mailp)
"Fill each paragraph in region according to its individual fill prefix. "Fill each paragraph in region according to its individual fill prefix.
Calling from a program, pass range to fill as first two arguments.
If `fill-individual-varying-indent' is non-nil,
then a mere change in indentation does not end a paragraph. In this mode,
the indentation for a paragraph is the minimum indentation of any line in it.
When calling from a program, pass range to fill as first two arguments.
Optional third and fourth arguments JUSTIFY-FLAG and MAIL-FLAG: Optional third and fourth arguments JUSTIFY-FLAG and MAIL-FLAG:
JUSTIFY-FLAG to justify paragraphs (prefix arg), JUSTIFY-FLAG to justify paragraphs (prefix arg),
MAIL-FLAG for a mail message, i. e. don't fill header lines." MAIL-FLAG for a mail message, i. e. don't fill header lines."
...@@ -252,12 +265,23 @@ MAIL-FLAG for a mail message, i. e. don't fill header lines." ...@@ -252,12 +265,23 @@ MAIL-FLAG for a mail message, i. e. don't fill header lines."
(forward-line 1) (forward-line 1)
;; Now stop the loop if end of paragraph. ;; Now stop the loop if end of paragraph.
(and (not (eobp)) (and (not (eobp))
(if fill-individual-varying-indent
;; If this line is a separator line, with or
;; without prefix, end the paragraph.
(and
(not (looking-at paragraph-separate)) (not (looking-at paragraph-separate))
(save-excursion (save-excursion
(not (and (looking-at fill-prefix-regexp) (not (and (looking-at fill-prefix-regexp)
(progn (forward-char (length fill-prefix)) (progn (forward-char (length fill-prefix))
(looking-at paragraph-separate)))))))) (looking-at paragraph-separate))))))
;; If this line has more or less indent
;; than the fill prefix wants, end the paragraph.
(and (looking-at fill-prefix-regexp)
(save-excursion
(not (progn (forward-char (length fill-prefix))
(or (looking-at paragraph-separate)
(looking-at paragraph-start))))))))))
;; Fill this paragraph, but don't add a newline at the end. ;; Fill this paragraph, but don't add a newline at the end.
(let ((had-newline (bolp))) (let ((had-newline (bolp)))
(fill-region-as-paragraph start (point) justifyp) (fill-region-as-paragraph start (point) justifyp)
(or had-newline (delete-char -1)))))))) (or had-newline (delete-char -1))))))))
\ No newline at end of file
...@@ -3,7 +3,6 @@ define pr ...@@ -3,7 +3,6 @@ define pr
set Fprin1 ($, Qexternal_debugging_output) set Fprin1 ($, Qexternal_debugging_output)
echo \n echo \n
end end
document pr document pr
Print the emacs s-expression which is $. Print the emacs s-expression which is $.
Works only when an inferior emacs is executing. Works only when an inferior emacs is executing.
...@@ -13,73 +12,105 @@ define xtype ...@@ -13,73 +12,105 @@ define xtype
print (enum Lisp_Type) (($ >> 24) & 0x7f) print (enum Lisp_Type) (($ >> 24) & 0x7f)
p $$ p $$
end end
document xtype
Print the type of $, assuming it is an Elisp value.
end
define xint define xint
print (($ & 0x00ffffff) << 8) >> 8 print (($ & 0x00ffffff) << 8) >> 8
end end
document xint
Print $, assuming it is an Elisp integer. This gets the sign right.
end
define xptr define xptr
print (void *) ($ & 0x00ffffff) print (void *) ($ & 0x00ffffff)
end end
document xptr
Print the pointer portion of $, assuming it is an Elisp value.
end
define xwindow define xwindow
print (struct window *) ($ & 0x00ffffff) print (struct window *) ($ & 0x00ffffff)
end end
document xwindow
Print $ as a window pointer, assuming it is an Elisp window value.
end
define xmarker define xmarker
print (struct Lisp_Marker *) ($ & 0x00ffffff) print (struct Lisp_Marker *) ($ & 0x00ffffff)
end end
document xmarker
Print $ as a marker pointer, assuming it is an Elisp marker value.
end
define xbuffer define xbuffer
print (struct buffer *) ($ & 0x00ffffff) print (struct buffer *) ($ & 0x00ffffff)
end end
document xbuffer
Print $ as a buffer pointer, assuming it is an Elisp buffer value.
end
define xsymbol define xsymbol
print (struct Lisp_Symbol *) ($ & 0x00ffffff) print (struct Lisp_Symbol *) ($ & 0x00ffffff)
print &$->name->data print &$->name->data
print $$ print $$
end end
document xsymbol
Print the name and address of the symbol $.
This command assumes that $ is an Elisp symbol value.
end
define xstring define xstring
print (struct Lisp_String *) ($ & 0x00ffffff) print (struct Lisp_String *) ($ & 0x00ffffff)
print ($->data[0])@($->size) print ($->size > 10000) ? "big string" : ($->data[0])@($->size)
print $$ print $$
end end
document xstring document xstring
Assume that $ is an Emacs Lisp string object, print the string's Print the contents and address of the string $.
contents, and set $ to a pointer to the string. This command assumes that $ is an Elisp string value.
end end
define xvector define xvector
set $temp = (struct Lisp_Vector *) ($ & 0x00ffffff) set $temp = (struct Lisp_Vector *) ($ & 0x00ffffff)
print ($temp->contents[0])@($temp->size) print ($temp->size > 10000) ? "big vector" : ($temp->contents[0])@($temp->size)
print $temp print $temp
end end
document xvector document xvector
Assume that $ is an Emacs Lisp vector object, print the vector's Print the contents and address of the vector $.
contents, and set $ to a pointer to the vector. This command assumes that $ is an Elisp vector value.
end end
define xscreen define xscreen
print (struct screen *) ($ & 0x00ffffff) print (struct screen *) ($ & 0x00ffffff)
end end
document xwindow
Print $ as a screen pointer, assuming it is an Elisp screen value.
end
define xcons define xcons
print (struct Lisp_Cons *) ($ & 0x00ffffff) print (struct Lisp_Cons *) ($ & 0x00ffffff)
print *$ print *$
end end
document xcons
Print the contents of $, assuming it is an Elisp cons.
end