mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
upstream
This commit is contained in:
commit
55fa71b3d9
154 changed files with 3513 additions and 1625 deletions
64
ChangeLog
64
ChangeLog
|
|
@ -1,3 +1,67 @@
|
|||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (AH_BOTTOM): Use an include file, so that the
|
||||
contents do not get processed by autoheader.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Do not overwrite config.status while executing it (Bug#11214).
|
||||
* Makefile.in (MAKEFILE_NAME): New macro.
|
||||
($(MAKEFILE_NAME)): Rename rule from Makefile.
|
||||
* configure.ac (epaths): Set MAKEFILE_NAME to a bogus value,
|
||||
so that GNU 'make' isn't tempted to make the Makefile and then
|
||||
regenerate config.status while config.status is running.
|
||||
|
||||
Update .PHONY listings in makefiles.
|
||||
* Makefile.in (.PHONY): Add all, ${SUBDIR}, blessmail, epath-force,
|
||||
FRC, install-arch-dep, install-arch-indep, install-doc,
|
||||
install-info, install-man, install-etc, install-strip, uninstall,
|
||||
bootstrap-clean, TAGS, tags, info-real, force-info, check-info-dir.
|
||||
(.RECURSIVE): Remove; hasn't been needed for years.
|
||||
|
||||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (SIGNAL_H_AHB): New hack macro.
|
||||
(opsysfile): Set to empty on netbsd, openbsd.
|
||||
(AH_BOTTOM): Include signal.h if SIGNAL_H_AHB is defined.
|
||||
|
||||
* configure.ac (_longjmp, _setjmp, TIOCSIGSEND): Move here from src/s.
|
||||
|
||||
2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* Makefile.in (install-arch-indep): Remove sh -x.
|
||||
|
||||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (opsysfile): Tweak message for null case.
|
||||
|
||||
* configure.ac (opsysfile): Set to empty on aix4-2, freebsd,
|
||||
gnu-linux, gnu-kfreebsd; and to usg5-4-common.h on sol2*, unixware.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
* doc/misc/texinfo.tex: Update to 2012-07-29.17 version.
|
||||
|
||||
2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* Makefile.in (install-arch-indep): Handle space in locallisppath.
|
||||
|
||||
2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib environ module (Bug#9772).
|
||||
* m4/environ.m4: New file, from gnulib.
|
||||
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
|
||||
|
||||
Use Gnulib stdalign module (Bug#9772, Bug#9960).
|
||||
This should improve portability of macros like alignof and DECL_ALIGN.
|
||||
* lib/stdalign.in.h, m4/stdalign.m4: New files, from gnulib.
|
||||
* .bzrignore: Add lib/stdalign.h.
|
||||
* config.bat: Do not set NO_DECL_ALIGN; no longer needed.
|
||||
Copy lib/stdalign.in.h to lib/stdalign.in-h as needed.
|
||||
* configure.ac (HAVE_ATTRIBUTE_ALIGNED): Remove the code that
|
||||
fiddles with this, as gnulib now does this for us.
|
||||
|
||||
2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Fix toolkit configuration report.
|
||||
|
|
|
|||
30
Makefile.in
30
Makefile.in
|
|
@ -278,6 +278,8 @@ COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic
|
|||
|
||||
all: ${SUBDIR}
|
||||
|
||||
.PHONY: all ${SUBDIR} blessmail epaths-force FRC
|
||||
|
||||
removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
|
||||
|
||||
# Generate epaths.h from epaths.in. This target is invoked by `configure'.
|
||||
|
|
@ -285,9 +287,9 @@ removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
|
|||
# to just letting configure generate epaths.h from epaths.in in a
|
||||
# similar way to how Makefile is made from Makefile.in.
|
||||
epaths-force: FRC
|
||||
@(standardlisppath=`echo ${standardlisppath} | ${removenullpaths}` ; \
|
||||
locallisppath=`echo ${locallisppath} | ${removenullpaths}` ; \
|
||||
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
|
||||
@(standardlisppath=`echo "${standardlisppath}" | ${removenullpaths}` ; \
|
||||
locallisppath=`echo "${locallisppath}" | ${removenullpaths}` ; \
|
||||
buildlisppath=`echo "${buildlisppath}" | ${removenullpaths}` ; \
|
||||
x_default_search_path=`echo ${x_default_search_path}`; \
|
||||
gamedir=`echo ${gamedir}`; \
|
||||
sed < ${srcdir}/src/epaths.in > epaths.h.$$$$ \
|
||||
|
|
@ -307,8 +309,6 @@ lib-src src: lib
|
|||
|
||||
src: lib-src FRC
|
||||
|
||||
.RECURSIVE: ${SUBDIR}
|
||||
|
||||
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'
|
||||
# and `leim'.
|
||||
lisp leim: src
|
||||
|
|
@ -350,7 +350,12 @@ blessmail: Makefile src FRC
|
|||
# We used to have one rule per */Makefile.in, but that leads to race
|
||||
# conditions with parallel makes, so let's assume that the time stamp on
|
||||
# ./Makefile is representative of the time stamp on all the other Makefiles.
|
||||
Makefile: config.status $(srcdir)/src/config.in \
|
||||
#
|
||||
# config.status overrides MAKEFILE_NAME with a bogus name when creating
|
||||
# src/epaths.h, so that 'make epaths-force' does not recursively invoke
|
||||
# config.status and overwrite config.status while executing it (Bug#11214).
|
||||
MAKEFILE_NAME = Makefile
|
||||
$(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
|
||||
$(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
|
||||
./config.status
|
||||
|
||||
|
|
@ -393,12 +398,13 @@ $(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
|
|||
|
||||
# ==================== Installation ====================
|
||||
|
||||
.PHONY: install install-arch-dep install-arch-indep install-doc install-info
|
||||
.PHONY: install-man install-etc install-strip uninstall
|
||||
|
||||
## If we let lib-src do its own installation, that means we
|
||||
## don't have to duplicate the list of utilities to install in
|
||||
## this Makefile as well.
|
||||
|
||||
.PHONY: install
|
||||
|
||||
install: all install-arch-indep install-doc install-arch-dep blessmail
|
||||
@true
|
||||
|
||||
|
|
@ -489,7 +495,8 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
|
|||
## http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00005.html
|
||||
install-arch-indep: install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
|
||||
umask 022 ; \
|
||||
$(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'`
|
||||
eval $(MKDIR_P) \
|
||||
"'$(DESTDIR)`echo ${locallisppath}|sed \"s,:,' '$(DESTDIR),g\"`'"
|
||||
-set ${COPYDESTS} ; \
|
||||
unset CDPATH; \
|
||||
$(set_installuser); \
|
||||
|
|
@ -680,7 +687,7 @@ FRC:
|
|||
|
||||
# ==================== Cleaning up and miscellanea ====================
|
||||
|
||||
.PHONY: mostlyclean clean distclean maintainer-clean extraclean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean extraclean
|
||||
|
||||
### `mostlyclean'
|
||||
### Like `clean', but may refrain from deleting a few files that people
|
||||
|
|
@ -797,6 +804,7 @@ extraclean:
|
|||
|
||||
# The src subdir knows how to do the right thing
|
||||
# even when the build directory and source dir are different.
|
||||
.PHONY: TAGS tags
|
||||
TAGS tags: lib lib-src src
|
||||
cd src; $(MAKE) $(MFLAGS) tags
|
||||
|
||||
|
|
@ -811,7 +819,7 @@ check:
|
|||
dist:
|
||||
cd ${srcdir}; ./make-dist
|
||||
|
||||
.PHONY: info dvi dist check html
|
||||
.PHONY: info dvi dist check html info-real force-info check-info-dir
|
||||
|
||||
info-real:
|
||||
(cd doc/emacs; $(MAKE) $(MFLAGS) info)
|
||||
|
|
|
|||
|
|
@ -61,8 +61,6 @@ SYSTEM_TYPE
|
|||
** Misc macros
|
||||
USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
|
||||
|
||||
** Replace, the definition is trivial: SWITCH_ENUM_CAST
|
||||
|
||||
** Defines from src/s/*.h. Some of these might not be used in the code anymore, so they can be removed. The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/s/*.h.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib environ and stdalign modules (Bug#9772, Bug#9960).
|
||||
* merge-gnulib: Add environ, stdalign.
|
||||
|
||||
2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
* coccinelle/unibyte_string.cocci: Semantic patch to convert from
|
||||
|
|
|
|||
|
|
@ -28,11 +28,12 @@ GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
|
|||
GNULIB_MODULES='
|
||||
alloca-opt c-strcase
|
||||
careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
|
||||
dtoastr dtotimespec dup2
|
||||
dtoastr dtotimespec dup2 environ
|
||||
filemode getloadavg getopt-gnu gettime gettimeofday
|
||||
ignore-value intprops largefile lstat
|
||||
manywarnings mktime pselect pthread_sigmask readlink
|
||||
socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat
|
||||
socklen stat-time stdalign stdarg stdio
|
||||
strftime strtoimax strtoumax symlink sys_stat
|
||||
sys_time time timespec-add timespec-sub utimens
|
||||
warnings
|
||||
'
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
|
|
@ -65,9 +65,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|||
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/c-strtod.m4 \
|
||||
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/dup2.m4 \
|
||||
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/filemode.m4 \
|
||||
$(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \
|
||||
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
|
||||
$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/extensions.m4 \
|
||||
$(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/getloadavg.m4 \
|
||||
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettime.m4 \
|
||||
$(top_srcdir)/m4/gettimeofday.m4 \
|
||||
$(top_srcdir)/m4/gnulib-common.m4 \
|
||||
$(top_srcdir)/m4/gnulib-comp.m4 \
|
||||
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inttypes.m4 \
|
||||
|
|
|
|||
1
autogen/aclocal.m4
vendored
1
autogen/aclocal.m4
vendored
|
|
@ -989,6 +989,7 @@ m4_include([m4/alloca.m4])
|
|||
m4_include([m4/c-strtod.m4])
|
||||
m4_include([m4/clock_time.m4])
|
||||
m4_include([m4/dup2.m4])
|
||||
m4_include([m4/environ.m4])
|
||||
m4_include([m4/extensions.m4])
|
||||
m4_include([m4/filemode.m4])
|
||||
m4_include([m4/getloadavg.m4])
|
||||
|
|
|
|||
|
|
@ -220,9 +220,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if ALSA is available. */
|
||||
#undef HAVE_ALSA
|
||||
|
||||
/* Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works. */
|
||||
#undef HAVE_ATTRIBUTE_ALIGNED
|
||||
|
||||
/* Define to 1 if strtold conforms to C99. */
|
||||
#undef HAVE_C99_STRTOLD
|
||||
|
||||
|
|
@ -335,6 +332,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `endpwent' function. */
|
||||
#undef HAVE_ENDPWENT
|
||||
|
||||
/* Define if you have the declaration of environ. */
|
||||
#undef HAVE_ENVIRON_DECL
|
||||
|
||||
/* Define to 1 if you have the `euidaccess' function. */
|
||||
#undef HAVE_EUIDACCESS
|
||||
|
||||
|
|
|
|||
699
autogen/configure
vendored
699
autogen/configure
vendored
|
|
@ -7128,6 +7128,7 @@ esac
|
|||
# Code from module dosname:
|
||||
# Code from module dtoastr:
|
||||
# Code from module dup2:
|
||||
# Code from module environ:
|
||||
# Code from module extensions:
|
||||
|
||||
# Code from module filemode:
|
||||
|
|
@ -9279,37 +9280,6 @@ fi
|
|||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ ((__aligned__ (expr)))" >&5
|
||||
$as_echo_n "checking for __attribute__ ((__aligned__ (expr)))... " >&6; }
|
||||
if test "${emacs_cv_attribute_aligned+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
char __attribute__ ((__aligned__ (1 << 3))) c;
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
emacs_cv_attribute_aligned=yes
|
||||
else
|
||||
emacs_cv_attribute_aligned=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_attribute_aligned" >&5
|
||||
$as_echo "$emacs_cv_attribute_aligned" >&6; }
|
||||
if test $emacs_cv_attribute_aligned = yes; then
|
||||
|
||||
$as_echo "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
DEPFLAGS=
|
||||
MKDEPDIR=":"
|
||||
|
|
@ -15061,9 +15031,611 @@ $as_echo "#define HAVE_PROCFS 1" >>confdefs.h
|
|||
esac
|
||||
|
||||
case $opsys in
|
||||
<<<<<<< TREE
|
||||
gnu-kfreebsd) opsysfile="s/gnu-linux.h" ;;
|
||||
|
||||
hpux11)
|
||||
=======
|
||||
darwin | freebsd | netbsd | openbsd )
|
||||
|
||||
$as_echo "#define DONT_REOPEN_PTY 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
case $opsys in
|
||||
netbsd | openbsd) sound_device="/dev/audio" ;;
|
||||
*) sound_device="/dev/dsp" ;;
|
||||
esac
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define DEFAULT_SOUND_DEVICE "$sound_device"
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
darwin | gnu-linux | gnu-kfreebsd )
|
||||
|
||||
$as_echo "#define INTERRUPT_INPUT 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
cygwin|gnu|gnu-linux|gnu-kfreebsd|irix6-5|freebsd|netbsd|openbsd)
|
||||
|
||||
$as_echo "#define NARROWPROTO 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
aix4-2 )
|
||||
$as_echo "#define PTY_ITERATION int c; for (c = 0; !c ; c++) " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF strcpy (pty_name, \"/dev/ptc\"); " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd)); " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
cygwin )
|
||||
$as_echo "#define PTY_ITERATION int i; for (i = 0; i < 1; i++) " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_OPEN do { int dummy; SIGMASKTYPE mask; mask = sigblock (sigmask (SIGCHLD)); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; sigsetmask (mask); if (fd >= 0) emacs_close (dummy); } while (0) " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
darwin )
|
||||
$as_echo "#define PTY_ITERATION int i; for (i = 0; i < 1; i++) " >>confdefs.h
|
||||
|
||||
$as_echo "#define FIRST_PTY_LETTER 'p'" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_OPEN do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (0) " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu | freebsd | netbsd | openbsd )
|
||||
$as_echo "#define FIRST_PTY_LETTER 'p'" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
if test "x$ac_cv_func_grantpt" = xyes; then
|
||||
|
||||
$as_echo "#define UNIX98_PTYS 1" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_ITERATION int i; for (i = 0; i < 1; i++) " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptyname; sigblock (sigmask (SIGCHLD)); if (grantpt (fd) == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname(fd))) { sigunblock (sigmask (SIGCHLD)); close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); sigunblock (sigmask (SIGCHLD)); } " >>confdefs.h
|
||||
|
||||
if test "x$ac_cv_func_getpt" = xyes; then
|
||||
$as_echo "#define PTY_OPEN fd = getpt ()" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
else
|
||||
$as_echo "#define PTY_NAME_SPRINTF strcpy (pty_name, \"/dev/ptmx\"); " >>confdefs.h
|
||||
|
||||
fi
|
||||
else
|
||||
$as_echo "#define FIRST_PTY_LETTER 'p'" >>confdefs.h
|
||||
|
||||
fi
|
||||
;;
|
||||
|
||||
hpux*)
|
||||
$as_echo "#define FIRST_PTY_LETTER 'p'" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF sprintf (pty_name, \"/dev/ptym/pty%c%x\", c, i); " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF sprintf (pty_name, \"/dev/pty/tty%c%x\", c, i); " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
irix6-5 )
|
||||
$as_echo "#define PTY_ITERATION /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define FIRST_PTY_LETTER 'q'" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_OPEN { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); } " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
sol2* )
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; sigblock (sigmask (SIGCLD)); if (grantpt (fd) == -1) { emacs_close (fd); return -1; } sigunblock (sigmask (SIGCLD)); if (unlockpt (fd) == -1) { emacs_close (fd); return -1; } if (!(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); } " >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
unixware )
|
||||
$as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; sigblock(sigmask(SIGCLD)); if (grantpt(fd) == -1) fatal(\"could not grant slave pty\"); sigunblock(sigmask(SIGCLD)); if (unlockpt(fd) == -1) fatal(\"could not unlock slave pty\"); if (!(ptyname = ptsname(fd))) fatal (\"could not enable slave pty\"); snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); } " >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
sol2* | unixware )
|
||||
$as_echo "#define FIRST_PTY_LETTER 'z'" >>confdefs.h
|
||||
|
||||
$as_echo "#define PTY_NAME_SPRINTF strcpy (pty_name, \"/dev/ptmx\"); " >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define SETUP_SLAVE_PTY if (ioctl (xforkin, I_PUSH, \"ptem\") == -1) fatal (\"ioctl I_PUSH ptem\"); if (ioctl (xforkin, I_PUSH, \"ldterm\") == -1) fatal (\"ioctl I_PUSH ldterm\"); if (ioctl (xforkin, I_PUSH, \"ttcompat\") == -1) fatal (\"ioctl I_PUSH ttcompat\");" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd )
|
||||
$as_echo "#define SIGNALS_VIA_CHARACTERS 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signals via characters" >&5
|
||||
$as_echo_n "checking for signals via characters... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <linux/version.h>
|
||||
#if LINUX_VERSION_CODE < 0x20400
|
||||
# error "Linux version too old"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
emacs_signals_via_chars=yes
|
||||
else
|
||||
emacs_signals_via_chars=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_signals_via_chars" >&5
|
||||
$as_echo "$emacs_signals_via_chars" >&6; }
|
||||
test $emacs_signals_via_chars = yes && $as_echo "#define SIGNALS_VIA_CHARACTERS 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
cygwin | darwin | freebsd | netbsd | openbsd )
|
||||
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
unixware)
|
||||
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu | gnu-linux | gnu-kfreebsd )
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of pending output formalism" >&5
|
||||
$as_echo_n "checking for style of pending output formalism... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <stdio.h>
|
||||
#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
|
||||
# error "stdio definitions not found"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
emacs_pending_output=new
|
||||
else
|
||||
emacs_pending_output=unknown
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
|
||||
if test $emacs_pending_output = unknown; then
|
||||
case $opsys in
|
||||
gnu-linux | gnu-kfreebsd)
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <stdio.h>
|
||||
#ifndef __UCLIBC__
|
||||
# error "not using uclibc"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
emacs_pending_output=uclibc
|
||||
else
|
||||
emacs_pending_output=old
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_pending_output" >&5
|
||||
$as_echo "$emacs_pending_output" >&6; }
|
||||
|
||||
case $emacs_pending_output in
|
||||
new)
|
||||
$as_echo "#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) ((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)" >>confdefs.h
|
||||
|
||||
;;
|
||||
uclibc)
|
||||
$as_echo "#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) ((FILE)->__bufpos - (FILE)->__bufstart)" >>confdefs.h
|
||||
|
||||
;;
|
||||
old)
|
||||
$as_echo "#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) ((FILE)->_pptr - (FILE)->_pbase)" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
gnu)
|
||||
$as_echo "#define DATA_START ({ extern int data_start; (char *) &data_start; })" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
hpux*)
|
||||
$as_echo "#define DATA_START 0x40000000" >>confdefs.h
|
||||
|
||||
$as_echo "#define DATA_SEG_BITS 0x40000000" >>confdefs.h
|
||||
|
||||
;;
|
||||
irix6-5)
|
||||
$as_echo "#define DATA_START 0x10000000" >>confdefs.h
|
||||
|
||||
$as_echo "#define DATA_SEG_BITS 0x10000000" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
darwin) $as_echo "#define TAB3 OXTABS" >>confdefs.h
|
||||
;;
|
||||
|
||||
gnu | freebsd | netbsd | openbsd )
|
||||
|
||||
$as_echo "#define TABDLY OXTABS" >>confdefs.h
|
||||
|
||||
$as_echo "#define TAB3 OXTABS" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifndef __i386__
|
||||
# error "not i386"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
$as_echo "#define ULIMIT_BREAK_VALUE (32*1024*1024)" >>confdefs.h
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifndef __ia64__
|
||||
# error "not ia64"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
$as_echo "#define GC_MARK_SECONDARY_STACK() do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (0)" >>confdefs.h
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
;;
|
||||
|
||||
hpux*)
|
||||
|
||||
$as_echo "#define RUN_TIME_REMAP 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
irix6-5)
|
||||
$as_echo "#define ULIMIT_BREAK_VALUE 0x14000000" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
aix4-2 | hpux* | unixware)
|
||||
$as_echo "#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#if defined __i386__ || defined __sparc__ || defined __mc68000__ \
|
||||
|| defined __alpha__ || defined __mips__ || defined __s390__ \
|
||||
|| defined __arm__ || defined __powerpc__ || defined __amd64__ \
|
||||
|| defined __ia64__ || defined __sh__
|
||||
/* ok */
|
||||
#else
|
||||
# error "setjmp not known to work on this arch"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
$as_echo "#define GC_SETJMP_WORKS 1" >>confdefs.h
|
||||
|
||||
else
|
||||
$as_echo "#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE" >>confdefs.h
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
if test x$GCC = xyes; then
|
||||
$as_echo "#define GC_SETJMP_WORKS 1" >>confdefs.h
|
||||
|
||||
else
|
||||
case $opsys in
|
||||
freebsd | netbsd | openbsd | irix6-5 | sol2* )
|
||||
$as_echo "#define GC_SETJMP_WORKS 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
case $opsys in
|
||||
hpux* | sol2* )
|
||||
|
||||
$as_echo "#define XOS_NEEDS_TIME_H 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $opsys in
|
||||
aix4-2)
|
||||
opsysfile=
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define USG5 /**/" >>confdefs.h
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifndef _AIX
|
||||
# error "_AIX not defined"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
|
||||
$as_echo "#define _AIX /**/" >>confdefs.h
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
;;
|
||||
|
||||
cygwin)
|
||||
opsysfile=
|
||||
|
||||
$as_echo "#define CYGWIN 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
darwin)
|
||||
$as_echo "#define BSD4_2 /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define BSD_SYSTEM /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define DARWIN_OS /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
freebsd)
|
||||
opsysfile=
|
||||
$as_echo "#define BSD4_2 /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define BSD_SYSTEM_AHB 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu | netbsd | openbsd )
|
||||
$as_echo "#define BSD4_2 /**/" >>confdefs.h
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifndef BSD_SYSTEM
|
||||
# error "BSD_SYSTEM not defined"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
||||
|
||||
else
|
||||
$as_echo "#define BSD_SYSTEM 43" >>confdefs.h
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
opsysfile=
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define GNU_LINUX /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
hpux*)
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define USG5 /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define HPUX /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
irix6-5)
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define USG5 /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define IRIX6_5 /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
sol2*)
|
||||
opsysfile="s/usg5-4-common.h"
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define USG5 /**/" >>confdefs.h
|
||||
|
||||
|
||||
$as_echo "#define SOLARIS2 /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
unixware)
|
||||
opsysfile="s/usg5-4-common.h"
|
||||
$as_echo "#define USG /**/" >>confdefs.h
|
||||
|
||||
$as_echo "#define USG5 /**/" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
cygwin)
|
||||
|
||||
$as_echo "#define G_SLICE_ALWAYS_MALLOC 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
|
||||
gnu) opsysfile= ;;
|
||||
|
||||
hpux11)
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
$as_echo "#define BROKEN_SA_RESTART 1" >>confdefs.h
|
||||
|
||||
|
|
@ -15958,6 +16530,57 @@ $as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h
|
|||
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
|
||||
$as_echo_n "checking if environ is properly declared... " >&6; }
|
||||
if test "${gt_cv_var_environ_declaration+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#if HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
|
||||
#include <stdlib.h>
|
||||
|
||||
extern struct { int foo; } environ;
|
||||
int
|
||||
main ()
|
||||
{
|
||||
environ.foo = 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
gt_cv_var_environ_declaration=no
|
||||
else
|
||||
gt_cv_var_environ_declaration=yes
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
|
||||
$as_echo "$gt_cv_var_environ_declaration" >&6; }
|
||||
if test $gt_cv_var_environ_declaration = yes; then
|
||||
|
||||
$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if test $gt_cv_var_environ_declaration != yes; then
|
||||
HAVE_DECL_ENVIRON=0
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_dm_mode in struct stat" >&5
|
||||
$as_echo_n "checking for st_dm_mode in struct stat... " >&6; }
|
||||
if test "${ac_cv_struct_st_dm_mode+set}" = set; then :
|
||||
|
|
@ -18864,6 +19487,18 @@ fi
|
|||
|
||||
|
||||
|
||||
GNULIB_ENVIRON=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Persuade glibc <stdlib.h> to declare getloadavg().
|
||||
|
||||
|
||||
|
|
@ -23985,7 +24620,7 @@ echo "
|
|||
Configured for \`${canonical}'.
|
||||
|
||||
Where should the build process find the source code? ${srcdir}
|
||||
What operating system file should Emacs use? ${opsysfile-none}
|
||||
What operating system file should Emacs use? ${opsysfile:-none}
|
||||
What compiler should emacs be built with? ${CC} ${CFLAGS}
|
||||
Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
|
||||
Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
|
||||
|
|
|
|||
18
config.bat
18
config.bat
|
|
@ -161,22 +161,6 @@ if exist config.in sed -f ../msdos/sed2x.inp < config.in > config.tmp
|
|||
if exist ..\autogen\config.in sed -f ../msdos/sed2x.inp < ..\autogen\config.in > config.tmp
|
||||
:src4
|
||||
sed -f ../msdos/sed2v2.inp <config.tmp >config.h2
|
||||
Rem See if DECL_ALIGN can be supported with this GCC
|
||||
rm -f junk.c junk.o junk junk.exe
|
||||
echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c
|
||||
rem Two percent signs because it is a special character for COMMAND.COM/CMD
|
||||
rem Filter thru Sed because "&" is special for CMD.EXE
|
||||
echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c
|
||||
gcc -o junk junk.c
|
||||
if not exist junk.exe coff2exe junk
|
||||
junk
|
||||
If Not ErrorLevel 1 Goto alignOk
|
||||
Echo WARNING: Your GCC does not support 8-byte aligned variables.
|
||||
Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB.
|
||||
rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG
|
||||
rem For details see lisp.h where it defines USE_LSB_TAG
|
||||
echo #define NO_DECL_ALIGN >>config.h2
|
||||
:alignOk
|
||||
Rem See if they have libxml2 later than v2.2.0 installed
|
||||
Echo Checking whether libxml2 v2.2.1 or later is installed ...
|
||||
rm -f junk.c junk.o junk junk.exe
|
||||
|
|
@ -281,6 +265,7 @@ Rem Rename files like djtar on plain DOS filesystem would.
|
|||
If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
|
||||
If Exist alloca.in.h update alloca.in.h alloca.in-h
|
||||
If Exist getopt.in.h update getopt.in.h getopt.in-h
|
||||
If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
|
||||
If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
|
||||
If Exist signal.in.h update signal.in.h signal.in-h
|
||||
If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
|
||||
|
|
@ -346,4 +331,3 @@ set nodebug=
|
|||
set djgpp_ver=
|
||||
set sys_malloc=
|
||||
set libxml=
|
||||
|
||||
|
|
|
|||
146
configure.ac
146
configure.ac
|
|
@ -1300,19 +1300,6 @@ AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
|
|||
dnl Check for endianness.
|
||||
dnl AC_C_BIGENDIAN is done by gnulib.
|
||||
|
||||
AC_CACHE_CHECK([for __attribute__ ((__aligned__ (expr)))],
|
||||
[emacs_cv_attribute_aligned],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[char __attribute__ ((__aligned__ (1 << 3))) c;]],
|
||||
[[]])],
|
||||
[emacs_cv_attribute_aligned=yes],
|
||||
[emacs_cv_attribute_aligned=no])])
|
||||
if test $emacs_cv_attribute_aligned = yes; then
|
||||
AC_DEFINE([HAVE_ATTRIBUTE_ALIGNED], 1,
|
||||
[Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works.])
|
||||
fi
|
||||
|
||||
dnl check for Make feature
|
||||
dnl AC_PROG_MAKE_SET is done by Automake.
|
||||
|
||||
|
|
@ -3706,12 +3693,33 @@ else
|
|||
fi dnl GCC?
|
||||
|
||||
|
||||
dnl Used in xfaces.c.
|
||||
case $opsys in
|
||||
sol2* | unixware )
|
||||
dnl setjmp and longjmp can safely replace _setjmp and _longjmp,
|
||||
dnl but they will run more slowly.
|
||||
AC_DEFINE(_setjmp, setjmp, [Some platforms redefine this.])
|
||||
AC_DEFINE(_longjmp, longjmp, [Some platforms redefine this.])
|
||||
dnl TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
|
||||
dnl subprocesses the usual way. But TIOCSIGNAL does work for PTYs,
|
||||
dnl and this is all we need.
|
||||
AC_DEFINE(TIOCSIGSEND, TIOCSIGNAL, [Some platforms redefine this.])
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
hpux* | sol2* )
|
||||
dnl Used in xfaces.c.
|
||||
AC_DEFINE(XOS_NEEDS_TIME_H, 1, [Compensate for a bug in Xos.h on
|
||||
some systems, where it requires time.h.])
|
||||
;;
|
||||
|
||||
netbsd | openbsd )
|
||||
dnl Greg A. Woods <woods@weird.com> says we must include signal.h
|
||||
dnl before syssignal.h is included, to work around interface conflicts
|
||||
dnl that are handled with CPP __RENAME() macro in signal.h.
|
||||
AC_DEFINE(SIGNAL_H_AHB, 1, [Define if AH_BOTTOM should include signal.h.])
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
@ -3724,6 +3732,7 @@ AH_TEMPLATE(USG5, [Define if the system is compatible with System V.])
|
|||
|
||||
case $opsys in
|
||||
aix4-2)
|
||||
opsysfile=
|
||||
AC_DEFINE(USG, [])
|
||||
AC_DEFINE(USG5, [])
|
||||
dnl This symbol should be defined on AIX Version 3 ???????
|
||||
|
|
@ -3751,6 +3760,7 @@ case $opsys in
|
|||
;;
|
||||
|
||||
freebsd)
|
||||
opsysfile=
|
||||
AC_DEFINE(BSD4_2, [])
|
||||
dnl Hack to avoid calling AC_PREPROC_IFELSE multiple times.
|
||||
dnl Would not be needed with autoconf >= 2.67, where the
|
||||
|
|
@ -3768,6 +3778,7 @@ case $opsys in
|
|||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd )
|
||||
opsysfile=
|
||||
AC_DEFINE(USG, [])
|
||||
AC_DEFINE(GNU_LINUX, [], [Define if ths system is compatible with GNU/Linux.])
|
||||
;;
|
||||
|
|
@ -3785,12 +3796,14 @@ case $opsys in
|
|||
;;
|
||||
|
||||
sol2*)
|
||||
opsysfile="s/usg5-4-common.h"
|
||||
AC_DEFINE(USG, [])
|
||||
AC_DEFINE(USG5, [])
|
||||
AC_DEFINE(SOLARIS2, [], [Define if the system is Solaris.])
|
||||
;;
|
||||
|
||||
unixware)
|
||||
opsysfile="s/usg5-4-common.h"
|
||||
AC_DEFINE(USG, [])
|
||||
AC_DEFINE(USG5, [])
|
||||
;;
|
||||
|
|
@ -3810,8 +3823,6 @@ case $opsys in
|
|||
|
||||
gnu) opsysfile= ;;
|
||||
|
||||
gnu-kfreebsd) opsysfile="s/gnu-linux.h" ;;
|
||||
|
||||
hpux11)
|
||||
dnl See comments in sysdep.c:sys_signal.
|
||||
dnl SA_RESTART resets the timeout of `select' on hpux11.
|
||||
|
|
@ -3834,7 +3845,7 @@ case $opsys in
|
|||
should not call setpgrp.])
|
||||
;;
|
||||
|
||||
openbsd) opsysfile="s/netbsd.h" ;;
|
||||
netbsd | openbsd ) opsysfile= ;;
|
||||
|
||||
sol2-10)
|
||||
AC_DEFINE(_STRUCTURED_PROC, 1, [Needed for system_process_attributes
|
||||
|
|
@ -4248,102 +4259,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#define EMACS_CONFIG_H
|
||||
])dnl
|
||||
|
||||
AH_BOTTOM([
|
||||
/* On AIX 3 this must be included before any other include file. */
|
||||
#include <alloca.h>
|
||||
#if ! HAVE_ALLOCA
|
||||
# error "alloca not available on this machine"
|
||||
#endif
|
||||
|
||||
/* This silences a few compilation warnings on FreeBSD. */
|
||||
#ifdef BSD_SYSTEM_AHB
|
||||
#undef BSD_SYSTEM_AHB
|
||||
#undef BSD_SYSTEM
|
||||
#if __FreeBSD__ == 1
|
||||
#define BSD_SYSTEM 199103
|
||||
#elif __FreeBSD__ == 2
|
||||
#define BSD_SYSTEM 199306
|
||||
#elif __FreeBSD__ >= 3
|
||||
#define BSD_SYSTEM 199506
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define AMPERSAND_FULL_NAME if you use the convention
|
||||
that & in the full name stands for the login id. */
|
||||
/* Turned on June 1996 supposing nobody will mind it. */
|
||||
#define AMPERSAND_FULL_NAME
|
||||
|
||||
/* `subprocesses' should be defined if you want to
|
||||
have code for asynchronous subprocesses
|
||||
(as used in M-x compile and M-x shell).
|
||||
Only MSDOS does not support this (it overrides
|
||||
this in its config_opsysfile below). */
|
||||
|
||||
#define subprocesses
|
||||
|
||||
/* Include the os dependent file. */
|
||||
#ifdef config_opsysfile
|
||||
# include config_opsysfile
|
||||
#endif
|
||||
|
||||
/* Mac OS X / GNUstep need a bit more pure memory. Of the existing knobs,
|
||||
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */
|
||||
#ifdef HAVE_NS
|
||||
#if defined NS_IMPL_GNUSTEP
|
||||
# define SYSTEM_PURESIZE_EXTRA 30000
|
||||
#elif defined DARWIN_OS
|
||||
# define SYSTEM_PURESIZE_EXTRA 200000
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef emacs /* Don't do this for lib-src. */
|
||||
/* Tell regex.c to use a type compatible with Emacs. */
|
||||
#define RE_TRANSLATE_TYPE Lisp_Object
|
||||
#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
|
||||
#ifdef make_number
|
||||
/* If make_number is a macro, use it. */
|
||||
#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
|
||||
#else
|
||||
/* If make_number is a function, avoid it. */
|
||||
#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
|
||||
#define NO_INLINE __attribute__((noinline))
|
||||
#else
|
||||
#define NO_INLINE
|
||||
#endif
|
||||
|
||||
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
|
||||
#define EXTERNALLY_VISIBLE __attribute__((externally_visible))
|
||||
#else
|
||||
#define EXTERNALLY_VISIBLE
|
||||
#endif
|
||||
|
||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
||||
# define ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
|
||||
#else
|
||||
# define ATTRIBUTE_FORMAT(spec) /* empty */
|
||||
#endif
|
||||
|
||||
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
|
||||
# define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
|
||||
ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
|
||||
#else
|
||||
# define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
|
||||
ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
|
||||
#endif
|
||||
|
||||
#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST
|
||||
|
||||
/* Some versions of GNU/Linux define noinline in their headers. */
|
||||
#ifdef noinline
|
||||
#undef noinline
|
||||
#endif
|
||||
AH_BOTTOM([#include <conf_post.h>
|
||||
|
||||
#endif /* EMACS_CONFIG_H */
|
||||
|
||||
|
|
@ -4370,7 +4286,7 @@ echo "
|
|||
Configured for \`${canonical}'.
|
||||
|
||||
Where should the build process find the source code? ${srcdir}
|
||||
What operating system file should Emacs use? ${opsysfile-none}
|
||||
What operating system file should Emacs use? ${opsysfile:-none}
|
||||
What compiler should emacs be built with? ${CC} ${CFLAGS}
|
||||
Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
|
||||
Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
|
||||
|
|
@ -4514,7 +4430,7 @@ dnl by configure. This also explains the `move-if-change' test and
|
|||
dnl the use of force in the `epaths-force' rule in Makefile.in.
|
||||
AC_CONFIG_COMMANDS([epaths], [
|
||||
echo creating src/epaths.h
|
||||
${MAKE-make} epaths-force
|
||||
${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
|
||||
], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"])
|
||||
|
||||
AC_CONFIG_COMMANDS([gdbinit], [
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2012-07-21 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frames.texi (Mouse Commands): Fix the description of mouse-2.
|
||||
(Bug#11958)
|
||||
|
||||
2012-07-19 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* emacs.texi: Update ISBN.
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ Activate the region around the text selected by dragging, and copy it
|
|||
to the kill ring (@code{mouse-set-region}).
|
||||
|
||||
@item Mouse-2
|
||||
Yank the last killed text at the click position
|
||||
(@code{mouse-yank-at-click}).
|
||||
Move point to where you click, and insert the contents of the primary
|
||||
selection there (@code{mouse-yank-primary}).
|
||||
|
||||
@item Mouse-3
|
||||
If the region is active, move the nearer end of the region to the
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2012-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* nonascii.texi (Character Sets): Fix a typo. (Bug#12062)
|
||||
|
||||
2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Prefer typical American spelling for "acknowledgment".
|
||||
|
|
|
|||
|
|
@ -243,10 +243,10 @@ completion-annotate-function
|
|||
completion-at-point-functions
|
||||
completion-in-region-functions
|
||||
completion-list-insert-choice-function
|
||||
deactivate-current-input-method-function
|
||||
describe-current-input-method-function
|
||||
filter-buffer-substring-functions
|
||||
font-lock-function
|
||||
inactivate-current-input-method-function
|
||||
menu-bar-select-buffer-function
|
||||
read-file-name-function
|
||||
replace-re-search-function
|
||||
|
|
|
|||
|
|
@ -606,7 +606,7 @@ The value is a list of all defined character set names.
|
|||
@end defvar
|
||||
|
||||
@defun charset-priority-list &optional highestp
|
||||
This functions returns a list of all defined character sets ordered by
|
||||
This function returns a list of all defined character sets ordered by
|
||||
their priority. If @var{highestp} is non-@code{nil}, the function
|
||||
returns a single character set of the highest priority.
|
||||
@end defun
|
||||
|
|
|
|||
|
|
@ -1,3 +1,15 @@
|
|||
2012-07-30 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc.texi (Getting Started, Tutorial): Change simulated
|
||||
Calc output to match actual output.
|
||||
(Simplifying Formulas): Mention that algebraic simplification is now
|
||||
the default.
|
||||
|
||||
2012-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* faq.texi (Right-to-left alphabets): Update for Emacs 24.
|
||||
(Bug#12073)
|
||||
|
||||
2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Prefer typical American spelling for "acknowledgment".
|
||||
|
|
@ -4714,7 +4726,7 @@
|
|||
2007-11-07 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (Overview): Mention also the PuTTY integration under
|
||||
Win32. Remove paragraphs about Tramp's experimental status.
|
||||
w32. Remove paragraphs about Tramp's experimental status.
|
||||
(Frequently Asked Questions): Add code example for highlighting the
|
||||
mode line.
|
||||
|
||||
|
|
|
|||
|
|
@ -910,12 +910,12 @@ The derivative of
|
|||
|
||||
is
|
||||
|
||||
1 / ln(x) x
|
||||
1 / x ln(x)
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
(Note that by default, Calc gives division lower precedence than multiplication,
|
||||
so that @samp{1 / ln(x) x} is equivalent to @samp{1 / (ln(x) x)}.)
|
||||
so that @samp{1 / x ln(x)} is equivalent to @samp{1 / (x ln(x))}.)
|
||||
|
||||
To make this look nicer, you might want to press @kbd{d =} to center
|
||||
the formula, and even @kbd{d B} to use Big display mode.
|
||||
|
|
@ -932,7 +932,7 @@ is
|
|||
|
||||
1
|
||||
-------
|
||||
ln(x) x
|
||||
x ln(x)
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -964,7 +964,9 @@ and keyboard will revert to the way they were before.
|
|||
The related command @kbd{C-x * w} operates on a single word, which
|
||||
generally means a single number, inside text. It searches for an
|
||||
expression which ``looks'' like a number containing the point.
|
||||
Here's an example of its use:
|
||||
Here's an example of its use (before you try this, remove the Calc
|
||||
annotations or use a new buffer so that the extra settings in the
|
||||
annotations don't take effect):
|
||||
|
||||
@smallexample
|
||||
A slope of one-third corresponds to an angle of 1 degrees.
|
||||
|
|
@ -1175,15 +1177,16 @@ turned out to be more open-ended than one might have expected.
|
|||
|
||||
Emacs Lisp didn't have built-in floating point math (now it does), so
|
||||
this had to be simulated in software. In fact, Emacs integers would
|
||||
only comfortably fit six decimal digits or so---not enough for a decent
|
||||
calculator. So I had to write my own high-precision integer code as
|
||||
well, and once I had this I figured that arbitrary-size integers were
|
||||
just as easy as large integers. Arbitrary floating-point precision was
|
||||
the logical next step. Also, since the large integer arithmetic was
|
||||
there anyway it seemed only fair to give the user direct access to it,
|
||||
which in turn made it practical to support fractions as well as floats.
|
||||
All these features inspired me to look around for other data types that
|
||||
might be worth having.
|
||||
only comfortably fit six decimal digits or so (at the time)---not
|
||||
enough for a decent calculator. So I had to write my own
|
||||
high-precision integer code as well, and once I had this I figured
|
||||
that arbitrary-size integers were just as easy as large integers.
|
||||
Arbitrary floating-point precision was the logical next step. Also,
|
||||
since the large integer arithmetic was there anyway it seemed only
|
||||
fair to give the user direct access to it, which in turn made it
|
||||
practical to support fractions as well as floats. All these features
|
||||
inspired me to look around for other data types that might be worth
|
||||
having.
|
||||
|
||||
Around this time, my friend Rick Koshi showed me his nifty new HP-28
|
||||
calculator. It allowed the user to manipulate formulas as well as
|
||||
|
|
@ -1359,15 +1362,14 @@ to control various modes of the Calculator.
|
|||
@subsection RPN Calculations and the Stack
|
||||
|
||||
@cindex RPN notation
|
||||
@ifnottex
|
||||
@noindent
|
||||
@ifnottex
|
||||
Calc normally uses RPN notation. You may be familiar with the RPN
|
||||
system from Hewlett-Packard calculators, FORTH, or PostScript.
|
||||
(Reverse Polish Notation, RPN, is named after the Polish mathematician
|
||||
Jan Lukasiewicz.)
|
||||
@end ifnottex
|
||||
@tex
|
||||
\noindent
|
||||
Calc normally uses RPN notation. You may be familiar with the RPN
|
||||
system from Hewlett-Packard calculators, FORTH, or PostScript.
|
||||
(Reverse Polish Notation, RPN, is named after the Polish mathematician
|
||||
|
|
@ -1473,7 +1475,7 @@ multiplication.) Figure it out by hand, then try it with Calc to see
|
|||
if you're right. @xref{RPN Answer 1, 1}. (@bullet{})
|
||||
|
||||
(@bullet{}) @strong{Exercise 2.} Compute
|
||||
@texline @math{(2\times4) + (7\times9.4) + {5\over4}}
|
||||
@texline @math{(2\times4) + (7\times9.5) + {5\over4}}
|
||||
@infoline @expr{2*4 + 7*9.5 + 5/4}
|
||||
using the stack. @xref{RPN Answer 2, 2}. (@bullet{})
|
||||
|
||||
|
|
@ -1964,7 +1966,7 @@ values are left alone, even when you evaluate the formula.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 2 a + 2 b 1: 34 + 2 b
|
||||
1: 2 a + 2 b 1: 2 b + 34
|
||||
. .
|
||||
|
||||
' 2a+2b @key{RET} =
|
||||
|
|
@ -1976,7 +1978,7 @@ alone, as are calls for which the value is undefined.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 2 + log10(0) + log10(x) + log10(5, 6) + foo(3)
|
||||
1: log10(0) + log10(x) + log10(5, 6) + foo(3) + 2
|
||||
.
|
||||
|
||||
' log10(100) + log10(0) + log10(x) + log10(5,6) + foo(3) @key{RET}
|
||||
|
|
@ -4588,7 +4590,7 @@ that arises in the second one.
|
|||
@cindex Fermat, primality test of
|
||||
(@bullet{}) @strong{Exercise 10.} A theorem of Pierre de Fermat
|
||||
says that
|
||||
@texline @w{@math{x^{n-1} \bmod n = 1}}
|
||||
@texline @math{x^{n-1} \bmod n = 1}
|
||||
@infoline @expr{x^(n-1) mod n = 1}
|
||||
if @expr{n} is a prime number and @expr{x} is an integer less than
|
||||
@expr{n}. If @expr{n} is @emph{not} a prime number, this will
|
||||
|
|
@ -4704,19 +4706,17 @@ for them.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 20 degF 1: 11.1111 degC 1: -20:3 degC 1: -6.666 degC
|
||||
1: 20 degF 1: 11.1111 degC 1: -6.666 degC
|
||||
. . . .
|
||||
|
||||
' 20 degF @key{RET} u c degC @key{RET} U u t degC @key{RET} c f
|
||||
' 20 degF @key{RET} u c degC @key{RET} U u t degC @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
First we convert a change of 20 degrees Fahrenheit into an equivalent
|
||||
change in degrees Celsius (or Centigrade). Then, we convert the
|
||||
absolute temperature 20 degrees Fahrenheit into Celsius. Since
|
||||
this comes out as an exact fraction, we then convert to floating-point
|
||||
for easier comparison with the other result.
|
||||
absolute temperature 20 degrees Fahrenheit into Celsius.
|
||||
|
||||
For simple unit conversions, you can put a plain number on the stack.
|
||||
Then @kbd{u c} and @kbd{u t} will prompt for both old and new units.
|
||||
|
|
@ -4775,7 +4775,7 @@ formulas as regular data objects.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 2 x^2 - 6 1: 6 - 2 x^2 1: (6 - 2 x^2) (3 x^2 + y)
|
||||
1: 2 x^2 - 6 1: 6 - 2 x^2 1: (3 x^2 + y) (6 - 2 x^2)
|
||||
. . .
|
||||
|
||||
' 2x^2-6 @key{RET} n ' 3x^2+y @key{RET} *
|
||||
|
|
@ -4791,7 +4791,7 @@ formulas. Continuing with the formula from the last example,
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 18 x^2 + 6 y - 6 x^4 - 2 x^2 y 1: (18 - 2 y) x^2 - 6 x^4 + 6 y
|
||||
1: 18 x^2 - 6 x^4 + 6 y - 2 y x^2 1: (18 - 2 y) x^2 - 6 x^4 + 6 y
|
||||
. .
|
||||
|
||||
a x a c x @key{RET}
|
||||
|
|
@ -4849,17 +4849,17 @@ the other root(s), let's divide through by @expr{x} and then solve:
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: (34 x - 24 x^3) / x 1: 34 x / x - 24 x^3 / x 1: 34 - 24 x^2
|
||||
. . .
|
||||
1: (34 x - 24 x^3) / x 1: 34 - 24 x^2
|
||||
. .
|
||||
|
||||
' x @key{RET} / a x a s
|
||||
' x @key{RET} / a x
|
||||
|
||||
@end group
|
||||
@end smallexample
|
||||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: 34 - 24 x^2 = 0 1: x = 1.19023
|
||||
1: 0.70588 x^2 = 1 1: x = 1.19023
|
||||
. .
|
||||
|
||||
0 a = s 3 a S x @key{RET}
|
||||
|
|
@ -4867,10 +4867,6 @@ the other root(s), let's divide through by @expr{x} and then solve:
|
|||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Notice the use of @kbd{a s} to ``simplify'' the formula. When the
|
||||
default algebraic simplifications don't do enough, you can use
|
||||
@kbd{a s} to tell Calc to spend more time on the job.
|
||||
|
||||
Now we compute the second derivative and plug in our values of @expr{x}:
|
||||
|
||||
@smallexample
|
||||
|
|
@ -4905,7 +4901,7 @@ has a maximum value at @expr{x = 1.19023}. (The function also has a
|
|||
local @emph{minimum} at @expr{x = 0}.)
|
||||
|
||||
When we solved for @expr{x}, we got only one value even though
|
||||
@expr{34 - 24 x^2 = 0} is a quadratic equation that ought to have
|
||||
@expr{0.70588 x^2 = 1} is a quadratic equation that ought to have
|
||||
two solutions. The reason is that @w{@kbd{a S}} normally returns a
|
||||
single ``principal'' solution. If it needs to come up with an
|
||||
arbitrary sign (as occurs in the quadratic formula) it picks @expr{+}.
|
||||
|
|
@ -4914,7 +4910,7 @@ solution by pressing @kbd{H} (the Hyperbolic flag) before @kbd{a S}.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 34 - 24 x^2 = 0 1: x = 1.19023 s1 1: x = -1.19023
|
||||
1: 0.70588 x^2 = 1 1: x = 1.19023 s1 1: x = -1.19023
|
||||
. . .
|
||||
|
||||
r 3 H a S x @key{RET} s 5 1 n s l s1 @key{RET}
|
||||
|
|
@ -5135,7 +5131,7 @@ also have used plain @kbd{v x} as follows: @kbd{v x 10 @key{RET} 9 + .1 *}.)
|
|||
@smallexample
|
||||
@group
|
||||
2: [1, 1.1, ... ] 1: [0., 0.084941, 0.16993, ... ]
|
||||
1: sin(x) ln(x) .
|
||||
1: ln(x) sin(x) .
|
||||
.
|
||||
|
||||
' sin(x) ln(x) @key{RET} s 1 m r p 5 @key{RET} V M $ @key{RET}
|
||||
|
|
@ -5168,7 +5164,7 @@ we're not doing too well. Let's try another approach.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: sin(x) ln(x) 1: 0.84147 x - 0.84147 + 0.11957 (x - 1)^2 - ...
|
||||
1: ln(x) sin(x) 1: 0.84147 x + 0.11957 (x - 1)^2 - ...
|
||||
. .
|
||||
|
||||
r 1 a t x=1 @key{RET} 4 @key{RET}
|
||||
|
|
@ -5277,61 +5273,44 @@ Suppose we want to simplify this trigonometric formula:
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 2 / cos(x)^2 - 2 tan(x)^2
|
||||
1: 2 sec(x)^2 / tan(x)^2 - 2 / tan(x)^2
|
||||
.
|
||||
|
||||
' 2/cos(x)^2 - 2tan(x)^2 @key{RET} s 1
|
||||
' 2sec(x)^2/tan(x)^2 - 2/tan(x)^2 @key{RET} s 1
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
If we were simplifying this by hand, we'd probably replace the
|
||||
@samp{tan} with a @samp{sin/cos} first, then combine over a common
|
||||
denominator. The @kbd{I a s} command will do the former and the @kbd{a n}
|
||||
algebra command will do the latter, but we'll do both with rewrite
|
||||
rules just for practice.
|
||||
If we were simplifying this by hand, we'd probably combine over the common
|
||||
denominator. The @kbd{a n} algebra command will do this, but we'll do
|
||||
it with a rewrite rule just for practice.
|
||||
|
||||
Rewrite rules are written with the @samp{:=} symbol.
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
1: 2 / cos(x)^2 - 2 sin(x)^2 / cos(x)^2
|
||||
.
|
||||
|
||||
a r tan(a) := sin(a)/cos(a) @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
(The ``assignment operator'' @samp{:=} has several uses in Calc. All
|
||||
by itself the formula @samp{tan(a) := sin(a)/cos(a)} doesn't do anything,
|
||||
but when it is given to the @kbd{a r} command, that command interprets
|
||||
it as a rewrite rule.)
|
||||
|
||||
The lefthand side, @samp{tan(a)}, is called the @dfn{pattern} of the
|
||||
rewrite rule. Calc searches the formula on the stack for parts that
|
||||
match the pattern. Variables in a rewrite pattern are called
|
||||
@dfn{meta-variables}, and when matching the pattern each meta-variable
|
||||
can match any sub-formula. Here, the meta-variable @samp{a} matched
|
||||
the actual variable @samp{x}.
|
||||
|
||||
When the pattern part of a rewrite rule matches a part of the formula,
|
||||
that part is replaced by the righthand side with all the meta-variables
|
||||
substituted with the things they matched. So the result is
|
||||
@samp{sin(x) / cos(x)}. Calc's normal algebraic simplifications then
|
||||
mix this in with the rest of the original formula.
|
||||
|
||||
To merge over a common denominator, we can use another simple rule:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
1: (2 - 2 sin(x)^2) / cos(x)^2
|
||||
1: (2 sec(x)^2 - 2) / tan(x)^2
|
||||
.
|
||||
|
||||
a r a/x + b/x := (a+b)/x @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
(The ``assignment operator'' @samp{:=} has several uses in Calc. All
|
||||
by itself the formula @samp{a/x + b/x := (a+b)/x} doesn't do anything,
|
||||
but when it is given to the @kbd{a r} command, that command interprets
|
||||
it as a rewrite rule.)
|
||||
|
||||
The lefthand side, @samp{a/x + b/x}, is called the @dfn{pattern} of the
|
||||
rewrite rule. Calc searches the formula on the stack for parts that
|
||||
match the pattern. Variables in a rewrite pattern are called
|
||||
@dfn{meta-variables}, and when matching the pattern each meta-variable
|
||||
can match any sub-formula. Here, the meta-variable @samp{a} matched
|
||||
the expression @samp{2 sec(x)^2}, the meta-variable @samp{b} matched
|
||||
the constant @samp{-2} and the meta-variable @samp{x} matched
|
||||
the expression @samp{tan(x)^2}.
|
||||
|
||||
This rule points out several interesting features of rewrite patterns.
|
||||
First, if a meta-variable appears several times in a pattern, it must
|
||||
match the same thing everywhere. This rule detects common denominators
|
||||
|
|
@ -5340,13 +5319,18 @@ denominators.
|
|||
|
||||
Second, meta-variable names are independent from variables in the
|
||||
target formula. Notice that the meta-variable @samp{x} here matches
|
||||
the subformula @samp{cos(x)^2}; Calc never confuses the two meanings of
|
||||
the subformula @samp{tan(x)^2}; Calc never confuses the two meanings of
|
||||
@samp{x}.
|
||||
|
||||
And third, rewrite patterns know a little bit about the algebraic
|
||||
properties of formulas. The pattern called for a sum of two quotients;
|
||||
Calc was able to match a difference of two quotients by matching
|
||||
@samp{a = 2}, @samp{b = -2 sin(x)^2}, and @samp{x = cos(x)^2}.
|
||||
@samp{a = 2 sec(x)^2}, @samp{b = -2}, and @samp{x = tan(x)^2}.
|
||||
|
||||
When the pattern part of a rewrite rule matches a part of the formula,
|
||||
that part is replaced by the righthand side with all the meta-variables
|
||||
substituted with the things they matched. So the result is
|
||||
@samp{(2 sec(x)^2 - 2) / tan(x)^2}.
|
||||
|
||||
@c [fix-ref Algebraic Properties of Rewrite Rules]
|
||||
We could just as easily have written @samp{a/x - b/x := (a-b)/x} for
|
||||
|
|
@ -5356,19 +5340,19 @@ we could have used the @code{plain} symbol. @xref{Algebraic Properties
|
|||
of Rewrite Rules}, for some examples of this.)
|
||||
|
||||
One more rewrite will complete the job. We want to use the identity
|
||||
@samp{sin(x)^2 + cos(x)^2 = 1}, but of course we must first rearrange
|
||||
@samp{tan(x)^2 + 1 = sec(x)^2}, but of course we must first rearrange
|
||||
the identity in a way that matches our formula. The obvious rule
|
||||
would be @samp{@w{2 - 2 sin(x)^2} := 2 cos(x)^2}, but a little thought shows
|
||||
that the rule @samp{sin(x)^2 := 1 - cos(x)^2} will also work. The
|
||||
would be @samp{@w{2 sec(x)^2 - 2} := 2 tan(x)^2}, but a little thought shows
|
||||
that the rule @samp{sec(x)^2 := 1 + tan(x)^2} will also work. The
|
||||
latter rule has a more general pattern so it will work in many other
|
||||
situations, too.
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
1: (2 + 2 cos(x)^2 - 2) / cos(x)^2 1: 2
|
||||
. .
|
||||
1: 2
|
||||
.
|
||||
|
||||
a r sin(x)^2 := 1 - cos(x)^2 @key{RET} a s
|
||||
a r sec(x)^2 := 1 + tan(x)^2 @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -5383,14 +5367,13 @@ having to retype it.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
' tan(x) := sin(x)/cos(x) @key{RET} s t tsc @key{RET}
|
||||
' a/x + b/x := (a+b)/x @key{RET} s t merge @key{RET}
|
||||
' sin(x)^2 := 1 - cos(x)^2 @key{RET} s t sinsqr @key{RET}
|
||||
' a/x + b/x := (a+b)/x @key{RET} s t merge @key{RET}
|
||||
' sec(x)^2 := 1 + tan(x)^2 @key{RET} s t secsqr @key{RET}
|
||||
|
||||
1: 2 / cos(x)^2 - 2 tan(x)^2 1: 2
|
||||
1: 2 sec(x)^2 / tan(x)^2 - 2 / tan(x)^2 1: 2
|
||||
. .
|
||||
|
||||
r 1 a r tsc @key{RET} a r merge @key{RET} a r sinsqr @key{RET} a s
|
||||
r 1 a r merge @key{RET} a r secsqr @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -5420,20 +5403,20 @@ a variable containing a vector of rules.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: [tsc, merge, sinsqr] 1: [tan(x) := sin(x) / cos(x), ... ]
|
||||
1: [merge, secsqr] 1: [a/x + b/x := (a + b)/x, ... ]
|
||||
. .
|
||||
|
||||
' [tsc,merge,sinsqr] @key{RET} =
|
||||
' [merge,sinsqr] @key{RET} =
|
||||
|
||||
@end group
|
||||
@end smallexample
|
||||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: 1 / cos(x) - sin(x) tan(x) 1: cos(x)
|
||||
1: 2 sec(x)^2 / tan(x)^2 - 2 / tan(x)^2 1: 2
|
||||
. .
|
||||
|
||||
s t trig @key{RET} r 1 a r trig @key{RET} a s
|
||||
s t trig @key{RET} r 1 a r trig @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -5451,10 +5434,10 @@ only one rewrite at a time.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 1 / cos(x) - sin(x)^2 / cos(x) 1: (1 - sin(x)^2) / cos(x)
|
||||
. .
|
||||
1: (2 sec(x)^2 - 2) / tan(x)^2 1: 2
|
||||
. .
|
||||
|
||||
r 1 M-1 a r trig @key{RET} M-1 a r trig @key{RET}
|
||||
r 1 M-1 a r trig @key{RET} M-1 a r trig @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -5466,20 +5449,20 @@ with a @samp{::} symbol and the desired condition. For example,
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: exp(2 pi i) + exp(3 pi i) + exp(4 pi i)
|
||||
1: sin(x + 2 pi) + sin(x + 3 pi) + sin(x + 4 pi)
|
||||
.
|
||||
|
||||
' exp(2 pi i) + exp(3 pi i) + exp(4 pi i) @key{RET}
|
||||
' sin(x+2pi) + sin(x+3pi) + sin(x+4pi) @key{RET}
|
||||
|
||||
@end group
|
||||
@end smallexample
|
||||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: 1 + exp(3 pi i) + 1
|
||||
1: sin(x + 3 pi) + 2 sin(x)
|
||||
.
|
||||
|
||||
a r exp(k pi i) := 1 :: k % 2 = 0 @key{RET}
|
||||
a r sin(a + k pi) := sin(a) :: k % 2 = 0 @key{RET}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -5487,10 +5470,10 @@ with a @samp{::} symbol and the desired condition. For example,
|
|||
(Recall, @samp{k % 2} is the remainder from dividing @samp{k} by 2,
|
||||
which will be zero only when @samp{k} is an even integer.)
|
||||
|
||||
An interesting point is that the variables @samp{pi} and @samp{i}
|
||||
were matched literally rather than acting as meta-variables.
|
||||
This is because they are special-constant variables. The special
|
||||
constants @samp{e}, @samp{phi}, and so on also match literally.
|
||||
An interesting point is that the variable @samp{pi} was matched
|
||||
literally rather than acting as a meta-variable.
|
||||
This is because it is a special-constant variable. The special
|
||||
constants @samp{e}, @samp{i}, @samp{phi}, and so on also match literally.
|
||||
A common error with rewrite
|
||||
rules is to write, say, @samp{f(a,b,c,d,e) := g(a+b+c+d+e)}, expecting
|
||||
to match any @samp{f} with five arguments but in fact matching
|
||||
|
|
@ -5541,7 +5524,7 @@ Now:
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: fib(6) + fib(x) + fib(0) 1: 8 + fib(x) + fib(0)
|
||||
1: fib(6) + fib(x) + fib(0) 1: fib(x) + fib(0) + 8
|
||||
. .
|
||||
|
||||
' fib(6)+fib(x)+fib(0) @key{RET} a r fib @key{RET}
|
||||
|
|
@ -5707,10 +5690,10 @@ power series represented as @samp{@var{polynomial} + O(@var{var}^@var{n})}.
|
|||
For example, given @samp{1 - x^2 / 2 + O(x^3)} and @samp{x - x^3 / 6 + O(x^4)}
|
||||
on the stack, we want to be able to type @kbd{*} and get the result
|
||||
@samp{x - 2:3 x^3 + O(x^4)}. Don't worry if the terms of the sum are
|
||||
rearranged or if @kbd{a s} needs to be typed after rewriting. (This one
|
||||
is rather tricky; the solution at the end of this chapter uses 6 rewrite
|
||||
rules. Hint: The @samp{constant(x)} condition tests whether @samp{x} is
|
||||
a number.) @xref{Rewrites Answer 6, 6}. (@bullet{})
|
||||
rearranged. (This one is rather tricky; the solution at the end of
|
||||
this chapter uses 6 rewrite rules. Hint: The @samp{constant(x)}
|
||||
condition tests whether @samp{x} is a number.) @xref{Rewrites Answer
|
||||
6, 6}. (@bullet{})
|
||||
|
||||
Just for kicks, try adding the rule @code{2+3 := 6} to @code{EvalRules}.
|
||||
What happens? (Be sure to remove this rule afterward, or you might get
|
||||
|
|
@ -5737,7 +5720,7 @@ case @kbd{z} prefix.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 1 + x + x^2 / 2 + x^3 / 6 1: 1 + x + x^2 / 2 + x^3 / 6
|
||||
1: x + x^2 / 2 + x^3 / 6 + 1 1: x + x^2 / 2 + x^3 / 6 + 1
|
||||
. .
|
||||
|
||||
' 1 + x + x^2/2! + x^3/3! @key{RET} Z F e myexp @key{RET} @key{RET} @key{RET} y
|
||||
|
|
@ -5808,7 +5791,7 @@ you may wish to program a keyboard macro to type this for you.
|
|||
|
||||
' y=sqrt(x) @key{RET} C-x ( H a S x @key{RET} C-x )
|
||||
|
||||
1: y = cos(x) 1: x = s1 arccos(y) + 2 pi n1
|
||||
1: y = cos(x) 1: x = s1 arccos(y) + 2 n1 pi
|
||||
. .
|
||||
|
||||
' y=cos(x) @key{RET} X
|
||||
|
|
@ -6874,7 +6857,7 @@ matrix as usual.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: [6, 10] 2: [6, 10] 1: [6 - 4 a / (b - a), 4 / (b - a) ]
|
||||
1: [6, 10] 2: [6, 10] 1: [4 a / (a - b) + 6, 4 / (b - a) ]
|
||||
. 1: [ [ 1, a ] .
|
||||
[ 1, b ] ]
|
||||
.
|
||||
|
|
@ -6888,9 +6871,9 @@ mode:
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
4 a 4
|
||||
1: [6 - -----, -----]
|
||||
b - a b - a
|
||||
4 a 4
|
||||
1: [----- + 6, -----]
|
||||
a - b b - a
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -8442,11 +8425,11 @@ to the other?
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: 3.3356 ns 1: 0.81356 ns / ns 1: 0.81356
|
||||
2: 4.1 ns . .
|
||||
1: 3.3356 ns 1: 0.81356
|
||||
2: 4.1 ns .
|
||||
.
|
||||
|
||||
' 4.1 ns @key{RET} / u s
|
||||
' 4.1 ns @key{RET} /
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -8523,7 +8506,7 @@ familiar form.
|
|||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: [x - 1.19023, x + 1.19023, x] 1: (x - 1.19023) (x + 1.19023) x
|
||||
1: [x - 1.19023, x + 1.19023, x] 1: x*(x + 1.19023) (x - 1.19023)
|
||||
. .
|
||||
|
||||
V M ' x-$ @key{RET} V R *
|
||||
|
|
@ -8549,7 +8532,7 @@ same as the original polynomial.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
1: x sin(pi x) 1: (sin(pi x) - pi x cos(pi x)) / pi^2
|
||||
1: x sin(pi x) 1: sin(pi x) / pi^2 - x cos(pi x) / pi
|
||||
. .
|
||||
|
||||
' x sin(pi x) @key{RET} m r a i x @key{RET}
|
||||
|
|
@ -8560,7 +8543,7 @@ same as the original polynomial.
|
|||
@smallexample
|
||||
@group
|
||||
1: [y, 1]
|
||||
2: (sin(pi x) - pi x cos(pi x)) / pi^2
|
||||
2: sin(pi x) / pi^2 - x cos(pi x) / pi
|
||||
.
|
||||
|
||||
' [y,1] @key{RET} @key{TAB}
|
||||
|
|
@ -8570,7 +8553,7 @@ same as the original polynomial.
|
|||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: [(sin(pi y) - pi y cos(pi y)) / pi^2, (sin(pi) - pi cos(pi)) / pi^2]
|
||||
1: [sin(pi y) / pi^2 - y cos(pi y) / pi, 1 / pi]
|
||||
.
|
||||
|
||||
V M $ @key{RET}
|
||||
|
|
@ -8580,7 +8563,7 @@ same as the original polynomial.
|
|||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: (sin(pi y) - pi y cos(pi y)) / pi^2 + (pi cos(pi) - sin(pi)) / pi^2
|
||||
1: sin(pi y) / pi^2 - y cos(pi y) / pi - 1 / pi
|
||||
.
|
||||
|
||||
V R -
|
||||
|
|
@ -8590,7 +8573,7 @@ same as the original polynomial.
|
|||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
1: (sin(3.14159 y) - 3.14159 y cos(3.14159 y)) / 9.8696 - 0.3183
|
||||
1: sin(3.14159 y) / 9.8696 - y cos(3.14159 y) / 3.14159 - 0.3183
|
||||
.
|
||||
|
||||
=
|
||||
|
|
@ -8685,11 +8668,11 @@ We'll use Big mode to make the formulas more readable.
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
___
|
||||
2 + V 2
|
||||
1: (2 + sqrt(2)) / (1 + sqrt(2)) 1: --------
|
||||
. ___
|
||||
1 + V 2
|
||||
___
|
||||
V 2 + 2
|
||||
1: (2 + sqrt(2)) / (1 + sqrt(2)) 1: ---------
|
||||
. ___
|
||||
V 2 + 1
|
||||
|
||||
.
|
||||
|
||||
|
|
@ -8713,11 +8696,11 @@ Multiplying by the conjugate helps because @expr{(a+b) (a-b) = a^2 - b^2}.
|
|||
@noindent
|
||||
@smallexample
|
||||
@group
|
||||
___ ___
|
||||
1: 2 + V 2 - 2 1: V 2
|
||||
. .
|
||||
___
|
||||
1: V 2
|
||||
.
|
||||
|
||||
a r a*(b+c) := a*b + a*c a s
|
||||
a r a*(b+c) := a*b + a*c
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
@ -12601,7 +12584,11 @@ followed by a shifted letter.
|
|||
The @kbd{m O} (@code{calc-no-simplify-mode}) command turns off all optional
|
||||
simplifications. These would leave a formula like @expr{2+3} alone. In
|
||||
fact, nothing except simple numbers are ever affected by normalization
|
||||
in this mode.
|
||||
in this mode. Explicit simplification commands, such as @kbd{=} or
|
||||
@kbd{a s}, can still be given to simplify any formulas.
|
||||
@xref{Algebraic Definitions}, for a sample use of
|
||||
No-Simplification mode.
|
||||
|
||||
|
||||
@kindex m N
|
||||
@pindex calc-num-simplify-mode
|
||||
|
|
@ -12616,29 +12603,27 @@ A constant is a number or other numeric object (such as a constant
|
|||
error form or modulo form), or a vector all of whose
|
||||
elements are constant.
|
||||
|
||||
@kindex m D
|
||||
@pindex calc-default-simplify-mode
|
||||
The @kbd{m D} (@code{calc-default-simplify-mode}) command restores the
|
||||
default simplifications for all formulas. This includes many easy and
|
||||
@kindex m L
|
||||
@pindex calc-limited-simplify-mode
|
||||
The @kbd{m L} (@code{calc-limited-simplify-mode}) command does limited
|
||||
simplifications for all formulas. This includes many easy and
|
||||
fast algebraic simplifications such as @expr{a+0} to @expr{a}, and
|
||||
@expr{a + 2 a} to @expr{3 a}, as well as evaluating functions like
|
||||
@expr{@tfn{deriv}(x^2, x)} to @expr{2 x}.
|
||||
|
||||
@kindex m B
|
||||
@pindex calc-bin-simplify-mode
|
||||
The @kbd{m B} (@code{calc-bin-simplify-mode}) mode applies the default
|
||||
The @kbd{m B} (@code{calc-bin-simplify-mode}) mode applies the limited
|
||||
simplifications to a result and then, if the result is an integer,
|
||||
uses the @kbd{b c} (@code{calc-clip}) command to clip the integer according
|
||||
to the current binary word size. @xref{Binary Functions}. Real numbers
|
||||
are rounded to the nearest integer and then clipped; other kinds of
|
||||
results (after the default simplifications) are left alone.
|
||||
|
||||
@kindex m A
|
||||
@pindex calc-alg-simplify-mode
|
||||
The @kbd{m A} (@code{calc-alg-simplify-mode}) mode does algebraic
|
||||
simplification; it applies all the default simplifications, and also
|
||||
the more powerful (and slower) simplifications made by @kbd{a s}
|
||||
(@code{calc-simplify}). @xref{Algebraic Simplifications}.
|
||||
@kindex m D
|
||||
@pindex calc-default-simplify-mode
|
||||
The @kbd{m D} (@code{calc-default-simplify-mode}) mode does standard
|
||||
algebraic simplifications. @xref{Algebraic Simplifications}.
|
||||
|
||||
@kindex m E
|
||||
@pindex calc-ext-simplify-mode
|
||||
|
|
@ -12658,9 +12643,7 @@ are simplified with their unit definitions in mind.
|
|||
A common technique is to set the simplification mode down to the lowest
|
||||
amount of simplification you will allow to be applied automatically, then
|
||||
use manual commands like @kbd{a s} and @kbd{c c} (@code{calc-clean}) to
|
||||
perform higher types of simplifications on demand. @xref{Algebraic
|
||||
Definitions}, for another sample use of No-Simplification mode.
|
||||
|
||||
perform higher types of simplifications on demand.
|
||||
@node Declarations, Display Modes, Simplification Modes, Mode Settings
|
||||
@section Declarations
|
||||
|
||||
|
|
@ -15893,8 +15876,8 @@ Default simplifications for numeric arguments only (@kbd{m N}).
|
|||
@item BinSimp@var{w}
|
||||
Binary-integer simplification mode; word size @var{w} (@kbd{m B}, @kbd{b w}).
|
||||
|
||||
@item AlgSimp
|
||||
Algebraic simplification mode (@kbd{m A}).
|
||||
@item LimSimp
|
||||
Limited simplification mode (@kbd{m L}).
|
||||
|
||||
@item ExtSimp
|
||||
Extended algebraic simplification mode (@kbd{m E}).
|
||||
|
|
@ -16733,9 +16716,9 @@ produced!) Integers and fractions are generally unaffected by this
|
|||
operation. Vectors and formulas are cleaned by cleaning each component
|
||||
number (i.e., pervasively).
|
||||
|
||||
If the simplification mode is set below the default level, it is raised
|
||||
to the default level for the purposes of this command. Thus, @kbd{c c}
|
||||
applies the default simplifications even if their automatic application
|
||||
If the simplification mode is set below the limited level, it is raised
|
||||
to the limited level for the purposes of this command. Thus, @kbd{c c}
|
||||
applies the limited simplifications even if their automatic application
|
||||
is disabled. @xref{Simplification Modes}.
|
||||
|
||||
@cindex Roundoff errors, correcting
|
||||
|
|
@ -18336,7 +18319,7 @@ of the current angular mode. @xref{Basic Operations on Units}.
|
|||
|
||||
Also, the symbolic variable @code{pi} is not ordinarily recognized in
|
||||
arguments to trigonometric functions, as in @samp{sin(3 pi / 4)}, but
|
||||
the @kbd{a s} (@code{calc-simplify}) command recognizes many such
|
||||
the default algebraic simplifications recognize many such
|
||||
formulas when the current angular mode is Radians @emph{and} Symbolic
|
||||
mode is enabled; this example would be replaced by @samp{sqrt(2) / 2}.
|
||||
@xref{Symbolic Mode}. Beware, this simplification occurs even if you
|
||||
|
|
@ -22075,8 +22058,8 @@ as well as equations.
|
|||
@pindex calc-sel-div-both-sides
|
||||
The @kbd{j *} (@code{calc-sel-mult-both-sides}) command prompts for a
|
||||
formula using algebraic entry, then multiplies both sides of the
|
||||
selected quotient or equation by that formula. It simplifies each
|
||||
side with @kbd{a s} (@code{calc-simplify}) before re-forming the
|
||||
selected quotient or equation by that formula. It performs the
|
||||
default algebraic simplifications before re-forming the
|
||||
quotient or equation. You can suppress this simplification by
|
||||
providing a prefix argument: @kbd{C-u j *}. There is also a @kbd{j /}
|
||||
(@code{calc-sel-div-both-sides}) which is similar to @kbd{j *} but
|
||||
|
|
@ -22143,15 +22126,15 @@ now to take the cosine of the selected part.)
|
|||
@kindex j v
|
||||
@pindex calc-sel-evaluate
|
||||
The @kbd{j v} (@code{calc-sel-evaluate}) command performs the
|
||||
normal default simplifications on the selected sub-formula.
|
||||
These are the simplifications that are normally done automatically
|
||||
on all results, but which may have been partially inhibited by
|
||||
limited simplifications on the selected sub-formula.
|
||||
These simplifications would normally be done automatically
|
||||
on all results, but may have been partially inhibited by
|
||||
previous selection-related operations, or turned off altogether
|
||||
by the @kbd{m O} command. This command is just an auto-selecting
|
||||
version of the @w{@kbd{a v}} command (@pxref{Algebraic Manipulation}).
|
||||
|
||||
With a numeric prefix argument of 2, @kbd{C-u 2 j v} applies
|
||||
the @kbd{a s} (@code{calc-simplify}) command to the selected
|
||||
the default algebraic simplifications to the selected
|
||||
sub-formula. With a prefix argument of 3 or more, e.g., @kbd{C-u j v}
|
||||
applies the @kbd{a e} (@code{calc-simplify-extended}) command.
|
||||
@xref{Simplifying Formulas}. With a negative prefix argument
|
||||
|
|
@ -22340,15 +22323,8 @@ turn the default simplifications off first (with @kbd{m O}).
|
|||
@kindex H a s
|
||||
@pindex calc-simplify
|
||||
@tindex simplify
|
||||
The @kbd{a s} (@code{calc-simplify}) [@code{simplify}] command applies
|
||||
various algebraic rules to simplify a formula. This includes rules which
|
||||
are not part of the default simplifications because they may be too slow
|
||||
to apply all the time, or may not be desirable all of the time. For
|
||||
example, non-adjacent terms of sums are combined, as in @samp{a + b + 2 a}
|
||||
to @samp{b + 3 a}, and some formulas like @samp{sin(arcsin(x))} are
|
||||
simplified to @samp{x}.
|
||||
|
||||
The sections below describe all the various kinds of algebraic
|
||||
The sections below describe all the various kinds of
|
||||
simplifications Calc provides in full detail. None of Calc's
|
||||
simplification commands are designed to pull rabbits out of hats;
|
||||
they simply apply certain specific rules to put formulas into
|
||||
|
|
@ -22358,8 +22334,10 @@ and rewrite rules. @xref{Rearranging with Selections}.
|
|||
@xref{Rewrite Rules}.
|
||||
|
||||
@xref{Simplification Modes}, for commands to control what level of
|
||||
simplification occurs automatically. Normally only the ``default
|
||||
simplifications'' occur.
|
||||
simplification occurs automatically. Normally only the default
|
||||
algebraic simplifications occur. If you have turned on a
|
||||
simplification mode which does not do these default simplifications,
|
||||
you can still perform them on a formula with the @kbd{a s} command.
|
||||
|
||||
There are some simplifications that, while sometimes useful, are never
|
||||
done automatically. For example, the @kbd{I} prefix can be given to
|
||||
|
|
@ -22379,29 +22357,23 @@ combinations of @samp{sinh}s and @samp{cosh}s before simplifying.
|
|||
|
||||
|
||||
@menu
|
||||
* Default Simplifications::
|
||||
* Limited Simplifications::
|
||||
* Algebraic Simplifications::
|
||||
* Unsafe Simplifications::
|
||||
* Simplification of Units::
|
||||
@end menu
|
||||
|
||||
@node Default Simplifications, Algebraic Simplifications, Simplifying Formulas, Simplifying Formulas
|
||||
@subsection Default Simplifications
|
||||
@node Limited Simplifications, Algebraic Simplifications, Simplifying Formulas, Simplifying Formulas
|
||||
@subsection Limited Simplifications
|
||||
|
||||
@noindent
|
||||
@cindex Default simplifications
|
||||
This section describes the ``default simplifications,'' those which are
|
||||
normally applied to all results. For example, if you enter the variable
|
||||
@expr{x} on the stack twice and push @kbd{+}, Calc's default
|
||||
simplifications automatically change @expr{x + x} to @expr{2 x}.
|
||||
@cindex Limited simplifications
|
||||
This section describes a limited set of simplifications. These, as
|
||||
well as those described in the next section, are normally applied to
|
||||
all results. You can type @kbd{m L} to restrict the simplifications
|
||||
done on the stack to this limited set.
|
||||
|
||||
The @kbd{m O} command turns off the default simplifications, so that
|
||||
@expr{x + x} will remain in this form unless you give an explicit
|
||||
``simplify'' command like @kbd{=} or @kbd{a v}. @xref{Algebraic
|
||||
Manipulation}. The @kbd{m D} command turns the default simplifications
|
||||
back on.
|
||||
|
||||
The most basic default simplification is the evaluation of functions.
|
||||
The most basic simplification is the evaluation of functions.
|
||||
For example, @expr{2 + 3} is evaluated to @expr{5}, and @expr{@tfn{sqrt}(9)}
|
||||
is evaluated to @expr{3}. Evaluation does not occur if the arguments
|
||||
to a function are somehow of the wrong type @expr{@tfn{tan}([2,3,4])}),
|
||||
|
|
@ -22419,16 +22391,17 @@ operator) do not evaluate their arguments, @code{if} (the @code{? :}
|
|||
operator) does not evaluate all of its arguments, and @code{evalto}
|
||||
does not evaluate its lefthand argument.
|
||||
|
||||
Most commands apply the default simplifications to all arguments they
|
||||
take from the stack, perform a particular operation, then simplify
|
||||
the result before pushing it back on the stack. In the common special
|
||||
case of regular arithmetic commands like @kbd{+} and @kbd{Q} [@code{sqrt}],
|
||||
the arguments are simply popped from the stack and collected into a
|
||||
suitable function call, which is then simplified (the arguments being
|
||||
simplified first as part of the process, as described above).
|
||||
Most commands apply at least these limited simplifications to all
|
||||
arguments they take from the stack, perform a particular operation,
|
||||
then simplify the result before pushing it back on the stack. In the
|
||||
common special case of regular arithmetic commands like @kbd{+} and
|
||||
@kbd{Q} [@code{sqrt}], the arguments are simply popped from the stack
|
||||
and collected into a suitable function call, which is then simplified
|
||||
(the arguments being simplified first as part of the process, as
|
||||
described above).
|
||||
|
||||
The default simplifications are too numerous to describe completely
|
||||
here, but this section will describe the ones that apply to the
|
||||
Even the limited set of simplifications are too numerous to describe
|
||||
completely here, but this section will describe the ones that apply to the
|
||||
major arithmetic operators. This list will be rather technical in
|
||||
nature, and will probably be interesting to you only if you are
|
||||
a serious user of Calc's algebra facilities.
|
||||
|
|
@ -22446,7 +22419,7 @@ will also be applied before any built-in default simplifications.
|
|||
\bigskip
|
||||
@end tex
|
||||
|
||||
And now, on with the default simplifications:
|
||||
And now, on with the limited set of simplifications:
|
||||
|
||||
Arithmetic operators like @kbd{+} and @kbd{*} always take two
|
||||
arguments in Calc's internal form. Sums and products of three or
|
||||
|
|
@ -22720,29 +22693,29 @@ Most other Calc functions have few if any default simplifications
|
|||
defined, aside of course from evaluation when the arguments are
|
||||
suitable numbers.
|
||||
|
||||
@node Algebraic Simplifications, Unsafe Simplifications, Default Simplifications, Simplifying Formulas
|
||||
@node Algebraic Simplifications, Unsafe Simplifications, Limited Simplifications, Simplifying Formulas
|
||||
@subsection Algebraic Simplifications
|
||||
|
||||
@noindent
|
||||
@cindex Algebraic simplifications
|
||||
The @kbd{a s} command makes simplifications that may be too slow to
|
||||
do all the time, or that may not be desirable all of the time.
|
||||
If you find these simplifications are worthwhile, you can type
|
||||
@kbd{m A} to have Calc apply them automatically.
|
||||
|
||||
@kindex a s
|
||||
@kindex I a s
|
||||
@kindex H a s
|
||||
@pindex calc-simplify
|
||||
@tindex simplify
|
||||
This section describes all simplifications that are performed by
|
||||
the @kbd{a s} command. Note that these occur in addition to the
|
||||
default simplifications; even if the default simplifications have
|
||||
been turned off by an @kbd{m O} command, @kbd{a s} will turn them
|
||||
back on temporarily while it simplifies the formula.
|
||||
the default algebraic simplification mode. If you have switched to a different
|
||||
simplification mode, you can switch back with the @kbd{m D} command.
|
||||
Even in other simplification modes, the @kbd{a s} command will use
|
||||
these algebraic simplifications to simplifies the formula.
|
||||
|
||||
There is a variable, @code{AlgSimpRules}, in which you can put rewrites
|
||||
to be applied by @kbd{a s}. Its use is analogous to @code{EvalRules},
|
||||
to be applied. Its use is analogous to @code{EvalRules},
|
||||
but without the special restrictions. Basically, the simplifier does
|
||||
@samp{@w{a r} AlgSimpRules} with an infinite repeat count on the whole
|
||||
expression being simplified, then it traverses the expression applying
|
||||
the built-in rules described below. If the result is different from
|
||||
the original expression, the process repeats with the default
|
||||
the original expression, the process repeats with the limited
|
||||
simplifications (including @code{EvalRules}), then @code{AlgSimpRules},
|
||||
then the built-in simplifications, and so on.
|
||||
|
||||
|
|
@ -22767,11 +22740,11 @@ non-adjacent ones.
|
|||
|
||||
Products are sorted into a canonical order using the commutative
|
||||
law. For example, @expr{b c a} is commuted to @expr{a b c}.
|
||||
This allows easier comparison of products; for example, the default
|
||||
This allows easier comparison of products; for example, the limited
|
||||
simplifications will not change @expr{x y + y x} to @expr{2 x y},
|
||||
but @kbd{a s} will; it first rewrites the sum to @expr{x y + x y},
|
||||
and then the default simplifications are able to recognize a sum
|
||||
of identical terms.
|
||||
but the algebraic simplifications; it first rewrites the sum to
|
||||
@expr{x y + x y} which can then be recognized as a sum of identical
|
||||
terms.
|
||||
|
||||
The canonical ordering used to sort terms of products has the
|
||||
property that real-valued numbers, interval forms and infinities
|
||||
|
|
@ -22813,10 +22786,11 @@ as described above.) If there is any common integer or fractional
|
|||
factor in the numerator and denominator, it is canceled out;
|
||||
for example, @expr{(4 x + 6) / 8 x} simplifies to @expr{(2 x + 3) / 4 x}.
|
||||
|
||||
Non-constant common factors are not found even by @kbd{a s}. To
|
||||
cancel the factor @expr{a} in @expr{(a x + a) / a^2} you could first
|
||||
use @kbd{j M} on the product @expr{a x} to Merge the numerator to
|
||||
@expr{a (1+x)}, which can then be simplified successfully.
|
||||
Non-constant common factors are not found even by algebraic
|
||||
simplifications. To cancel the factor @expr{a} in
|
||||
@expr{(a x + a) / a^2} you could first use @kbd{j M} on the product
|
||||
@expr{a x} to Merge the numerator to @expr{a (1+x)}, which can then be
|
||||
simplified successfully.
|
||||
|
||||
@tex
|
||||
\bigskip
|
||||
|
|
@ -22825,11 +22799,10 @@ use @kbd{j M} on the product @expr{a x} to Merge the numerator to
|
|||
Integer powers of the variable @code{i} are simplified according
|
||||
to the identity @expr{i^2 = -1}. If you store a new value other
|
||||
than the complex number @expr{(0,1)} in @code{i}, this simplification
|
||||
will no longer occur. This is done by @kbd{a s} instead of by default
|
||||
in case someone (unwisely) uses the name @code{i} for a variable
|
||||
unrelated to complex numbers; it would be unfortunate if Calc
|
||||
quietly and automatically changed this formula for reasons the
|
||||
user might not have been thinking of.
|
||||
will no longer occur. This is not done by the limited
|
||||
simplifications; in case someone (unwisely) wants to use the name
|
||||
@code{i} for a variable unrelated to complex numbers, they can use
|
||||
limited simplifications.
|
||||
|
||||
Square roots of integer or rational arguments are simplified in
|
||||
several ways. (Note that these will be left unevaluated only in
|
||||
|
|
@ -28800,7 +28773,7 @@ Edit @code{AlgSimpRules}. @xref{Algebraic Simplifications}.
|
|||
@item s D
|
||||
Edit @code{Decls}. @xref{Declarations}.
|
||||
@item s E
|
||||
Edit @code{EvalRules}. @xref{Default Simplifications}.
|
||||
Edit @code{EvalRules}. @xref{Limited Simplifications}.
|
||||
@item s F
|
||||
Edit @code{FitRules}. @xref{Curve Fitting}.
|
||||
@item s G
|
||||
|
|
|
|||
|
|
@ -4044,13 +4044,13 @@ Emacs Manual}. For more sophisticated methods,
|
|||
@cindex Right-to-left alphabets
|
||||
@cindex Hebrew, handling with Emacs
|
||||
@cindex Semitic alphabets
|
||||
@cindex Arabic alphabets
|
||||
@cindex Bidirectional text
|
||||
@cindex Arabic
|
||||
@cindex Farsi
|
||||
@cindex bidirectional scripts
|
||||
|
||||
Emacs supports Hebrew characters (ISO 8859-8) since version 20, but does
|
||||
not yet support right-to-left character entry and display. The
|
||||
@uref{http://lists.gnu.org/mailman/listinfo/emacs-bidi, emacs-bidi
|
||||
mailing list} discusses development of support for this feature.
|
||||
Emacs supports display and editing of bidirectional scripts, such as
|
||||
Arabic, Farsi, and Hebrew, since version 24.1.
|
||||
@xref{New in Emacs 24, bidirectional display}.
|
||||
|
||||
|
||||
@node How to add fonts
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ you want, so let's do it the correct way.
|
|||
The first thing you've got to do is to
|
||||
create a suitable directory (no blanks in directory name
|
||||
please) e.g. c:\myhome. Then you must set the environment
|
||||
variable HOME to this directory. To do this under Win9x
|
||||
variable HOME to this directory. To do this under Windows 9x
|
||||
or Me include the line
|
||||
|
||||
@example
|
||||
|
|
|
|||
|
|
@ -29959,7 +29959,7 @@ Here's a typical score file:
|
|||
|
||||
@lisp
|
||||
(("summary"
|
||||
("win95" -10000 nil s)
|
||||
("Windows 95" -10000 nil s)
|
||||
("Gnus"))
|
||||
("from"
|
||||
("Lars" -1000))
|
||||
|
|
|
|||
|
|
@ -4020,7 +4020,7 @@ user is King!
|
|||
@end example
|
||||
|
||||
@html
|
||||
<A NAME="WIN_MAC"></A>
|
||||
<A NAME="WINDOWS_MAC"></A>
|
||||
@end html
|
||||
@node Windows and MacOS, Troubleshooting, Configuration Examples, Top
|
||||
@appendix Windows and MacOS
|
||||
|
|
|
|||
|
|
@ -7901,7 +7901,7 @@ PATH=$PATH:/usr/bin/mh
|
|||
MAILDIR=$HOME/`mhparam Path`
|
||||
|
||||
#
|
||||
# Filter messages with win32 executables/virii.
|
||||
# Filter messages with w32 executables/virii.
|
||||
#
|
||||
# These attachments are base64 and have a TVqQAAMAAAAEAAAA//8AALg
|
||||
# pattern. The string "this program cannot be run in MS-DOS mode"
|
||||
|
|
@ -9060,5 +9060,3 @@ Bill Wohler, August 2008
|
|||
@c Local Variables:
|
||||
@c sentence-end-double-space: nil
|
||||
@c End:
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2012-07-03.16}
|
||||
\def\texinfoversion{2012-07-29.17}
|
||||
%
|
||||
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
|
|
@ -2448,34 +2448,12 @@
|
|||
% @samp.
|
||||
\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
|
||||
|
||||
% definition of @key that produces a lozenge. Doesn't adjust to text size.
|
||||
%\setfont\keyrm\rmshape{8}{1000}{OT1}
|
||||
%\font\keysy=cmsy9
|
||||
%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
|
||||
% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
|
||||
% \vbox{\hrule\kern-0.4pt
|
||||
% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
|
||||
% \kern-0.4pt\hrule}%
|
||||
% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
|
||||
% @indicateurl is \samp, that is, with quotes.
|
||||
\let\indicateurl=\samp
|
||||
|
||||
% definition of @key with no lozenge. If the current font is already
|
||||
% monospace, don't change it; that way, we respect @kbdinputstyle. But
|
||||
% if it isn't monospace, then use \tt.
|
||||
%
|
||||
\def\key#1{{\setupmarkupstyle{key}%
|
||||
\nohyphenation
|
||||
\ifmonospace\else\tt\fi
|
||||
#1}\null}
|
||||
|
||||
% ctrl is no longer a Texinfo command.
|
||||
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
|
||||
|
||||
% @file, @option are the same as @samp.
|
||||
\let\file=\samp
|
||||
\let\option=\samp
|
||||
|
||||
% @code is a modification of @t,
|
||||
% which makes spaces the same size as normal in the surrounding text.
|
||||
% @code (and similar) prints in typewriter, but with spaces the same
|
||||
% size as normal in the surrounding text, without hyphenation, etc.
|
||||
% This is a subroutine for that.
|
||||
\def\tclose#1{%
|
||||
{%
|
||||
% Change normal interword space to be same as for the current font.
|
||||
|
|
@ -2500,7 +2478,7 @@
|
|||
% We *must* turn on hyphenation at `-' and `_' in @code.
|
||||
% Otherwise, it is too hard to avoid overfull hboxes
|
||||
% in the Emacs manual, the Library manual, etc.
|
||||
|
||||
%
|
||||
% Unfortunately, TeX uses one parameter (\hyphenchar) to control
|
||||
% both hyphenation at - and hyphenation within words.
|
||||
% We must therefore turn them both off (\tclose does that)
|
||||
|
|
@ -2564,6 +2542,13 @@
|
|||
\fi\fi
|
||||
}
|
||||
|
||||
% For @command, @env, @file, @option quotes seem unnecessary,
|
||||
% so use \code rather than \samp.
|
||||
\let\command=\code
|
||||
\let\env=\code
|
||||
\let\file=\code
|
||||
\let\option=\code
|
||||
|
||||
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
|
||||
% second argument specifying the text to display and an optional third
|
||||
% arg as text to display instead of (rather than in addition to) the url
|
||||
|
|
@ -2743,10 +2728,24 @@
|
|||
\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
|
||||
\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
|
||||
|
||||
% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
|
||||
\let\indicateurl=\code
|
||||
\let\env=\code
|
||||
\let\command=\code
|
||||
% definition of @key that produces a lozenge. Doesn't adjust to text size.
|
||||
%\setfont\keyrm\rmshape{8}{1000}{OT1}
|
||||
%\font\keysy=cmsy9
|
||||
%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
|
||||
% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
|
||||
% \vbox{\hrule\kern-0.4pt
|
||||
% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
|
||||
% \kern-0.4pt\hrule}%
|
||||
% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
|
||||
|
||||
% definition of @key with no lozenge. If the current font is already
|
||||
% monospace, don't change it; that way, we respect @kbdinputstyle. But
|
||||
% if it isn't monospace, then use \tt.
|
||||
%
|
||||
\def\key#1{{\setupmarkupstyle{key}%
|
||||
\nohyphenation
|
||||
\ifmonospace\else\tt\fi
|
||||
#1}\null}
|
||||
|
||||
% @clicksequence{File @click{} Open ...}
|
||||
\def\clicksequence#1{\begingroup #1\endgroup}
|
||||
|
|
@ -2854,6 +2853,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
% ctrl is no longer a Texinfo command, but leave this definition for fun.
|
||||
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
|
||||
|
||||
% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
|
||||
% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
|
||||
% except specified as a normal braced arg, so no newlines to worry about.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
deactive->inactive, inactivate->deactivate spelling fixes (Bug#10150)
|
||||
* NEWS: Document these changes.
|
||||
|
||||
2012-07-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* NEWS: Fix typo.
|
||||
|
||||
2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify export of symbols to GDB.
|
||||
|
|
|
|||
39
etc/NEWS
39
etc/NEWS
|
|
@ -147,6 +147,10 @@ for it.
|
|||
|
||||
* Editing Changes in Emacs 24.2
|
||||
|
||||
** New option `delete-trailing-lines' specifies whether the M-x
|
||||
delete-trailing-whitespace command should delete trailing lines at the
|
||||
end of the buffer. It defaults to t.
|
||||
|
||||
** Search changes
|
||||
|
||||
*** Global `M-s _' starts a symbol (identifier) incremental search,
|
||||
|
|
@ -356,6 +360,12 @@ channel keys found, if any.
|
|||
if the command ends in `;' (when operating on multiple files).
|
||||
Otherwise, it executes the command on each file in parallel.
|
||||
|
||||
** Shell
|
||||
|
||||
*** New option `async-shell-command-buffer' specifies what buffer to use
|
||||
for a new asynchronous shell command when the default output buffer
|
||||
`*Async Shell Command*' is already taken by another running command.
|
||||
|
||||
** FFAP
|
||||
|
||||
*** The option `ffap-url-unwrap-remote' can now be a list of strings,
|
||||
|
|
@ -489,6 +499,35 @@ third argument is a frame (that usage was obsolete since Emacs 22.2).
|
|||
but keywords or keyword-string pairs. The old argument list will
|
||||
still be supported for Emacs 24.x.
|
||||
|
||||
** Spelling changes.
|
||||
Some Lisp symbols have been renamed to avoid problems with spelling
|
||||
that is incorrect or inconsistent with how Emacs normally spells a word.
|
||||
|
||||
*** Renamed functions
|
||||
|
||||
**** hangul-input-method-inactivate -> hangul-input-method-deactivate
|
||||
**** inactivate-input-method -> deactivate-input-method
|
||||
**** quail-inactivate -> quail-deactivate
|
||||
**** robin-inactivate -> robin-deactivate
|
||||
**** viper-inactivate-input-method -> viper-deactivate-input-method
|
||||
**** viper-inactivate-input-method-action ->
|
||||
viper-deactivate-input-method-action
|
||||
**** ucs-input-inactivate -> ucs-input-deactivate
|
||||
|
||||
*** Renamed hooks
|
||||
The old hooks are still supported for backward compatibility, but they
|
||||
are deprecated and will be removed eventually.
|
||||
|
||||
**** input-method-inactivate-hook -> input-method-deactivate-hook
|
||||
**** robin-inactivate-hook -> robin-deactivate-hook
|
||||
**** quail-inactivate-hook -> quail-deactivate-hook
|
||||
|
||||
*** Renamed Lisp variables
|
||||
|
||||
**** follow-deactive-menu -> follow-inactive-menu
|
||||
**** inactivate-current-input-method-function ->
|
||||
deactivate-current-input-method-function
|
||||
|
||||
** The following obsolete variables and varaliases have been removed:
|
||||
|
||||
*** `facemenu-unlisted-faces'
|
||||
|
|
|
|||
|
|
@ -1,3 +1,17 @@
|
|||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Update .PHONY listings in makefiles.
|
||||
* Makefile.in (.PHONY): Add all, compile-main, clean, mostlyclean,
|
||||
bootstrap-clean, distclean, maintainer-clean, extraclean.
|
||||
|
||||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
deactive->inactive, inactivate->deactivate spelling fixes (Bug#10150)
|
||||
* quail/uni-input.el (ucs-input-deactivate):
|
||||
Rename from ucs-input-inactivate.
|
||||
* quail/hangul.el (hangul-input-method-deactivate):
|
||||
Rename from hangul-input-method-inactivate.
|
||||
|
||||
2012-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* quail/ipa.el: Use cl-lib.
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ TIT_MISC=${CHINESE_TIT} ${MISC}
|
|||
@${RUN_EMACS} -l ${buildlisppath}/international/quail -f batch-byte-compile $<
|
||||
|
||||
all: leim-list.el compile-main
|
||||
.PHONY: all
|
||||
|
||||
TIT_SOURCES= \
|
||||
${srcdir}/CXTERM-DIC/4Corner.tit \
|
||||
|
|
@ -154,6 +155,7 @@ compile-targets: $(TARGETS)
|
|||
|
||||
# Compile all the Elisp files that need it. Beware: it approximates
|
||||
# `no-byte-compile', so watch out for false-positives!
|
||||
.PHONY: compile-main
|
||||
compile-main: ${TIT_MISC}
|
||||
@($(setwins); \
|
||||
els=`echo "$$wins " | sed -e 's| |/*.el |g'`; \
|
||||
|
|
@ -166,6 +168,8 @@ compile-main: ${TIT_MISC}
|
|||
$(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
|
||||
done
|
||||
|
||||
.PHONY: clean mostlyclean bootstrap-clean distclean maintainer-clean extraclean
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f ${TIT_MISC} ${TIT_MISC:.el=.elc} \
|
||||
leim-list.el changed.tit changed.misc
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft W32 API.
|
||||
# -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft Windows API.
|
||||
|
||||
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
|
|
|
|||
|
|
@ -512,7 +512,7 @@ When a Korean input method is off, convert the following hangul character."
|
|||
"Activate Hangul input method INPUT-METHOD.
|
||||
FUNC is a function to handle input key.
|
||||
HELP-TEXT is a text set in `hangul-input-method-help-text'."
|
||||
(setq inactivate-current-input-method-function 'hangul-input-method-inactivate
|
||||
(setq deactivate-current-input-method-function 'hangul-input-method-deactivate
|
||||
describe-current-input-method-function 'hangul-input-method-help
|
||||
hangul-input-method-help-text help-text)
|
||||
(quail-delete-overlays)
|
||||
|
|
@ -520,8 +520,8 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'."
|
|||
(add-hook 'minibuffer-exit-hook 'quail-exit-from-minibuffer))
|
||||
(set (make-local-variable 'input-method-function) func))
|
||||
|
||||
(defun hangul-input-method-inactivate ()
|
||||
"Inactivate the current Hangul input method."
|
||||
(defun hangul-input-method-deactivate ()
|
||||
"Deactivate the current Hangul input method."
|
||||
(interactive)
|
||||
(unwind-protect
|
||||
(progn
|
||||
|
|
@ -530,6 +530,10 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'."
|
|||
(setq describe-current-input-method-function nil))
|
||||
(kill-local-variable 'input-method-function)))
|
||||
|
||||
(define-obsolete-function-alias
|
||||
'hangul-input-method-inactivate
|
||||
'hangul-input-method-deactivate "24.2")
|
||||
|
||||
(defun hangul-input-method-help ()
|
||||
"Describe the current Hangul input method."
|
||||
(interactive)
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ While this input method is active, the variable
|
|||
(quail-delete-overlays)
|
||||
(setq describe-current-input-method-function nil))
|
||||
(kill-local-variable 'input-method-function))
|
||||
(setq inactivate-current-input-method-function 'ucs-input-inactivate)
|
||||
(setq deactivate-current-input-method-function 'ucs-input-deactivate)
|
||||
(setq describe-current-input-method-function 'ucs-input-help)
|
||||
(quail-delete-overlays)
|
||||
(if (eq (selected-window) (minibuffer-window))
|
||||
|
|
@ -107,11 +107,15 @@ While this input method is active, the variable
|
|||
(set (make-local-variable 'input-method-function)
|
||||
'ucs-input-method)))
|
||||
|
||||
(defun ucs-input-inactivate ()
|
||||
"Inactivate UCS input method."
|
||||
(defun ucs-input-deactivate ()
|
||||
"Deactivate UCS input method."
|
||||
(interactive)
|
||||
(ucs-input-activate -1))
|
||||
|
||||
(define-obsolete-function-alias
|
||||
'ucs-input-inactivate
|
||||
'ucs-input-deactivate "24.2")
|
||||
|
||||
(defun ucs-input-help ()
|
||||
(interactive)
|
||||
(with-output-to-temp-buffer "*Help*"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,14 @@
|
|||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Update .PHONY listings in makefiles.
|
||||
* Makefile.in (.PHONY): Add all, need-blessmail, maybe-blessmail,
|
||||
install, uninstall, mostlyclean, clean, distclean,
|
||||
maintainer-clean, extraclean, check, tags.
|
||||
|
||||
2012-07-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in ($(BLD)/profile.$(O)): Depend on stamp_BLD.
|
||||
|
||||
2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* movemail.c: Add missing 'defined'.
|
||||
|
|
|
|||
|
|
@ -180,6 +180,8 @@ CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS}
|
|||
|
||||
all: ${EXE_FILES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
|
||||
|
||||
.PHONY: all need-blessmail maybe-blessmail
|
||||
|
||||
LOADLIBES = ../lib/libgnu.a $(LIBS_SYSTEM)
|
||||
$(EXE_FILES): ../lib/libgnu.a
|
||||
|
||||
|
|
@ -231,6 +233,9 @@ $(DESTDIR)${archlibdir}: all
|
|||
done ; \
|
||||
fi
|
||||
|
||||
.PHONY: install uninstall mostlyclean clean distclean maintainer-clean
|
||||
.PHONY: extraclean check tags
|
||||
|
||||
install: $(DESTDIR)${archlibdir}
|
||||
@echo
|
||||
@echo "Installing utilities for users to run."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
|
||||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
|
@ -467,4 +467,4 @@ $(BLD)/test-distrib.$(O) $(MOVEMAILOBJS): stamp_BLD
|
|||
|
||||
$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD
|
||||
|
||||
$(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O): stamp_BLD
|
||||
$(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O) $(BLD)/profile.$(O): stamp_BLD
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
|
||||
|
||||
MOSTLYCLEANFILES += core *.stackdump
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
|
||||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
|
|
|||
192
lisp/ChangeLog
192
lisp/ChangeLog
|
|
@ -1,3 +1,193 @@
|
|||
2012-07-30 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* rst.el: Silence `checkdoc-ispell'.
|
||||
(rst-cvs-header, rst-svn-rev, rst-svn-timestamp)
|
||||
(rst-official-version, rst-official-cvs-rev)
|
||||
(rst-package-emacs-version-alist): Update to upstream V1.3.1.
|
||||
(rst-mode-map): New key binding.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Update .PHONY listings in makefiles.
|
||||
* Makefile.in (.PHONY): Add all, doit, custom-deps, finder-data,
|
||||
autoloads, update-subdirs, updates, bzr-update, update-authors,
|
||||
compile-onefile, compile-calc, backup-compiled-files,
|
||||
compile-after-backup, compile-one-process, mh-autoloads,
|
||||
bootstrap-clean, distclean, maintainer-clean.
|
||||
|
||||
2012-07-29 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calc.el (calc-simplify-mode): Make 'alg the default value.
|
||||
(calc-set-mode-line): Don't display "AlgSimp ".
|
||||
|
||||
* calc/calc-mode.el (calc-alg-simplify-mode): Remove function.
|
||||
(calc-lim-simplify-mode): New function.
|
||||
(calc-set-simplify-mode): Default to 'alg.
|
||||
(calc-default-simplify-mode): Make algebraic simplifications
|
||||
the default.
|
||||
|
||||
* calc/calc-ext.el (calc-init-extensions): Remove binding for
|
||||
`calc-alg-simplify-mode'. Add binding for `calc-lim-simplify-mode'.
|
||||
|
||||
* calc/calc-help (calc-m-prefix-help): Change messages to
|
||||
indicate new simplification modes.
|
||||
|
||||
* calc/README: Mention new default simplification mode.
|
||||
|
||||
* calc/calc.el (math-normalize-error): New variable.
|
||||
(math-normalize): Set `math-normalize-error' to t
|
||||
when there's an error.
|
||||
|
||||
* calc/calc-alg.el (math-simplify): Don't simplify when
|
||||
`math-normalize' returns an error.
|
||||
|
||||
2012-07-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* international/mule-cmds.el (set-locale-environment): Revert last
|
||||
change, since display-graphic-p returns nil when this function is
|
||||
called during startup. Instead...
|
||||
|
||||
* term/w32console.el (terminal-init-w32console): ...setup the
|
||||
keyboard and terminal encoding for TTY sessions here. (Bug#12082)
|
||||
|
||||
2012-07-29 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* simple.el (goto-line): Don't display default line number in the
|
||||
prompt because it should be displayed by `read-number' (bug#9952).
|
||||
Add the current line number to the defaults of `goto-line' to
|
||||
allow its easier modification by users with `M-n' (bug#9201).
|
||||
|
||||
* subr.el (read-number): Support multiple default values like in
|
||||
other minibuffer reading functions. Replace `read' with
|
||||
`string-to-number' for consistency with `number-to-string'.
|
||||
|
||||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
deactive->inactive, inactivate->deactivate spelling fixes (Bug#10150)
|
||||
* emulation/viper-init.el (viper-deactivate-input-method-action):
|
||||
Rename from viper-inactivate-input-method-action.
|
||||
(viper-deactivate-input-method):
|
||||
Rename from viper-inactivate-input-method.
|
||||
* follow.el (follow-inactive-menu): Rename from follow-deactive-menu.
|
||||
* international/mule-cmds.el (deactivate-input-method):
|
||||
Rename from inactivate-input-method.
|
||||
Also run input-method-deactivate-hook.
|
||||
(deactivate-current-input-method-function):
|
||||
Rename from inactivate-current-input-method-function.
|
||||
(input-method-deactivate-hook): New hook.
|
||||
(input-method-inactivate-hook): Mark obsolete.
|
||||
(inactivate-input-method): Mark obsolete.
|
||||
|
||||
* international/quail.el (quail-activate):
|
||||
Also run quail-deactivate-hook.
|
||||
(quail-deactivate): Rename from quail-inactivate.
|
||||
* international/robin.el (robin-activate):
|
||||
Also run robin-deactivate-hook.
|
||||
(robin-deactivate): Rename from robin-inactivate.
|
||||
|
||||
2012-07-29 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* simple.el (indicate-copied-region): New function.
|
||||
(kill-ring-save): Split off from here.
|
||||
|
||||
* rect.el (copy-rectangle-as-kill): Call indicate-copied-region.
|
||||
(kill-rectangle): Set deactivate-mark to t on read-only error.
|
||||
|
||||
* register.el (copy-to-register, copy-rectangle-to-register):
|
||||
Deactivate the mark, and use indicate-copied-region (Bug#10056).
|
||||
(append-to-register, prepend-to-register): Call
|
||||
|
||||
2012-07-29 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* simple.el (async-shell-command-buffer): New defcustom.
|
||||
(shell-command): Use it. (Bug#4719)
|
||||
|
||||
2012-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* international/mule-cmds.el (set-locale-environment): In a
|
||||
console session on MS-Windows, set up keyboard and terminal
|
||||
encoding from the OEM codepage, not the ANSI codepage.
|
||||
(Bug#12055)
|
||||
|
||||
2012-07-28 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* progmodes/gdb-mi.el (gdb-place-breakpoints): Fix the call to
|
||||
gdb-get-location.
|
||||
|
||||
2012-07-25 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* progmodes/cc-menus.el (cc-imenu-objc-function): Avoid leaving nil in
|
||||
the alist (bug#12029).
|
||||
|
||||
2012-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (custom-deps, finder-data, updates, compile)
|
||||
(compile-always, compile-first)
|
||||
($(lisp)/calendar/cal-loaddefs.el)
|
||||
($(lisp)/calendar/diary-loaddefs.el)
|
||||
($(lisp)/calendar/hol-loaddefs.el, $(lisp)/mh-e/mh-loaddefs.el)
|
||||
($(lisp)/net/tramp-loaddefs.el, bootstrap)
|
||||
($(lisp)/progmodes/cc-mode.elc): Depend on $(lisp)subdirs.el,
|
||||
instead of on update-subdirs.
|
||||
(bootstrap-clean): Delete $(lisp)/subdirs.el.
|
||||
|
||||
2012-07-28 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* vc/vc.el (vc-root-diff, vc-print-root-log): Prompt for a
|
||||
directory if vc-deduce-backend returns nil (Bug#7350).
|
||||
|
||||
* simple.el (delete-trailing-lines): New option.
|
||||
(delete-trailing-whitespace): Obey it (Bug#11879).
|
||||
|
||||
2012-07-28 David Engster <deng@randomsample.de>
|
||||
|
||||
* xml.el (xml-node-name, xml-parse-file, xml-parse-region):
|
||||
Explanation of new 'symbol-qnames feature in doc-strings.
|
||||
(xml-maybe-do-ns): Return expanded names as plain symbols if
|
||||
'symbol-qnames was provided in XML-NS argument (Bug#11916).
|
||||
(xml-parse-tag-1): Deal with new definition of PARSE-NS argument.
|
||||
|
||||
2012-07-27 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
Consistent completion in inferior python with emacs -nw.
|
||||
* progmodes/python.el (inferior-python-mode): replace "<tab>"
|
||||
binding in inferior-python-mode-map with "\t".
|
||||
(python-shell-completion-complete-at-point)
|
||||
(python-completion-complete-at-point): Remove interactive spec.
|
||||
|
||||
2012-07-27 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calccomp.el (math-compose-expr): Undo previous change.
|
||||
|
||||
2012-07-27 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* progmodes/python.el (python-mode-map): Added keybinding for
|
||||
run-python.
|
||||
(python-shell-make-comint): Fix pop-to-buffer call.
|
||||
(run-python): Autoload. New arg SHOW.
|
||||
(python-shell-get-or-create-process): Do not pop python process
|
||||
buffer.
|
||||
|
||||
2012-07-27 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* notifications.el (notifications-on-action-signal)
|
||||
(notifications-on-closed-signal): Use also the bus address for the map.
|
||||
(notifications-notify, notifications-close-notification)
|
||||
(notifications-get-capabilities): Add optional argument BUS.
|
||||
|
||||
2012-07-27 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* textmodes/reftex-vars.el (reftex-label-alist-builtin): Add
|
||||
support for the lstlisting and minted environments, and for the
|
||||
ctable macro.
|
||||
* textmodes/reftex.el (reftex-compile-variables): Also recognize
|
||||
labels written in keyvals syntax.
|
||||
|
||||
2012-07-27 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calccomp.el (math-compose-expr): Use parentheses when
|
||||
there is a product in the denominator of a fraction.
|
||||
|
||||
2012-07-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in ($(lisp)/calendar/cal-loaddefs.el)
|
||||
|
|
@ -10309,7 +10499,7 @@
|
|||
(tramp-completion-file-name-regexp-unified)
|
||||
(tramp-completion-file-name-regexp-separate)
|
||||
(tramp-completion-file-name-regexp-url): Don't use leading volume
|
||||
letter on win32 systems. (Bug#5303, Bug#9311)
|
||||
letter on w32 systems. (Bug#5303, Bug#9311)
|
||||
(tramp-drop-volume-letter): Simplify definition.
|
||||
Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
|
||||
|
||||
|
|
|
|||
|
|
@ -6906,7 +6906,7 @@
|
|||
standard `print' and `nprint' programs, as well as `lpr' and
|
||||
similar programs. Only write directly to the printer port if no
|
||||
print program is specified. Work around a bug in Windows 9x
|
||||
affecting Win32 version of Emacs by invoking command.com to write
|
||||
affecting the w32 version of Emacs by invoking command.com to write
|
||||
to the printer port instead of writing directly.
|
||||
(direct-print-region-function): Use direct-print-region-helper to
|
||||
do most of the work.
|
||||
|
|
|
|||
|
|
@ -139,6 +139,8 @@ all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el
|
|||
|
||||
doit:
|
||||
|
||||
.PHONY: all doit custom-deps finder-data autoloads update-subdirs
|
||||
|
||||
# custom-deps and finder-data both used to scan _all_ the *.el files.
|
||||
# This could lead to problems in parallel builds if automatically
|
||||
# generated *.el files (eg loaddefs etc) were being changed at the same time.
|
||||
|
|
@ -184,6 +186,8 @@ update-subdirs: doit
|
|||
$(top_srcdir)/build-aux/update-subdirs $$file; \
|
||||
done;
|
||||
|
||||
.PHONY: updates bzr-update update-authors
|
||||
|
||||
# Some modes of make-dist use this.
|
||||
updates: update-subdirs autoloads finder-data custom-deps
|
||||
|
||||
|
|
@ -215,6 +219,7 @@ TAGS TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptags
|
|||
# src/Makefile.in to rebuild a particular Lisp file, no questions asked.
|
||||
# Use byte-compile-refresh-preloaded to try and work around some of
|
||||
# the most common problems of not bootstrapping from a clean state.
|
||||
.PHONY: compile-onefile
|
||||
compile-onefile:
|
||||
@echo Compiling $(THEFILE)
|
||||
@# Use byte-compile-refresh-preloaded to try and work around some of
|
||||
|
|
@ -302,6 +307,8 @@ compile-always: doit
|
|||
cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc
|
||||
$(MAKE) $(MFLAGS) compile EMACS=$(EMACS)
|
||||
|
||||
.PHONY: compile-calc backup-compiled-files compile-after-backup
|
||||
|
||||
compile-calc:
|
||||
for el in $(lisp)/calc/*.el; do \
|
||||
echo Compiling $$el; \
|
||||
|
|
@ -334,6 +341,7 @@ compile-after-backup: backup-compiled-files compile-always
|
|||
# files that use byte-compile-dynamic are updated.
|
||||
# There is no reason to use this rule unless you only have a single
|
||||
# core and CPU time is an issue.
|
||||
.PHONY: compile-one-process
|
||||
compile-one-process: doit $(LOADDEFS) compile-first $(lisp)/progmodes/cc-mode.elc
|
||||
$(emacs) $(BYTE_COMPILE_FLAGS) \
|
||||
--eval "(batch-byte-recompile-directory 0)" $(lisp)
|
||||
|
|
@ -356,6 +364,7 @@ MH_E_SRC = $(MH_E_DIR)/mh-acros.el $(MH_E_DIR)/mh-alias.el \
|
|||
$(MH_E_DIR)/mh-tool-bar.el $(MH_E_DIR)/mh-utils.el \
|
||||
$(MH_E_DIR)/mh-xface.el
|
||||
|
||||
.PHONY: mh-autoloads
|
||||
mh-autoloads: $(MH_E_DIR)/mh-loaddefs.el
|
||||
$(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC)
|
||||
$(emacs) -l autoload \
|
||||
|
|
@ -418,6 +427,8 @@ $(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC)
|
|||
--eval "(setq make-backup-files nil)" \
|
||||
-f batch-update-autoloads $(CAL_DIR)
|
||||
|
||||
.PHONY: bootstrap-clean distclean maintainer-clean
|
||||
|
||||
bootstrap-clean:
|
||||
cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc $(AUTOGENEL)
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,12 @@ opinions.
|
|||
Summary of changes to "Calc"
|
||||
------- -- ------- -- ----
|
||||
|
||||
Emacs 24.2
|
||||
|
||||
Algebraic simplification mode is now the default.
|
||||
To restrict to the limited simplifications given by the former
|
||||
default simplification mode, use `m L'.
|
||||
|
||||
Emacs 24.1
|
||||
|
||||
* Support for musical notes added.
|
||||
|
|
|
|||
|
|
@ -356,6 +356,8 @@
|
|||
;; math-simplify-step, which is called by math-simplify.
|
||||
(defvar math-top-only)
|
||||
|
||||
;; math-normalize-error is declared in calc.el.
|
||||
(defvar math-normalize-error)
|
||||
(defun math-simplify (top-expr)
|
||||
(let ((math-simplifying t)
|
||||
(math-top-only (consp calc-simplify-mode))
|
||||
|
|
@ -383,10 +385,12 @@
|
|||
(calc-with-default-simplification
|
||||
(while (let ((r simp-rules))
|
||||
(setq res (math-normalize top-expr))
|
||||
(while r
|
||||
(setq res (math-rewrite res (car r))
|
||||
r (cdr r)))
|
||||
(not (equal top-expr (setq res (math-simplify-step res)))))
|
||||
(if (not math-normalize-error)
|
||||
(progn
|
||||
(while r
|
||||
(setq res (math-rewrite res (car r))
|
||||
r (cdr r)))
|
||||
(not (equal top-expr (setq res (math-simplify-step res)))))))
|
||||
(setq top-expr res)))))
|
||||
top-expr)
|
||||
|
||||
|
|
|
|||
|
|
@ -454,12 +454,12 @@
|
|||
(define-key calc-mode-map "mv" 'calc-matrix-mode)
|
||||
(define-key calc-mode-map "mw" 'calc-working)
|
||||
(define-key calc-mode-map "mx" 'calc-always-load-extensions)
|
||||
(define-key calc-mode-map "mA" 'calc-alg-simplify-mode)
|
||||
(define-key calc-mode-map "mB" 'calc-bin-simplify-mode)
|
||||
(define-key calc-mode-map "mC" 'calc-auto-recompute)
|
||||
(define-key calc-mode-map "mD" 'calc-default-simplify-mode)
|
||||
(define-key calc-mode-map "mE" 'calc-ext-simplify-mode)
|
||||
(define-key calc-mode-map "mF" 'calc-settings-file-name)
|
||||
(define-key calc-mode-map "mL" 'calc-limited-simplify-mode)
|
||||
(define-key calc-mode-map "mM" 'calc-more-recursion-depth)
|
||||
(define-key calc-mode-map "mN" 'calc-num-simplify-mode)
|
||||
(define-key calc-mode-map "mO" 'calc-no-simplify-mode)
|
||||
|
|
@ -1093,7 +1093,7 @@ calc-pi calc-radians-mode calc-sec calc-sech
|
|||
calc-sin calc-sincos calc-sinh calc-sqrt
|
||||
calc-tan calc-tanh calc-to-degrees calc-to-radians)
|
||||
|
||||
("calc-mode" calc-alg-simplify-mode calc-algebraic-mode
|
||||
("calc-mode" calc-limited-simplify-mode calc-algebraic-mode
|
||||
calc-always-load-extensions calc-auto-recompute calc-auto-why
|
||||
calc-bin-simplify-mode calc-break-vectors calc-center-justify
|
||||
calc-default-simplify-mode calc-display-raw calc-eng-notation
|
||||
|
|
|
|||
|
|
@ -642,7 +642,7 @@ C-w Describe how there is no warranty for Calc."
|
|||
'("Deg, Rad, HMS; Frac; Polar; Inf; Alg, Total; Symb; Vec/mat"
|
||||
"Working; Xtensions; Mode-save; preserve Embedded modes"
|
||||
"SHIFT + Shifted-prefixes, mode-Filename; Record; reCompute"
|
||||
"SHIFT + simplify: Off, Num, Default, Bin, Alg, Ext, Units")
|
||||
"SHIFT + simplify: Off, Num, Limited, Default, Bin, Ext, Units")
|
||||
"mode" ?m))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -504,7 +504,7 @@
|
|||
mode)))
|
||||
(message "%s" (if (eq calc-simplify-mode mode)
|
||||
msg
|
||||
"Default simplifications enabled")))
|
||||
"Default algebraic simplifications enabled")))
|
||||
|
||||
(defun calc-no-simplify-mode (arg)
|
||||
(interactive "P")
|
||||
|
|
@ -519,15 +519,18 @@
|
|||
"Default simplifications apply only if arguments are numeric")))
|
||||
|
||||
(defun calc-default-simplify-mode (arg)
|
||||
(interactive "p")
|
||||
(cond ((= arg 1)
|
||||
(interactive "P")
|
||||
(cond ((or (not arg) (= arg 3))
|
||||
(calc-wrapper
|
||||
(calc-set-simplify-mode
|
||||
'alg nil "Default algebraic simplifications enabled")))
|
||||
((= arg 1)
|
||||
(calc-wrapper
|
||||
(calc-set-simplify-mode
|
||||
nil nil "Usual default simplifications are enabled")))
|
||||
nil nil "Limited simplifications occur by default")))
|
||||
((= arg 0) (calc-num-simplify-mode 1))
|
||||
((< arg 0) (calc-no-simplify-mode 1))
|
||||
((= arg 2) (calc-bin-simplify-mode 1))
|
||||
((= arg 3) (calc-alg-simplify-mode 1))
|
||||
((= arg 4) (calc-ext-simplify-mode 1))
|
||||
((= arg 5) (calc-units-simplify-mode 1))
|
||||
(t (error "Prefix argument out of range"))))
|
||||
|
|
@ -539,11 +542,11 @@
|
|||
(format "Binary simplification occurs by default (word size=%d)"
|
||||
calc-word-size))))
|
||||
|
||||
(defun calc-alg-simplify-mode (arg)
|
||||
(defun calc-limited-simplify-mode (arg)
|
||||
(interactive "P")
|
||||
(calc-wrapper
|
||||
(calc-set-simplify-mode 'alg arg
|
||||
"Algebraic simplification occurs by default")))
|
||||
(calc-set-simplify-mode nil arg
|
||||
"Limited simplifications occur by default")))
|
||||
|
||||
(defun calc-ext-simplify-mode (arg)
|
||||
(interactive "P")
|
||||
|
|
|
|||
|
|
@ -698,11 +698,11 @@ If `C' is present, display outer brackets for matrices (centered).")
|
|||
(defcalcmodevar calc-previous-modulo nil
|
||||
"Most recently used value of M in a modulo form.")
|
||||
|
||||
(defcalcmodevar calc-simplify-mode nil
|
||||
(defcalcmodevar calc-simplify-mode 'alg
|
||||
"Type of simplification applied to results.
|
||||
If `none', results are not simplified when pushed on the stack.
|
||||
If `num', functions are simplified only when args are constant.
|
||||
If nil, only fast simplifications are applied.
|
||||
If nil, only limited simplifications are applied.
|
||||
If `binary', `math-clip' is applied if appropriate.
|
||||
If `alg', `math-simplify' is applied.
|
||||
If `ext', `math-simplify-extended' is applied.
|
||||
|
|
@ -1757,10 +1757,10 @@ See calc-keypad for details."
|
|||
((eq calc-simplify-mode 'num) "NumSimp ")
|
||||
((eq calc-simplify-mode 'binary)
|
||||
(format "BinSimp%d " calc-word-size))
|
||||
((eq calc-simplify-mode 'alg) "AlgSimp ")
|
||||
((eq calc-simplify-mode 'alg) "")
|
||||
((eq calc-simplify-mode 'ext) "ExtSimp ")
|
||||
((eq calc-simplify-mode 'units) "UnitSimp ")
|
||||
(t ""))
|
||||
(t "LimSimp "))
|
||||
|
||||
;; Display modes
|
||||
(cond ((= calc-number-radix 10) "")
|
||||
|
|
@ -2583,7 +2583,11 @@ largest Emacs integer.")
|
|||
;;; Reduce an object to canonical (normalized) form. [O o; Z Z] [Public]
|
||||
|
||||
(defvar math-normalize-a)
|
||||
(defvar math-normalize-error nil
|
||||
"Non-nil if the last call the `math-normalize' returned an error.")
|
||||
|
||||
(defun math-normalize (math-normalize-a)
|
||||
(setq math-normalize-error nil)
|
||||
(cond
|
||||
((not (consp math-normalize-a))
|
||||
(if (integerp math-normalize-a)
|
||||
|
|
@ -2672,31 +2676,38 @@ largest Emacs integer.")
|
|||
(fboundp (car math-normalize-a))))
|
||||
(apply (car math-normalize-a) args)))))
|
||||
(wrong-number-of-arguments
|
||||
(setq math-normalize-error t)
|
||||
(calc-record-why "*Wrong number of arguments"
|
||||
(cons (car math-normalize-a) args))
|
||||
nil)
|
||||
(wrong-type-argument
|
||||
(setq math-normalize-error t)
|
||||
(or calc-next-why
|
||||
(calc-record-why "Wrong type of argument"
|
||||
(cons (car math-normalize-a) args)))
|
||||
nil)
|
||||
(args-out-of-range
|
||||
(setq math-normalize-error t)
|
||||
(calc-record-why "*Argument out of range"
|
||||
(cons (car math-normalize-a) args))
|
||||
nil)
|
||||
(inexact-result
|
||||
(setq math-normalize-error t)
|
||||
(calc-record-why "No exact representation for result"
|
||||
(cons (car math-normalize-a) args))
|
||||
nil)
|
||||
(math-overflow
|
||||
(setq math-normalize-error t)
|
||||
(calc-record-why "*Floating-point overflow occurred"
|
||||
(cons (car math-normalize-a) args))
|
||||
nil)
|
||||
(math-underflow
|
||||
(setq math-normalize-error t)
|
||||
(calc-record-why "*Floating-point underflow occurred"
|
||||
(cons (car math-normalize-a) args))
|
||||
nil)
|
||||
(void-variable
|
||||
(setq math-normalize-error t)
|
||||
(if (eq (nth 1 err) 'var-EvalRules)
|
||||
(progn
|
||||
(setq var-EvalRules nil)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
inaccessable -> inaccessible spelling fix (Bug#10052)
|
||||
* semantic/wisent/comp.el (wisent-inaccessible-symbols):
|
||||
Rename from wisent-inaccessable-symbols, fixing a misspelling.
|
||||
Caller changed.
|
||||
|
||||
2012-07-09 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* ede/project-am.el: Fix typo.
|
||||
|
|
|
|||
|
|
@ -550,7 +550,7 @@ S must be a vector of integers."
|
|||
N Ns)))
|
||||
(setq N Np)))
|
||||
|
||||
(defun wisent-inaccessable-symbols ()
|
||||
(defun wisent-inaccessible-symbols ()
|
||||
"Find out which productions are reachable and which symbols are used."
|
||||
;; Starting with an empty set of productions and a set of symbols
|
||||
;; which only has the start symbol in it, iterate over all
|
||||
|
|
@ -709,7 +709,7 @@ S must be a vector of integers."
|
|||
nuseless-productions 0)
|
||||
|
||||
(wisent-useless-nonterminals)
|
||||
(wisent-inaccessable-symbols)
|
||||
(wisent-inaccessible-symbols)
|
||||
|
||||
(when (> (+ nuseless-nonterminals nuseless-productions) 0)
|
||||
(wisent-total-useless)
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@ filesystem mounted on drive Z:, FILESYSTEM could be \"Z:\"."
|
|||
(apply 'call-process lpr-prog nil errbuf nil rest))
|
||||
;; Run command.com to access printer port on Windows 9x, unless
|
||||
;; we are supposed to append to an existing (non-empty) file,
|
||||
;; to work around a bug in Windows 9x that prevents Win32
|
||||
;; to work around a bug in Windows 9x that prevents Windows
|
||||
;; programs from accessing LPT ports reliably.
|
||||
((and (eq system-type 'windows-nt)
|
||||
(getenv "winbootdir")
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ Use `M-x viper-set-expert-level' to change this.")
|
|||
))
|
||||
|
||||
;; viper hook to run on input-method deactivation
|
||||
(defun viper-inactivate-input-method-action ()
|
||||
(defun viper-deactivate-input-method-action ()
|
||||
(if (null viper-mule-hook-flag)
|
||||
()
|
||||
(setq viper-special-input-method nil)
|
||||
|
|
@ -328,9 +328,9 @@ Use `M-x viper-set-expert-level' to change this.")
|
|||
(or current-input-method default-input-method))
|
||||
"")))))
|
||||
|
||||
(defun viper-inactivate-input-method ()
|
||||
(cond ((and (featurep 'emacs) (fboundp 'inactivate-input-method))
|
||||
(inactivate-input-method))
|
||||
(defun viper-deactivate-input-method ()
|
||||
(cond ((and (featurep 'emacs) (fboundp 'deactivate-input-method))
|
||||
(deactivate-input-method))
|
||||
((and (featurep 'xemacs) (boundp 'current-input-method))
|
||||
;; XEmacs had broken quail-mode for some time, so we are working around
|
||||
;; it here
|
||||
|
|
@ -339,7 +339,9 @@ Use `M-x viper-set-expert-level' to change this.")
|
|||
(quail-delete-overlays))
|
||||
(setq describe-current-input-method-function nil)
|
||||
(setq current-input-method nil)
|
||||
(run-hooks 'input-method-inactivate-hook)
|
||||
(run-hooks
|
||||
'input-method-inactivate-hook ; for backward compatibility
|
||||
'input-method-deactivate-hook)
|
||||
(force-mode-line-update))
|
||||
))
|
||||
(defun viper-activate-input-method ()
|
||||
|
|
@ -356,7 +358,7 @@ Use `M-x viper-set-expert-level' to change this.")
|
|||
;; activate input method
|
||||
(viper-activate-input-method))
|
||||
(t ; deactivate input method
|
||||
(viper-inactivate-input-method)))
|
||||
(viper-deactivate-input-method)))
|
||||
))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -971,9 +971,9 @@ It also can't undo some Viper settings."
|
|||
(if (featurep 'emacs)
|
||||
(eval-after-load "mule-cmds"
|
||||
'(progn
|
||||
(defadvice inactivate-input-method (after viper-mule-advice activate)
|
||||
(defadvice deactivate-input-method (after viper-mule-advice activate)
|
||||
"Set viper-special-input-method to disable intl. input methods."
|
||||
(viper-inactivate-input-method-action))
|
||||
(viper-deactivate-input-method-action))
|
||||
(defadvice activate-input-method (after viper-mule-advice activate)
|
||||
"Set viper-special-input-method to enable intl. input methods."
|
||||
(viper-activate-input-method-action))
|
||||
|
|
@ -985,14 +985,14 @@ It also can't undo some Viper settings."
|
|||
'(progn
|
||||
(add-hook 'input-method-activate-hook
|
||||
'viper-activate-input-method-action t)
|
||||
(add-hook 'input-method-inactivate-hook
|
||||
'viper-inactivate-input-method-action t)))
|
||||
(add-hook 'input-method-deactivate-hook
|
||||
'viper-deactivate-input-method-action t)))
|
||||
)
|
||||
(eval-after-load "mule-cmds"
|
||||
'(defadvice toggle-input-method (around viper-mule-advice activate)
|
||||
"Adjust input-method toggling in vi-state."
|
||||
(if (and viper-special-input-method (eq viper-current-state 'vi-state))
|
||||
(viper-inactivate-input-method)
|
||||
(viper-deactivate-input-method)
|
||||
ad-do-it)))
|
||||
|
||||
) ; viper-set-hooks
|
||||
|
|
|
|||
|
|
@ -334,8 +334,8 @@ property `follow-mode-use-cache' to non-nil.")
|
|||
(defvar follow-active-menu nil
|
||||
"The menu visible when Follow mode is active.")
|
||||
|
||||
(defvar follow-deactive-menu nil
|
||||
"The menu visible when Follow mode is deactivated.")
|
||||
(defvar follow-inactive-menu nil
|
||||
"The menu visible when Follow mode is inactive.")
|
||||
|
||||
(defvar follow-inside-post-command-hook nil
|
||||
"Non-nil when inside Follow modes `post-command-hook'.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,26 @@
|
|||
2012-07-29 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* auth-source.el (auth-sources, auth-source-backend-parse)
|
||||
(auth-source-macos-keychain-search)
|
||||
(auth-source-macos-keychain-search-items)
|
||||
(auth-source-macos-keychain-result-append)
|
||||
(auth-source-macos-keychain-create): Support Mac OS X Keychains in
|
||||
auth-source.el through the /usr/bin/security utility.
|
||||
(auth-sources): Fix syntax error.
|
||||
(auth-source-macos-keychain-result-append): Fix variable name.
|
||||
(auth-sources, auth-source-macos-keychain-result-append): More fixes.
|
||||
|
||||
2012-07-27 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* message.el (fboundp): Add a defalias on `mail-dont-reply-to' for
|
||||
Emacs < 24.1
|
||||
|
||||
2012-07-27 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* message.el (message-kill-address): Don't kill last newline.
|
||||
(message-skip-to-next-address): Don't move to the next header.
|
||||
(message-fill-field-address): Work properly.
|
||||
|
||||
2012-07-25 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* gnus-art.el (gnus-kill-sticky-article-buffers): Reintroduce.
|
||||
|
|
|
|||
|
|
@ -254,6 +254,13 @@ can get pretty complex."
|
|||
(const :tag "Default Secrets API Collection" 'default)
|
||||
(const :tag "Login Secrets API Collection" "secrets:Login")
|
||||
(const :tag "Temp Secrets API Collection" "secrets:session")
|
||||
|
||||
(const :tag "Default internet Mac OS Keychain"
|
||||
'macos-keychain-internet)
|
||||
|
||||
(const :tag "Default generic Mac OS Keychain"
|
||||
'macos-keychain-generic)
|
||||
|
||||
(list :tag "Source definition"
|
||||
(const :format "" :value :source)
|
||||
(choice :tag "Authentication backend choice"
|
||||
|
|
@ -266,7 +273,21 @@ can get pretty complex."
|
|||
(const :tag "Default" 'default)
|
||||
(const :tag "Login" "Login")
|
||||
(const
|
||||
:tag "Temporary" "session"))))
|
||||
:tag "Temporary" "session")))
|
||||
(list
|
||||
:tag "Mac OS internet Keychain"
|
||||
(const :format ""
|
||||
:value :macos-keychain-internet)
|
||||
(choice :tag "Collection to use"
|
||||
(string :tag "internet Keychain path")
|
||||
(const :tag "default" 'default)))
|
||||
(list
|
||||
:tag "Mac OS generic Keychain"
|
||||
(const :format ""
|
||||
:value :macos-keychain-generic)
|
||||
(choice :tag "Collection to use"
|
||||
(string :tag "generic Keychain path")
|
||||
(const :tag "default" 'default))))
|
||||
(repeat :tag "Extra Parameters" :inline t
|
||||
(choice :tag "Extra parameter"
|
||||
(list
|
||||
|
|
@ -377,6 +398,10 @@ with \"[a/b/c] \" if CHOICES is '\(?a ?b ?c\)."
|
|||
;; (auth-source-backend-parse "myfile.gpg")
|
||||
;; (auth-source-backend-parse 'default)
|
||||
;; (auth-source-backend-parse "secrets:Login")
|
||||
;; (auth-source-backend-parse 'macos-keychain-internet)
|
||||
;; (auth-source-backend-parse 'macos-keychain-generic)
|
||||
;; (auth-source-backend-parse "macos-keychain-internet:/path/here.keychain")
|
||||
;; (auth-source-backend-parse "macos-keychain-generic:/path/here.keychain")
|
||||
|
||||
(defun auth-source-backend-parse (entry)
|
||||
"Creates an auth-source-backend from an ENTRY in `auth-sources'."
|
||||
|
|
@ -391,6 +416,28 @@ with \"[a/b/c] \" if CHOICES is '\(?a ?b ?c\)."
|
|||
;; matching any user, host, and protocol
|
||||
((and (stringp entry) (string-match "^secrets:\\(.+\\)" entry))
|
||||
(auth-source-backend-parse `(:source (:secrets ,(match-string 1 entry)))))
|
||||
|
||||
;; take 'macos-keychain-internet and recurse to get it as a Mac OS
|
||||
;; Keychain collection matching any user, host, and protocol
|
||||
((eq entry 'macos-keychain-internet)
|
||||
(auth-source-backend-parse '(:source (:macos-keychain-internet default))))
|
||||
;; take 'macos-keychain-generic and recurse to get it as a Mac OS
|
||||
;; Keychain collection matching any user, host, and protocol
|
||||
((eq entry 'macos-keychain-generic)
|
||||
(auth-source-backend-parse '(:source (:macos-keychain-generic default))))
|
||||
;; take macos-keychain-internet:XYZ and recurse to get it as MacOS
|
||||
;; Keychain "XYZ" matching any user, host, and protocol
|
||||
((and (stringp entry) (string-match "^macos-keychain-internet:\\(.+\\)"
|
||||
entry))
|
||||
(auth-source-backend-parse `(:source (:macos-keychain-internet
|
||||
,(match-string 1 entry)))))
|
||||
;; take macos-keychain-generic:XYZ and recurse to get it as MacOS
|
||||
;; Keychain "XYZ" matching any user, host, and protocol
|
||||
((and (stringp entry) (string-match "^macos-keychain-generic:\\(.+\\)"
|
||||
entry))
|
||||
(auth-source-backend-parse `(:source (:macos-keychain-generic
|
||||
,(match-string 1 entry)))))
|
||||
|
||||
;; take just a file name and recurse to get it as a netrc file
|
||||
;; matching any user, host, and protocol
|
||||
((stringp entry)
|
||||
|
|
@ -413,6 +460,33 @@ with \"[a/b/c] \" if CHOICES is '\(?a ?b ?c\)."
|
|||
:search-function 'auth-source-netrc-search
|
||||
:create-function 'auth-source-netrc-create)))
|
||||
|
||||
;; the MacOS Keychain
|
||||
((and
|
||||
(not (null (plist-get entry :source))) ; the source must not be nil
|
||||
(listp (plist-get entry :source)) ; and it must be a list
|
||||
(or
|
||||
(plist-get (plist-get entry :source) :macos-keychain-generic)
|
||||
(plist-get (plist-get entry :source) :macos-keychain-internet)))
|
||||
|
||||
(let* ((source-spec (plist-get entry :source))
|
||||
(keychain-generic (plist-get source-spec :macos-keychain-generic))
|
||||
(keychain-type (if keychain-generic
|
||||
'macos-keychain-generic
|
||||
'macos-keychain-internet))
|
||||
(source (plist-get source-spec (if keychain-generic
|
||||
:macos-keychain-generic
|
||||
:macos-keychain-internet))))
|
||||
|
||||
(when (symbolp source)
|
||||
(setq source (symbol-name source)))
|
||||
|
||||
(auth-source-backend
|
||||
(format "Mac OS Keychain (%s)" source)
|
||||
:source source
|
||||
:type keychain-type
|
||||
:search-function 'auth-source-macos-keychain-search
|
||||
:create-function 'auth-source-macos-keychain-create)))
|
||||
|
||||
;; the Secrets API. We require the package, in order to have a
|
||||
;; defined value for `secrets-enabled'.
|
||||
((and
|
||||
|
|
@ -694,6 +768,7 @@ must call it to obtain the actual value."
|
|||
(let* ((bmatches (apply
|
||||
(slot-value backend 'search-function)
|
||||
:backend backend
|
||||
:type (slot-value backend :type)
|
||||
;; note we're overriding whatever the spec
|
||||
;; has for :require, :create, and :delete
|
||||
:require require
|
||||
|
|
@ -1515,6 +1590,193 @@ authentication tokens:
|
|||
;; (apply 'secrets-create-item (auth-get-source entry) name passwd spec)
|
||||
(debug spec))
|
||||
|
||||
;;; Backend specific parsing: Mac OS Keychain (using /usr/bin/security) backend
|
||||
|
||||
;; (let ((auth-sources '(macos-keychain-internet))) (auth-source-search :max 1 :create t))
|
||||
;; (let ((auth-sources '(macos-keychain-internet))) (auth-source-search :max 1 :delete t))
|
||||
;; (let ((auth-sources '(macos-keychain-internet))) (auth-source-search :max 1))
|
||||
;; (let ((auth-sources '(macos-keychain-internet))) (auth-source-search))
|
||||
|
||||
;; (let ((auth-sources '(macos-keychain-generic))) (auth-source-search :max 1 :create t))
|
||||
;; (let ((auth-sources '(macos-keychain-generic))) (auth-source-search :max 1 :delete t))
|
||||
;; (let ((auth-sources '(macos-keychain-generic))) (auth-source-search :max 1))
|
||||
;; (let ((auth-sources '(macos-keychain-generic))) (auth-source-search))
|
||||
|
||||
;; (let ((auth-sources '("macos-keychain-internet:/Users/tzz/Library/Keychains/login.keychain"))) (auth-source-search :max 1))
|
||||
;; (let ((auth-sources '("macos-keychain-generic:Login"))) (auth-source-search :max 1 :host "git.gnus.org"))
|
||||
|
||||
(defun* auth-source-macos-keychain-search (&rest
|
||||
spec
|
||||
&key backend create delete label
|
||||
type max host user port
|
||||
&allow-other-keys)
|
||||
"Search the MacOS Keychain; spec is like `auth-source'.
|
||||
|
||||
All search keys must match exactly. If you need substring
|
||||
matching, do a wider search and narrow it down yourself.
|
||||
|
||||
You'll get back all the properties of the token as a plist.
|
||||
|
||||
The :type key is either 'macos-keychain-internet or
|
||||
'macos-keychain-generic.
|
||||
|
||||
For the internet keychain type, the :label key searches the
|
||||
item's labels (\"-l LABEL\" passed to \"/usr/bin/security\").
|
||||
Similarly, :host maps to \"-s HOST\", :user maps to \"-a USER\",
|
||||
and :port maps to \"-P PORT\" or \"-r PROT\"
|
||||
(note PROT has to be a 4-character string).
|
||||
|
||||
For the generic keychain type, the :label key searches the item's
|
||||
labels (\"-l LABEL\" passed to \"/usr/bin/security\").
|
||||
Similarly, :host maps to \"-c HOST\" (the \"creator\" keychain
|
||||
field), :user maps to \"-a USER\", and :port maps to \"-s PORT\".
|
||||
|
||||
Here's an example that looks for the first item in the default
|
||||
generic MacOS Keychain:
|
||||
|
||||
\(let ((auth-sources '(macos-keychain-generic)))
|
||||
(auth-source-search :max 1)
|
||||
|
||||
Here's another that looks for the first item in the internet
|
||||
MacOS Keychain collection whose label is 'gnus':
|
||||
|
||||
\(let ((auth-sources '(macos-keychain-internet)))
|
||||
(auth-source-search :max 1 :label \"gnus\")
|
||||
|
||||
And this one looks for the first item in the internet keychain
|
||||
entries for git.gnus.org:
|
||||
|
||||
\(let ((auth-sources '(macos-keychain-internet\")))
|
||||
(auth-source-search :max 1 :host \"git.gnus.org\"))
|
||||
"
|
||||
;; TODO
|
||||
(assert (not create) nil
|
||||
"The MacOS Keychain auth-source backend doesn't support creation yet")
|
||||
;; TODO
|
||||
;; (macos-keychain-delete-item coll elt)
|
||||
(assert (not delete) nil
|
||||
"The MacOS Keychain auth-source backend doesn't support deletion yet")
|
||||
|
||||
(let* ((coll (oref backend source))
|
||||
(max (or max 5000)) ; sanity check: default to stop at 5K
|
||||
(ignored-keys '(:create :delete :max :backend :label))
|
||||
(search-keys (loop for i below (length spec) by 2
|
||||
unless (memq (nth i spec) ignored-keys)
|
||||
collect (nth i spec)))
|
||||
;; build a search spec without the ignored keys
|
||||
;; if a search key is nil or t (match anything), we skip it
|
||||
(search-spec (apply 'append (mapcar
|
||||
(lambda (k)
|
||||
(if (or (null (plist-get spec k))
|
||||
(eq t (plist-get spec k)))
|
||||
nil
|
||||
(list k (plist-get spec k))))
|
||||
search-keys)))
|
||||
;; needed keys (always including host, login, port, and secret)
|
||||
(returned-keys (mm-delete-duplicates (append
|
||||
'(:host :login :port :secret)
|
||||
search-keys)))
|
||||
(items (apply 'auth-source-macos-keychain-search-items
|
||||
coll
|
||||
type
|
||||
max
|
||||
search-spec))
|
||||
|
||||
;; ensure each item has each key in `returned-keys'
|
||||
(items (mapcar (lambda (plist)
|
||||
(append
|
||||
(apply 'append
|
||||
(mapcar (lambda (req)
|
||||
(if (plist-get plist req)
|
||||
nil
|
||||
(list req nil)))
|
||||
returned-keys))
|
||||
plist))
|
||||
items)))
|
||||
items))
|
||||
|
||||
(defun* auth-source-macos-keychain-search-items (coll type max
|
||||
&rest spec
|
||||
&key label type
|
||||
host user port
|
||||
&allow-other-keys)
|
||||
|
||||
(let* ((keychain-generic (eq type 'macos-keychain-generic))
|
||||
(args `(,(if keychain-generic
|
||||
"find-generic-password"
|
||||
"find-internet-password")
|
||||
"-g"))
|
||||
(ret (list :type type)))
|
||||
(when label
|
||||
(setq args (append args (list "-l" label))))
|
||||
(when host
|
||||
(setq args (append args (list (if keychain-generic "-c" "-s") host))))
|
||||
(when user
|
||||
(setq args (append args (list "-a" user))))
|
||||
|
||||
(when port
|
||||
(if keychain-generic
|
||||
(setq args (append args (list "-s" port)))
|
||||
(setq args (append args (list
|
||||
(if (string-match "[0-9]+" port) "-P" "-r")
|
||||
port)))))
|
||||
|
||||
(unless (equal coll "default")
|
||||
(setq args (append args (list coll))))
|
||||
|
||||
(with-temp-buffer
|
||||
(apply 'call-process "/usr/bin/security" nil t nil args)
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(cond
|
||||
((looking-at "^password: \"\\(.+\\)\"$")
|
||||
(auth-source-macos-keychain-result-append
|
||||
ret
|
||||
keychain-generic
|
||||
"secret"
|
||||
(lexical-let ((v (match-string 1)))
|
||||
(lambda () v))))
|
||||
;; TODO: check if this is really the label
|
||||
;; match 0x00000007 <blob>="AppleID"
|
||||
((looking-at "^[ ]+0x00000007 <blob>=\"\\(.+\\)\"")
|
||||
(auth-source-macos-keychain-result-append
|
||||
ret
|
||||
keychain-generic
|
||||
"label"
|
||||
(match-string 1)))
|
||||
;; match "crtr"<uint32>="aapl"
|
||||
;; match "svce"<blob>="AppleID"
|
||||
((looking-at "^[ ]+\"\\([a-z]+\\)\"[^=]+=\"\\(.+\\)\"")
|
||||
(auth-source-macos-keychain-result-append
|
||||
ret
|
||||
keychain-generic
|
||||
(match-string 1)
|
||||
(match-string 2))))
|
||||
(forward-line)))
|
||||
;; return `ret' iff it has the :secret key
|
||||
(and (plist-get ret :secret) (list ret))))
|
||||
|
||||
(defun auth-source-macos-keychain-result-append (result generic k v)
|
||||
(push v result)
|
||||
(setq k (cond
|
||||
((equal k "acct") "user")
|
||||
;; for generic keychains, creator is host, service is port
|
||||
((and generic (equal k "crtr")) "host")
|
||||
((and generic (equal k "svce")) "port")
|
||||
;; for internet keychains, protocol is port, server is host
|
||||
((and (not generic) (equal k "ptcl")) "port")
|
||||
((and (not generic) (equal k "srvr")) "host")
|
||||
(t k)))
|
||||
|
||||
(push (intern (format ":%s" k)) result))
|
||||
|
||||
(defun* auth-source-macos-keychain-create (&rest
|
||||
spec
|
||||
&key backend type max host user port
|
||||
&allow-other-keys)
|
||||
;; TODO
|
||||
(debug spec))
|
||||
|
||||
;;; Backend specific parsing: PLSTORE backend
|
||||
|
||||
(defun* auth-source-plstore-search (&rest
|
||||
|
|
|
|||
|
|
@ -1933,10 +1933,13 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'."
|
|||
(autoload 'nndraft-request-associate-buffer "nndraft")
|
||||
(autoload 'nndraft-request-expire-articles "nndraft")
|
||||
(autoload 'nnvirtual-find-group-art "nnvirtual")
|
||||
(autoload 'mail-dont-reply-to "mail-utils")
|
||||
(autoload 'rmail-msg-is-pruned "rmail")
|
||||
(autoload 'rmail-output "rmailout")
|
||||
|
||||
;; Emacs < 24.1 do not have mail-dont-reply-to
|
||||
(unless (fboundp 'mail-dont-reply-to)
|
||||
(defalias 'mail-dont-reply-to 'rmail-dont-reply-to))
|
||||
|
||||
|
||||
|
||||
;;;
|
||||
|
|
@ -2603,7 +2606,7 @@ Point is left at the beginning of the narrowed-to region."
|
|||
(interactive)
|
||||
(let ((start (point)))
|
||||
(message-skip-to-next-address)
|
||||
(kill-region start (point))))
|
||||
(kill-region start (if (bolp) (1- (point)) (point)))))
|
||||
|
||||
|
||||
(autoload 'Info-goto-node "info")
|
||||
|
|
@ -6099,7 +6102,7 @@ Headers already prepared in the buffer are not modified."
|
|||
(while (and (not (= (point) end))
|
||||
(or (not (eq char ?,))
|
||||
quoted))
|
||||
(skip-chars-forward "^,\"" (point-max))
|
||||
(skip-chars-forward "^,\"" end)
|
||||
(when (eq (setq char (following-char)) ?\")
|
||||
(setq quoted (not quoted)))
|
||||
(unless (= (point) end)
|
||||
|
|
@ -6136,17 +6139,22 @@ If the current line has `message-yank-prefix', insert it on the new line."
|
|||
(point-max))))
|
||||
|
||||
(defun message-fill-field-address ()
|
||||
(while (not (eobp))
|
||||
(message-skip-to-next-address)
|
||||
(let (last)
|
||||
(if (and (> (current-column) 78)
|
||||
last)
|
||||
(progn
|
||||
(save-excursion
|
||||
(goto-char last)
|
||||
(insert "\n\t"))
|
||||
(setq last (1+ (point))))
|
||||
(setq last (1+ (point)))))))
|
||||
(let (end last)
|
||||
(while (not end)
|
||||
(message-skip-to-next-address)
|
||||
(cond ((bolp)
|
||||
(end-of-line 0)
|
||||
(setq end 1))
|
||||
((eobp)
|
||||
(setq end 0)))
|
||||
(when (and (> (current-column) 78)
|
||||
last)
|
||||
(save-excursion
|
||||
(goto-char last)
|
||||
(delete-char (- (skip-chars-backward " \t")))
|
||||
(insert "\n\t")))
|
||||
(setq last (point)))
|
||||
(forward-line end)))
|
||||
|
||||
(defun message-fill-field-general ()
|
||||
(let ((begin (point))
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@
|
|||
(bindings--define-key map [set-keyboard-coding-system]
|
||||
'(menu-item "For Keyboard" set-keyboard-coding-system
|
||||
:help "How to decode keyboard input"))
|
||||
|
||||
|
||||
(bindings--define-key map [separator-2] menu-bar-separator)
|
||||
(bindings--define-key map [set-file-name-coding-system]
|
||||
'(menu-item "For File Name" set-file-name-coding-system
|
||||
|
|
@ -128,7 +128,7 @@
|
|||
`(menu-item "Describe Language Environment"
|
||||
,describe-language-environment-map
|
||||
:help "Show multilingual settings for a specific language"))
|
||||
|
||||
|
||||
(bindings--define-key map [separator-coding-system] menu-bar-separator)
|
||||
(bindings--define-key map [view-hello-file]
|
||||
'(menu-item "Show Multilingual Sample Text" view-hello-file
|
||||
|
|
@ -1331,15 +1331,15 @@ of `history-length', which see.")
|
|||
(make-variable-buffer-local 'input-method-history)
|
||||
(put 'input-method-history 'permanent-local t)
|
||||
|
||||
(defvar inactivate-current-input-method-function nil
|
||||
"Function to call for inactivating the current input method.
|
||||
(defvar deactivate-current-input-method-function nil
|
||||
"Function to call for deactivating the current input method.
|
||||
Every input method should set this to an appropriate value when activated.
|
||||
This function is called with no argument.
|
||||
|
||||
This function should never change the value of `current-input-method'.
|
||||
It is set to nil by the function `inactivate-input-method'.")
|
||||
(make-variable-buffer-local 'inactivate-current-input-method-function)
|
||||
(put 'inactivate-current-input-method-function 'permanent-local t)
|
||||
It is set to nil by the function `deactivate-input-method'.")
|
||||
(make-variable-buffer-local 'deactivate-current-input-method-function)
|
||||
(put 'deactivate-current-input-method-function 'permanent-local t)
|
||||
|
||||
(defvar describe-current-input-method-function nil
|
||||
"Function to call for describing the current input method.
|
||||
|
|
@ -1426,7 +1426,7 @@ If INPUT-METHOD is nil, deactivate any current input method."
|
|||
(setq input-method (symbol-name input-method)))
|
||||
(if (and current-input-method
|
||||
(not (string= current-input-method input-method)))
|
||||
(inactivate-input-method))
|
||||
(deactivate-input-method))
|
||||
(unless (or current-input-method (null input-method))
|
||||
(let ((slot (assoc input-method input-method-alist)))
|
||||
(if (null slot)
|
||||
|
|
@ -1447,7 +1447,7 @@ If INPUT-METHOD is nil, deactivate any current input method."
|
|||
(run-hooks 'input-method-activate-hook)
|
||||
(force-mode-line-update)))))
|
||||
|
||||
(defun inactivate-input-method ()
|
||||
(defun deactivate-input-method ()
|
||||
"Turn off the current input method."
|
||||
(when current-input-method
|
||||
(if input-method-history
|
||||
|
|
@ -1460,12 +1460,18 @@ If INPUT-METHOD is nil, deactivate any current input method."
|
|||
(progn
|
||||
(setq input-method-function nil
|
||||
current-input-method-title nil)
|
||||
(funcall inactivate-current-input-method-function))
|
||||
(funcall deactivate-current-input-method-function))
|
||||
(unwind-protect
|
||||
(run-hooks 'input-method-inactivate-hook)
|
||||
(run-hooks
|
||||
'input-method-inactivate-hook ; for backward compatibility
|
||||
'input-method-deactivate-hook)
|
||||
(setq current-input-method nil)
|
||||
(force-mode-line-update)))))
|
||||
|
||||
(define-obsolete-function-alias
|
||||
'inactivate-input-method
|
||||
'deactivate-input-method "24.2")
|
||||
|
||||
(defun set-input-method (input-method &optional interactive)
|
||||
"Select and activate input method INPUT-METHOD for the current buffer.
|
||||
This also sets the default input method to the one you specify.
|
||||
|
|
@ -1476,7 +1482,7 @@ When called interactively, the optional arg INTERACTIVE is non-nil,
|
|||
which marks the variable `default-input-method' as set for Custom buffers.
|
||||
|
||||
To deactivate the input method interactively, use \\[toggle-input-method].
|
||||
To deactivate it programmatically, use `inactivate-input-method'."
|
||||
To deactivate it programmatically, use `deactivate-input-method'."
|
||||
(interactive
|
||||
(let* ((default (or (car input-method-history) default-input-method)))
|
||||
(list (read-input-method-name
|
||||
|
|
@ -1513,7 +1519,7 @@ which marks the variable `default-input-method' as set for Custom buffers."
|
|||
(if toggle-input-method-active
|
||||
(error "Recursive use of `toggle-input-method'"))
|
||||
(if (and current-input-method (not arg))
|
||||
(inactivate-input-method)
|
||||
(deactivate-input-method)
|
||||
(let ((toggle-input-method-active t)
|
||||
(default (or (car input-method-history) default-input-method)))
|
||||
(if (and arg default (equal current-input-method default)
|
||||
|
|
@ -1640,13 +1646,18 @@ just activated."
|
|||
:type 'hook
|
||||
:group 'mule)
|
||||
|
||||
(defcustom input-method-inactivate-hook nil
|
||||
"Normal hook run just after an input method is inactivated.
|
||||
(define-obsolete-variable-alias
|
||||
'input-method-inactivate-hook
|
||||
'input-method-deactivate-hook "24.2")
|
||||
|
||||
(defcustom input-method-deactivate-hook nil
|
||||
"Normal hook run just after an input method is deactivated.
|
||||
|
||||
The variable `current-input-method' still keeps the input method name
|
||||
just inactivated."
|
||||
just deactivated."
|
||||
:type 'hook
|
||||
:group 'mule)
|
||||
:group 'mule
|
||||
:version "24.2")
|
||||
|
||||
(defcustom input-method-after-insert-chunk-hook nil
|
||||
"Normal hook run just after an input method insert some chunk of text."
|
||||
|
|
@ -2662,15 +2673,6 @@ See also `locale-charset-language-names', `locale-language-names',
|
|||
(unless frame (setq locale-coding-system code-page-coding))
|
||||
(set-keyboard-coding-system code-page-coding frame)
|
||||
(set-terminal-coding-system code-page-coding frame)
|
||||
;; Set default-file-name-coding-system last, so that Emacs
|
||||
;; doesn't try to use cpNNNN when it defines keyboard and
|
||||
;; terminal encoding. That's because the above two lines
|
||||
;; will want to load code-pages.el, where cpNNNN are
|
||||
;; defined; if default-file-name-coding-system were set to
|
||||
;; cpNNNN while these two lines run, Emacs will want to use
|
||||
;; it for encoding the file name it wants to load. And that
|
||||
;; will fail, since cpNNNN is not yet usable until
|
||||
;; code-pages.el finishes loading.
|
||||
(setq default-file-name-coding-system code-page-coding))))
|
||||
|
||||
(when (eq system-type 'darwin)
|
||||
|
|
|
|||
|
|
@ -540,32 +540,36 @@ non-Quail commands."
|
|||
(if (and (overlayp quail-conv-overlay) (overlay-start quail-conv-overlay))
|
||||
(delete-overlay quail-conv-overlay)))
|
||||
|
||||
(defun quail-inactivate ()
|
||||
"Inactivate Quail input method.
|
||||
(defun quail-deactivate ()
|
||||
"Deactivate Quail input method.
|
||||
|
||||
This function runs the normal hook `quail-inactivate-hook'."
|
||||
This function runs the normal hook `quail-deactivate-hook'."
|
||||
(interactive)
|
||||
(quail-activate -1))
|
||||
|
||||
(define-obsolete-function-alias 'quail-inactivate 'quail-deactivate "24.2")
|
||||
|
||||
(defun quail-activate (&optional arg)
|
||||
"Activate Quail input method.
|
||||
With ARG, activate Quail input method if and only if arg is positive.
|
||||
|
||||
This function runs `quail-activate-hook' if it activates the input
|
||||
method, `quail-inactivate-hook' if it deactivates it.
|
||||
method, `quail-deactivate-hook' if it deactivates it.
|
||||
|
||||
While this input method is active, the variable
|
||||
`input-method-function' is bound to the function `quail-input-method'."
|
||||
(if (and arg
|
||||
(< (prefix-numeric-value arg) 0))
|
||||
;; Let's inactivate Quail input method.
|
||||
;; Let's deactivate Quail input method.
|
||||
(unwind-protect
|
||||
(progn
|
||||
(quail-delete-overlays)
|
||||
(setq describe-current-input-method-function nil)
|
||||
(quail-hide-guidance)
|
||||
(remove-hook 'post-command-hook 'quail-show-guidance t)
|
||||
(run-hooks 'quail-inactivate-hook))
|
||||
(run-hooks
|
||||
'quail-inactivate-hook ; for backward compatibility
|
||||
'quail-deactivate-hook))
|
||||
(kill-local-variable 'input-method-function))
|
||||
;; Let's activate Quail input method.
|
||||
(if (null quail-current-package)
|
||||
|
|
@ -575,7 +579,7 @@ While this input method is active, the variable
|
|||
(setq name (car (car quail-package-alist)))
|
||||
(error "No Quail package loaded"))
|
||||
(quail-select-package name)))
|
||||
(setq inactivate-current-input-method-function 'quail-inactivate)
|
||||
(setq deactivate-current-input-method-function 'quail-deactivate)
|
||||
(setq describe-current-input-method-function 'quail-help)
|
||||
(quail-delete-overlays)
|
||||
(setq quail-guidance-str "")
|
||||
|
|
@ -589,8 +593,12 @@ While this input method is active, the variable
|
|||
(make-local-variable 'input-method-function)
|
||||
(setq input-method-function 'quail-input-method)))
|
||||
|
||||
(define-obsolete-variable-alias
|
||||
'quail-inactivate-hook
|
||||
'quail-deactivate-hook "24.2")
|
||||
|
||||
(defun quail-exit-from-minibuffer ()
|
||||
(inactivate-input-method)
|
||||
(deactivate-input-method)
|
||||
(if (<= (minibuffer-depth) 1)
|
||||
(remove-hook 'minibuffer-exit-hook 'quail-exit-from-minibuffer)))
|
||||
|
||||
|
|
|
|||
|
|
@ -390,12 +390,14 @@ A nil value means no package is selected.")
|
|||
(setq robin-current-package-name name)
|
||||
(robin-activate)))
|
||||
|
||||
(defun robin-inactivate ()
|
||||
"Inactivate robin input method."
|
||||
(defun robin-deactivate ()
|
||||
"Deactivate robin input method."
|
||||
|
||||
(interactive)
|
||||
(robin-activate -1))
|
||||
|
||||
(define-obsolete-function-alias 'robin-inactivate 'robin-deactivate "24.2")
|
||||
|
||||
(defun robin-activate (&optional arg)
|
||||
"Activate robin input method.
|
||||
|
||||
|
|
@ -406,18 +408,20 @@ While this input method is active, the variable
|
|||
(if (and arg
|
||||
(< (prefix-numeric-value arg) 0))
|
||||
|
||||
;; inactivate robin input method.
|
||||
;; deactivate robin input method.
|
||||
(unwind-protect
|
||||
(progn
|
||||
(setq robin-mode nil)
|
||||
(setq describe-current-input-method-function nil)
|
||||
(run-hooks 'robin-inactivate-hook))
|
||||
(run-hooks
|
||||
'robin-inactivate-hook ; for backward compatibility
|
||||
'robin-deactivate-hook))
|
||||
(kill-local-variable 'input-method-function))
|
||||
|
||||
;; activate robin input method.
|
||||
(setq robin-mode t
|
||||
describe-current-input-method-function 'robin-help
|
||||
inactivate-current-input-method-function 'robin-inactivate)
|
||||
deactivate-current-input-method-function 'robin-deactivate)
|
||||
(if (eq (selected-window) (minibuffer-window))
|
||||
(add-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer))
|
||||
(run-hooks 'input-method-activate-hook
|
||||
|
|
@ -425,8 +429,12 @@ While this input method is active, the variable
|
|||
(set (make-local-variable 'input-method-function)
|
||||
'robin-input-method)))
|
||||
|
||||
(define-obsolete-variable-alias
|
||||
'robin-inactivate-hook
|
||||
'robin-deactivate-hook "24.2")
|
||||
|
||||
(defun robin-exit-from-minibuffer ()
|
||||
(inactivate-input-method)
|
||||
(deactivate-input-method)
|
||||
(if (<= (minibuffer-depth) 1)
|
||||
(remove-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer)))
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
"Turn on or off a Korean text input method for the current buffer."
|
||||
(interactive)
|
||||
(if current-input-method
|
||||
(inactivate-input-method)
|
||||
(deactivate-input-method)
|
||||
(activate-input-method
|
||||
(concat "korean-hangul" default-korean-keyboard))))
|
||||
|
||||
|
|
|
|||
|
|
@ -2334,7 +2334,7 @@ mapped to mostly alphanumerics for safety."
|
|||
(if (and is-fqm is-in-this-dir)
|
||||
(setq filename buffer-file-name)
|
||||
(setq filename (feedmail-create-queue-filename queue-directory)))
|
||||
;; make binary file on DOS/Win95/WinNT, etc
|
||||
;; make binary file on DOS/Windows 95/Windows NT, etc
|
||||
(let ((buffer-file-type feedmail-force-binary-write))
|
||||
(write-file filename))
|
||||
;; convenient for moving from draft to q, for example
|
||||
|
|
|
|||
|
|
@ -616,7 +616,7 @@ This also saves the value of `send-mail-function' via Customize."
|
|||
;; (kill-local-variable 'enable-multibyte-characters)
|
||||
(set-buffer-multibyte (default-value 'enable-multibyte-characters))
|
||||
(if current-input-method
|
||||
(inactivate-input-method))
|
||||
(deactivate-input-method))
|
||||
|
||||
;; Local variables for Mail mode.
|
||||
(setq mail-send-actions actions)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
|
||||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
|
@ -168,12 +168,12 @@ $(lisp)/cus-load.el:
|
|||
|
||||
# WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
|
||||
# this can break with GNU Make 3.81 and later if sh.exe is used.
|
||||
custom-deps: $(lisp)/cus-load.el $(lisp)/loaddefs.el doit
|
||||
custom-deps: $(lisp)/cus-load.el $(lisp)/loaddefs.el $(lisp)/subdirs.el doit
|
||||
@echo Directories: $(WINS_UPDATES)
|
||||
-$(emacs) -l cus-dep --eval $(ARGQUOTE)(setq find-file-hook nil)$(ARGQUOTE) \
|
||||
-f custom-make-dependencies $(lisp) $(WINS_UPDATES)
|
||||
|
||||
finder-data: $(lisp)/loaddefs.el doit
|
||||
finder-data: $(lisp)/loaddefs.el $(lisp)/subdirs.el doit
|
||||
@echo Directories: $(WINS_UPDATES)
|
||||
$(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS_UPDATES)
|
||||
|
||||
|
|
@ -243,7 +243,7 @@ update-subdirs-SH: doit
|
|||
$(srcdir)/build-aux/update-subdirs $$file; \
|
||||
done;
|
||||
|
||||
updates: update-subdirs autoloads mh-autoloads finder-data custom-deps
|
||||
updates: $(lisp)/subdirs.el autoloads mh-autoloads finder-data custom-deps
|
||||
|
||||
# This is useful after "bzr up".
|
||||
bzr-update: recompile autoloads finder-data custom-deps
|
||||
|
|
@ -311,7 +311,7 @@ TAGS-LISP-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsf
|
|||
# compiled find the right files.
|
||||
|
||||
# Need separate version for sh and native cmd.exe
|
||||
compile: update-subdirs compile-$(SHELLTYPE) doit
|
||||
compile: $(lisp)/subdirs.el compile-$(SHELLTYPE) doit
|
||||
|
||||
compile-CMD: autoloads
|
||||
# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
|
||||
|
|
@ -340,7 +340,7 @@ compile-SH: autoloads
|
|||
# unconditionally. Some files don't actually get compiled because they
|
||||
# set the local variable no-byte-compile.
|
||||
|
||||
compile-always: update-subdirs compile-always-$(SHELLTYPE) doit
|
||||
compile-always: $(lisp)/subdirs.el compile-always-$(SHELLTYPE) doit
|
||||
|
||||
compile-always-CMD:
|
||||
# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
|
||||
|
|
@ -383,7 +383,7 @@ backup-compiled-files:
|
|||
compile-after-backup: backup-compiled-files compile-always
|
||||
|
||||
compile-first: $(lisp)/emacs-lisp/bytecomp.elc $(lisp)/emacs-lisp/byte-opt.elc \
|
||||
$(lisp)/emacs-lisp/autoload.elc
|
||||
$(lisp)/emacs-lisp/autoload.elc $(lisp)/subdirs.el
|
||||
|
||||
# Recompile all Lisp files which are newer than their .elc files.
|
||||
# Note that this doesn't create .elc files. It only recompiles if an
|
||||
|
|
@ -393,7 +393,7 @@ compile-first: $(lisp)/emacs-lisp/bytecomp.elc $(lisp)/emacs-lisp/byte-opt.elc
|
|||
recompile: compile-first autoloads doit $(lisp)/progmodes/cc-mode.elc
|
||||
$(emacs) --eval $(ARGQUOTE)(batch-byte-recompile-directory 0)$(ARGQUOTE) $(lisp)
|
||||
|
||||
$(lisp)/calendar/cal-loaddefs.el: update-subdirs
|
||||
$(lisp)/calendar/cal-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
|
|
@ -401,7 +401,7 @@ $(lisp)/calendar/cal-loaddefs.el: update-subdirs
|
|||
-f w32-batch-update-autoloads "$(lisp)/calendar/cal-loaddefs.el" \
|
||||
$(MAKE) ./calendar
|
||||
|
||||
$(lisp)/calendar/diary-loaddefs.el: update-subdirs
|
||||
$(lisp)/calendar/diary-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
|
|
@ -409,7 +409,7 @@ $(lisp)/calendar/diary-loaddefs.el: update-subdirs
|
|||
-f w32-batch-update-autoloads $(lisp)/calendar/diary-loaddefs.el \
|
||||
$(MAKE) ./calendar
|
||||
|
||||
$(lisp)/calendar/hol-loaddefs.el: update-subdirs
|
||||
$(lisp)/calendar/hol-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
|
|
@ -437,7 +437,7 @@ MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el \
|
|||
# See the commentary for autoloads above for why we use ./mh-e below
|
||||
# instead of $(lisp)/mh-e.
|
||||
mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
|
||||
$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) update-subdirs
|
||||
$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval $(ARGQUOTE)(setq generate-autoload-cookie $(DQUOTE);;;###mh-autoload$(DQUOTE))$(ARGQUOTE) \
|
||||
|
|
@ -456,7 +456,7 @@ TRAMP_SRC = $(lisp)/net/tramp.el $(lisp)/net/tramp-cache.el \
|
|||
$(lisp)/net/tramp-smb.el $(lisp)/net/tramp-uu.el \
|
||||
$(lisp)/net/trampver.el
|
||||
|
||||
$(lisp)/net/tramp-loaddefs.el: $(TRAMP_SRC) update-subdirs
|
||||
$(lisp)/net/tramp-loaddefs.el: $(TRAMP_SRC) $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval $(ARGQUOTE)(setq generate-autoload-cookie $(DQUOTE);;;###tramp-autoload$(DQUOTE))$(ARGQUOTE) \
|
||||
|
|
@ -481,6 +481,7 @@ $(lisp)/net/tramp-loaddefs.el: $(TRAMP_SRC) update-subdirs
|
|||
# Need separate version for sh and native cmd.exe
|
||||
bootstrap-clean:
|
||||
- $(DEL) $(lisp)/loaddefs.el
|
||||
- $(DEL) $(lisp)/subdirs.el
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean-$(SHELLTYPE)
|
||||
|
||||
bootstrap-clean-CMD:
|
||||
|
|
@ -496,7 +497,7 @@ bootstrap-clean-SH:
|
|||
# When done, remove bootstrap-emacs from ../bin, so that
|
||||
# it will not be mistaken for an installed binary.
|
||||
|
||||
bootstrap: update-subdirs compile finder-data custom-deps
|
||||
bootstrap: $(lisp)/subdirs.el compile finder-data custom-deps
|
||||
- $(DEL) "$(EMACS)"
|
||||
|
||||
#
|
||||
|
|
@ -600,7 +601,8 @@ $(lisp)/progmodes/cc-langs.elc: $(lisp)/progmodes/cc-vars.elc \
|
|||
$(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \
|
||||
$(lisp)/progmodes/cc-styles.elc $(lisp)/progmodes/cc-cmds.elc \
|
||||
$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-menus.elc
|
||||
$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-menus.elc \
|
||||
$(lisp)/subdirs.el
|
||||
|
||||
$(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \
|
||||
$(lisp)/progmodes/cc-align.elc
|
||||
|
|
|
|||
|
|
@ -9493,9 +9493,9 @@
|
|||
* mh-utils.el (mh-find-progs): Run PATH search only when mh-progs,
|
||||
mh-lib and mh-lib-progs are not all already set. This allows the
|
||||
user to set them using a simple setq prior to loading mh-e. This
|
||||
is useful for implementation of mh-e on win32. Note that many
|
||||
is useful for implementation of mh-e on w32. Note that many
|
||||
commands still call mh-find-path which also parses the mh_profile
|
||||
file (that may still fail on win32), so this is still done often.
|
||||
file (that may still fail on w32), so this is still done often.
|
||||
But it lets us change the mh_profile file and have mh-e see the
|
||||
changed file without exiting emacs and starting over so I left
|
||||
that in.
|
||||
|
|
|
|||
|
|
@ -2618,7 +2618,7 @@ away in the internal cache."
|
|||
(format
|
||||
"list data file %s not readable"
|
||||
temp))))
|
||||
;; remove ^M inserted by the win32 ftp client
|
||||
;; remove ^M inserted by the w32 ftp client
|
||||
(while (re-search-forward "\r$" nil t)
|
||||
(replace-match ""))
|
||||
(goto-char 1)
|
||||
|
|
|
|||
|
|
@ -93,8 +93,9 @@
|
|||
|
||||
(defun notifications-on-action-signal (id action)
|
||||
"Dispatch signals to callback functions from `notifications-on-action-map'."
|
||||
(let* ((unique-name (dbus-event-service-name last-input-event))
|
||||
(entry (assoc (cons unique-name id) notifications-on-action-map)))
|
||||
(let* ((bus (dbus-event-bus-name last-input-event))
|
||||
(unique-name (dbus-event-service-name last-input-event))
|
||||
(entry (assoc (list bus unique-name id) notifications-on-action-map)))
|
||||
(when entry
|
||||
(funcall (cadr entry) id action)
|
||||
(when (and (not (setq notifications-on-action-map
|
||||
|
|
@ -107,8 +108,9 @@
|
|||
"Dispatch signals to callback functions from `notifications-on-closed-map'."
|
||||
;; notification-daemon prior 0.4.0 does not send a reason. So we
|
||||
;; make it optional, and assume `undefined' as default.
|
||||
(let* ((unique-name (dbus-event-service-name last-input-event))
|
||||
(entry (assoc (cons unique-name id) notifications-on-close-map))
|
||||
(let* ((bus (dbus-event-bus-name last-input-event))
|
||||
(unique-name (dbus-event-service-name last-input-event))
|
||||
(entry (assoc (list bus unique-name id) notifications-on-close-map))
|
||||
(reason (or reason 4)))
|
||||
(when entry
|
||||
(funcall (cadr entry)
|
||||
|
|
@ -123,6 +125,7 @@
|
|||
"Send notification via D-Bus using the Freedesktop notification protocol.
|
||||
Various PARAMS can be set:
|
||||
|
||||
:bus The D-Bus bus, if different from `:session'.
|
||||
:title The notification title.
|
||||
:body The notification body text.
|
||||
:app-name The name of the application sending the notification.
|
||||
|
|
@ -196,7 +199,8 @@ This function returns a notification id, an integer, which can be
|
|||
used to manipulate the notification item with
|
||||
`notifications-close-notification' or the `:replaces-id' argument
|
||||
of another `notifications-notify' call."
|
||||
(let ((title (plist-get params :title))
|
||||
(let ((bus (or (plist-get params :bus) :session))
|
||||
(title (plist-get params :title))
|
||||
(body (plist-get params :body))
|
||||
(app-name (plist-get params :app-name))
|
||||
(replaces-id (plist-get params :replaces-id))
|
||||
|
|
@ -272,9 +276,9 @@ of another `notifications-notify' call."
|
|||
(when y
|
||||
(add-to-list 'hints `(:dict-entry "y" (:variant :int32 ,y)) t))
|
||||
|
||||
;; Call Notify method
|
||||
;; Call Notify method.
|
||||
(setq id
|
||||
(dbus-call-method :session
|
||||
(dbus-call-method bus
|
||||
notifications-service
|
||||
notifications-path
|
||||
notifications-interface
|
||||
|
|
@ -302,14 +306,14 @@ of another `notifications-notify' call."
|
|||
;; restarted.
|
||||
(let ((on-action (plist-get params :on-action))
|
||||
(on-close (plist-get params :on-close))
|
||||
(unique-name (dbus-get-name-owner :session notifications-service)))
|
||||
(unique-name (dbus-get-name-owner bus notifications-service)))
|
||||
(when on-action
|
||||
(add-to-list 'notifications-on-action-map
|
||||
(list (cons unique-name id) on-action))
|
||||
(list (list bus unique-name id) on-action))
|
||||
(unless notifications-on-action-object
|
||||
(setq notifications-on-action-object
|
||||
(dbus-register-signal
|
||||
:session
|
||||
bus
|
||||
nil
|
||||
notifications-path
|
||||
notifications-interface
|
||||
|
|
@ -318,11 +322,11 @@ of another `notifications-notify' call."
|
|||
|
||||
(when on-close
|
||||
(add-to-list 'notifications-on-close-map
|
||||
(list (cons unique-name id) on-close))
|
||||
(list (list bus unique-name id) on-close))
|
||||
(unless notifications-on-close-object
|
||||
(setq notifications-on-close-object
|
||||
(dbus-register-signal
|
||||
:session
|
||||
bus
|
||||
nil
|
||||
notifications-path
|
||||
notifications-interface
|
||||
|
|
@ -332,9 +336,10 @@ of another `notifications-notify' call."
|
|||
;; Return notification id
|
||||
id))
|
||||
|
||||
(defun notifications-close-notification (id)
|
||||
"Close a notification with identifier ID."
|
||||
(dbus-call-method :session
|
||||
(defun notifications-close-notification (id &optional bus)
|
||||
"Close a notification with identifier ID.
|
||||
BUS can be a string denoting a D-Bus connection, the default is `:session'."
|
||||
(dbus-call-method (or bus :session)
|
||||
notifications-service
|
||||
notifications-path
|
||||
notifications-interface
|
||||
|
|
@ -343,8 +348,9 @@ of another `notifications-notify' call."
|
|||
|
||||
(defvar dbus-debug) ; used in the macroexpansion of dbus-ignore-errors
|
||||
|
||||
(defun notifications-get-capabilities ()
|
||||
(defun notifications-get-capabilities (&optional bus)
|
||||
"Return the capabilities of the notification server, a list of strings.
|
||||
BUS can be a string denoting a D-Bus connection, the default is `:session'.
|
||||
The following capabilities can be expected:
|
||||
|
||||
:actions The server will provide the specified actions
|
||||
|
|
@ -367,7 +373,7 @@ Further vendor-specific caps start with `:x-vendor', like `:x-gnome-foo-cap'."
|
|||
(dbus-ignore-errors
|
||||
(mapcar
|
||||
(lambda (x) (intern (concat ":" x)))
|
||||
(dbus-call-method :session
|
||||
(dbus-call-method (or bus :session)
|
||||
notifications-service
|
||||
notifications-path
|
||||
notifications-interface
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't use the abbreviation "win" to refer to Windows (Bug#10421).
|
||||
* ob-lilypond.el (ly-w32-ly-path): Rename from ly-win32-ly-path.
|
||||
(ly-w32-pdf-path): Rename from ly-win32-pdf-path.
|
||||
(ly-w32-midi-path): Rename from ly-win32-midi-path.
|
||||
(ly-determine-ly-path, ly-determine-pdf-path, ly-determine-midi-path):
|
||||
Check for "windows-nt", not "win32", in system-type.
|
||||
|
||||
2012-06-02 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* org-clock.el (org-clock-string-limit)
|
||||
|
|
|
|||
|
|
@ -66,9 +66,9 @@ the midi file is not automatically played. Default value is t")
|
|||
(defvar ly-nix-pdf-path "evince")
|
||||
(defvar ly-nix-midi-path "timidity")
|
||||
|
||||
(defvar ly-win32-ly-path "lilypond")
|
||||
(defvar ly-win32-pdf-path "")
|
||||
(defvar ly-win32-midi-path "")
|
||||
(defvar ly-w32-ly-path "lilypond")
|
||||
(defvar ly-w32-pdf-path "")
|
||||
(defvar ly-w32-midi-path "")
|
||||
|
||||
(defvar ly-gen-png nil
|
||||
"Image generation (png) can be turned on by default by setting
|
||||
|
|
@ -329,8 +329,8 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
|
|||
(or test system-type)))
|
||||
(cond ((string= sys-type "darwin")
|
||||
ly-OSX-ly-path)
|
||||
((string= sys-type "win32")
|
||||
ly-win32-ly-path)
|
||||
((string= sys-type "windows-nt")
|
||||
ly-w32-ly-path)
|
||||
(t ly-nix-ly-path))))
|
||||
|
||||
(defun ly-determine-pdf-path (&optional test)
|
||||
|
|
@ -341,8 +341,8 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
|
|||
(or test system-type)))
|
||||
(cond ((string= sys-type "darwin")
|
||||
ly-OSX-pdf-path)
|
||||
((string= sys-type "win32")
|
||||
ly-win32-pdf-path)
|
||||
((string= sys-type "windows-nt")
|
||||
ly-w32-pdf-path)
|
||||
(t ly-nix-pdf-path))))
|
||||
|
||||
(defun ly-determine-midi-path (&optional test)
|
||||
|
|
@ -353,8 +353,8 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes"
|
|||
(or test test system-type)))
|
||||
(cond ((string= sys-type "darwin")
|
||||
ly-OSX-midi-path)
|
||||
((string= sys-type "win32")
|
||||
ly-win32-midi-path)
|
||||
((string= sys-type "windows-nt")
|
||||
ly-w32-midi-path)
|
||||
(t ly-nix-midi-path))))
|
||||
|
||||
(defun ly-toggle-midi-play ()
|
||||
|
|
|
|||
|
|
@ -2141,7 +2141,7 @@ Useful links:
|
|||
`http://bama.ua.edu/cgi-bin/man-cgi?lp'
|
||||
`http://www.mediacollege.com/cgi-bin/man/page.cgi?section=all&topic=lp'
|
||||
|
||||
* GNU utilities for Win32 (cp.exe)
|
||||
* GNU utilities for w32 (cp.exe)
|
||||
`http://unxutils.sourceforge.net/'
|
||||
"
|
||||
:type '(repeat
|
||||
|
|
|
|||
|
|
@ -399,14 +399,10 @@ Example:
|
|||
str2 "@protocol")))
|
||||
(setq str (cc-imenu-objc-remove-white-space str))
|
||||
(setq methodlist (cons (cons str2
|
||||
(match-beginning langnum))
|
||||
(match-beginning langnum))
|
||||
methodlist))
|
||||
(setq toplist (cons nil (cons (cons str
|
||||
methodlist) toplist))
|
||||
(setq toplist (cons (cons str methodlist) toplist)
|
||||
methodlist nil))))
|
||||
;;
|
||||
(if (eq (car toplist) nil)
|
||||
(setq toplist (cdr toplist)))
|
||||
|
||||
;; In this buffer, there is only one or zero @{interface|implementation|protocol}.
|
||||
(if (< classcount 2)
|
||||
|
|
|
|||
|
|
@ -2487,20 +2487,23 @@ HANDLER-NAME handler uses customization of CUSTOM-DEFUN. See
|
|||
(let ((file (bindat-get-field breakpoint 'fullname))
|
||||
(flag (bindat-get-field breakpoint 'enabled))
|
||||
(bptno (bindat-get-field breakpoint 'number)))
|
||||
(unless (file-exists-p file)
|
||||
(unless (and file (file-exists-p file))
|
||||
(setq file (cdr (assoc bptno gdb-location-alist))))
|
||||
(if (and file
|
||||
(not (string-equal file "File not found")))
|
||||
(with-current-buffer
|
||||
(find-file-noselect file 'nowarn)
|
||||
(gdb-init-buffer)
|
||||
;; Only want one breakpoint icon at each location.
|
||||
(gdb-put-breakpoint-icon (string-equal flag "y") bptno
|
||||
(string-to-number line)))
|
||||
(gdb-input (concat "list " file ":1") 'ignore)
|
||||
(gdb-input "-file-list-exec-source-file"
|
||||
`(lambda () (gdb-get-location
|
||||
,bptno ,line ,flag)))))))))
|
||||
(if (or (null file)
|
||||
(string-equal file "File not found"))
|
||||
;; If the full filename is not recorded in the
|
||||
;; breakpoint structure or in `gdb-location-alist', use
|
||||
;; -file-list-exec-source-file to extract it.
|
||||
(when (setq file (bindat-get-field breakpoint 'file))
|
||||
(gdb-input (concat "list " file ":1") 'ignore)
|
||||
(gdb-input "-file-list-exec-source-file"
|
||||
`(lambda () (gdb-get-location
|
||||
,bptno ,line ,flag))))
|
||||
(with-current-buffer (find-file-noselect file 'nowarn)
|
||||
(gdb-init-buffer)
|
||||
;; Only want one breakpoint icon at each location.
|
||||
(gdb-put-breakpoint-icon (string-equal flag "y") bptno
|
||||
(string-to-number line)))))))))
|
||||
|
||||
(defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"")
|
||||
|
||||
|
|
|
|||
|
|
@ -250,6 +250,7 @@
|
|||
(define-key map "\C-c\C-tt" 'python-skeleton-try)
|
||||
(define-key map "\C-c\C-tw" 'python-skeleton-while)
|
||||
;; Shell interaction
|
||||
(define-key map "\C-c\C-p" 'run-python)
|
||||
(define-key map "\C-c\C-s" 'python-shell-send-string)
|
||||
(define-key map "\C-c\C-r" 'python-shell-send-region)
|
||||
(define-key map "\C-\M-x" 'python-shell-send-defun)
|
||||
|
|
@ -1544,7 +1545,7 @@ variable.
|
|||
'python-shell-completion-complete-at-point nil 'local)
|
||||
(add-to-list (make-local-variable 'comint-dynamic-complete-functions)
|
||||
'python-shell-completion-complete-at-point)
|
||||
(define-key inferior-python-mode-map (kbd "<tab>")
|
||||
(define-key inferior-python-mode-map "\t"
|
||||
'python-shell-completion-complete-or-indent)
|
||||
(when python-shell-enable-font-lock
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
|
|
@ -1571,30 +1572,33 @@ non-nil the buffer is shown."
|
|||
(with-current-buffer buffer
|
||||
(inferior-python-mode)
|
||||
(python-util-clone-local-variables current-buffer))))
|
||||
(when pop
|
||||
(pop-to-buffer proc-buffer-name))
|
||||
(and pop (pop-to-buffer proc-buffer-name t))
|
||||
proc-buffer-name)))
|
||||
|
||||
(defun run-python (dedicated cmd)
|
||||
;;;###autoload
|
||||
(defun run-python (cmd &optional dedicated show)
|
||||
"Run an inferior Python process.
|
||||
Input and output via buffer named after
|
||||
`python-shell-buffer-name'. If there is a process already
|
||||
running in that buffer, just switch to it.
|
||||
With argument, allows you to define DEDICATED, so a dedicated
|
||||
process for the current buffer is open, and define CMD so you can
|
||||
edit the command used to call the interpreter (default is value
|
||||
of `python-shell-interpreter' and arguments defined in
|
||||
`python-shell-interpreter-args'). Runs the hook
|
||||
`inferior-python-mode-hook' (after the `comint-mode-hook' is
|
||||
run).
|
||||
\(Type \\[describe-mode] in the process buffer for a list of commands.)"
|
||||
|
||||
With argument, allows you to define CMD so you can edit the
|
||||
command used to call the interpreter and define DEDICATED, so a
|
||||
dedicated process for the current buffer is open. When numeric
|
||||
prefix arg is other than 0 or 4 do not SHOW.
|
||||
|
||||
Runs the hook `inferior-python-mode-hook' (after the
|
||||
`comint-mode-hook' is run). \(Type \\[describe-mode] in the
|
||||
process buffer for a list of commands.)"
|
||||
(interactive
|
||||
(if current-prefix-arg
|
||||
(list
|
||||
(read-string "Run Python: " (python-shell-parse-command))
|
||||
(y-or-n-p "Make dedicated process? ")
|
||||
(read-string "Run Python: " (python-shell-parse-command)))
|
||||
(list nil (python-shell-parse-command))))
|
||||
(python-shell-make-comint cmd (python-shell-get-process-name dedicated))
|
||||
(= (prefix-numeric-value current-prefix-arg) 4))
|
||||
(list (python-shell-parse-command) nil t)))
|
||||
(python-shell-make-comint
|
||||
cmd (python-shell-get-process-name dedicated) show)
|
||||
dedicated)
|
||||
|
||||
(defun run-python-internal ()
|
||||
|
|
@ -1611,7 +1615,6 @@ with user shells. Runs the hook
|
|||
`inferior-python-mode-hook' (after the `comint-mode-hook' is
|
||||
run). \(Type \\[describe-mode] in the process buffer for a list
|
||||
of commands.)"
|
||||
(interactive)
|
||||
(set-process-query-on-exit-flag
|
||||
(get-buffer-process
|
||||
(python-shell-make-comint
|
||||
|
|
@ -1638,7 +1641,7 @@ of commands.)"
|
|||
(global-proc-buffer-name (format "*%s*" global-proc-name))
|
||||
(dedicated-running (comint-check-proc dedicated-proc-buffer-name))
|
||||
(global-running (comint-check-proc global-proc-buffer-name))
|
||||
(current-prefix-arg 4))
|
||||
(current-prefix-arg 16))
|
||||
(when (and (not dedicated-running) (not global-running))
|
||||
(if (call-interactively 'run-python)
|
||||
(setq dedicated-running t)
|
||||
|
|
@ -1945,7 +1948,6 @@ completions on the current context."
|
|||
|
||||
(defun python-shell-completion-complete-at-point ()
|
||||
"Perform completion at point in inferior Python process."
|
||||
(interactive)
|
||||
(and comint-last-prompt-overlay
|
||||
(> (point-marker) (overlay-end comint-last-prompt-overlay))
|
||||
(python-shell-completion--do-completion-at-point
|
||||
|
|
@ -2060,7 +2062,6 @@ Argument OUTPUT is a string with the output from the comint process."
|
|||
For this to work the best as possible you should call
|
||||
`python-shell-send-buffer' from time to time so context in
|
||||
inferior python process is updated properly."
|
||||
(interactive)
|
||||
(let ((process (python-shell-get-process)))
|
||||
(if (not process)
|
||||
(error "Completion needs an inferior Python process running")
|
||||
|
|
|
|||
|
|
@ -219,6 +219,7 @@ even beep.)"
|
|||
(condition-case nil
|
||||
(setq killed-rectangle (delete-extract-rectangle start end fill))
|
||||
((buffer-read-only text-read-only)
|
||||
(setq deactivate-mark t)
|
||||
(setq killed-rectangle (extract-rectangle start end))
|
||||
(if kill-read-only-ok
|
||||
(progn (message "Read only text copied to kill ring") nil)
|
||||
|
|
@ -230,7 +231,9 @@ even beep.)"
|
|||
"Copy the region-rectangle and save it as the last killed one."
|
||||
(interactive "r")
|
||||
(setq killed-rectangle (extract-rectangle start end))
|
||||
(setq deactivate-mark t))
|
||||
(setq deactivate-mark t)
|
||||
(if (called-interactively-p 'interactive)
|
||||
(indicate-copied-region (length (car killed-rectangle)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun yank-rectangle ()
|
||||
|
|
|
|||
|
|
@ -336,7 +336,11 @@ Called from program, takes four args: REGISTER, START, END and DELETE-FLAG.
|
|||
START and END are buffer positions indicating what to copy."
|
||||
(interactive "cCopy to register: \nr\nP")
|
||||
(set-register register (filter-buffer-substring start end))
|
||||
(if delete-flag (delete-region start end)))
|
||||
(setq deactivate-mark t)
|
||||
(cond (delete-flag
|
||||
(delete-region start end))
|
||||
((called-interactively-p 'interactive)
|
||||
(indicate-copied-region))))
|
||||
|
||||
(defun append-to-register (register start end &optional delete-flag)
|
||||
"Append region to text in register REGISTER.
|
||||
|
|
@ -350,7 +354,10 @@ START and END are buffer positions indicating what to append."
|
|||
register (cond ((not reg) text)
|
||||
((stringp reg) (concat reg text))
|
||||
(t (error "Register does not contain text")))))
|
||||
(if delete-flag (delete-region start end)))
|
||||
(cond (delete-flag
|
||||
(delete-region start end))
|
||||
((called-interactively-p 'interactive)
|
||||
(indicate-copied-region))))
|
||||
|
||||
(defun prepend-to-register (register start end &optional delete-flag)
|
||||
"Prepend region to text in register REGISTER.
|
||||
|
|
@ -364,7 +371,10 @@ START and END are buffer positions indicating what to prepend."
|
|||
register (cond ((not reg) text)
|
||||
((stringp reg) (concat text reg))
|
||||
(t (error "Register does not contain text")))))
|
||||
(if delete-flag (delete-region start end)))
|
||||
(cond (delete-flag
|
||||
(delete-region start end))
|
||||
((called-interactively-p 'interactive)
|
||||
(indicate-copied-region))))
|
||||
|
||||
(defun copy-rectangle-to-register (register start end &optional delete-flag)
|
||||
"Copy rectangular region into register REGISTER.
|
||||
|
|
@ -374,10 +384,15 @@ To insert this register in the buffer, use \\[insert-register].
|
|||
Called from a program, takes four args: REGISTER, START, END and DELETE-FLAG.
|
||||
START and END are buffer positions giving two corners of rectangle."
|
||||
(interactive "cCopy rectangle to register: \nr\nP")
|
||||
(set-register register
|
||||
(if delete-flag
|
||||
(delete-extract-rectangle start end)
|
||||
(extract-rectangle start end))))
|
||||
(let ((rectangle (if delete-flag
|
||||
(delete-extract-rectangle start end)
|
||||
(extract-rectangle start end))))
|
||||
(set-register register rectangle)
|
||||
(when (and (null delete-flag)
|
||||
(called-interactively-p 'interactive))
|
||||
(setq deactivate-mark t)
|
||||
(indicate-copied-region (length (car rectangle))))))
|
||||
|
||||
|
||||
(provide 'register)
|
||||
;;; register.el ends here
|
||||
|
|
|
|||
170
lisp/simple.el
170
lisp/simple.el
|
|
@ -564,13 +564,28 @@ On nonblank line, delete any immediately following blank lines."
|
|||
(if (looking-at "^[ \t]*\n\\'")
|
||||
(delete-region (point) (point-max)))))
|
||||
|
||||
(defcustom delete-trailing-lines t
|
||||
"If non-nil, \\[delete-trailing-whitespace] deletes trailing lines.
|
||||
Trailing lines are deleted only if `delete-trailing-whitespace'
|
||||
is called on the entire buffer (rather than an active region)."
|
||||
:type 'boolean
|
||||
:group 'editing
|
||||
:version "24.2")
|
||||
|
||||
(defun delete-trailing-whitespace (&optional start end)
|
||||
"Delete all the trailing whitespace across the current buffer.
|
||||
All whitespace after the last non-whitespace character in a line is deleted.
|
||||
This respects narrowing, created by \\[narrow-to-region] and friends.
|
||||
A formfeed is not considered whitespace by this function.
|
||||
If END is nil, also delete all trailing lines at the end of the buffer.
|
||||
If the region is active, only delete whitespace within the region."
|
||||
"Delete trailing whitespace between START and END.
|
||||
If called interactively, START and END are the start/end of the
|
||||
region if the mark is active, or of the buffer's accessible
|
||||
portion if the mark is inactive.
|
||||
|
||||
This command deletes whitespace characters after the last
|
||||
non-whitespace character in each line between START and END. It
|
||||
does not consider formfeed characters to be whitespace.
|
||||
|
||||
If this command acts on the entire buffer (i.e. if called
|
||||
interactively with the mark inactive, or called from Lisp with
|
||||
END nil), it also deletes all trailing lines at the end of the
|
||||
buffer if the variable `delete-trailing-lines' is non-nil."
|
||||
(interactive (progn
|
||||
(barf-if-buffer-read-only)
|
||||
(if (use-region-p)
|
||||
|
|
@ -590,6 +605,7 @@ If the region is active, only delete whitespace within the region."
|
|||
;; Delete trailing empty lines.
|
||||
(goto-char end-marker)
|
||||
(when (and (not end)
|
||||
delete-trailing-lines
|
||||
;; Really the end of buffer.
|
||||
(save-restriction (widen) (eobp))
|
||||
(<= (skip-chars-backward "\n") -2))
|
||||
|
|
@ -932,11 +948,8 @@ rather than line counts."
|
|||
(concat " in " (buffer-name buffer))
|
||||
"")))
|
||||
;; Read the argument, offering that number (if any) as default.
|
||||
(list (read-number (format (if default "Goto line%s (%s): "
|
||||
"Goto line%s: ")
|
||||
buffer-prompt
|
||||
default)
|
||||
default)
|
||||
(list (read-number (format "Goto line%s: " buffer-prompt)
|
||||
(list default (line-number-at-pos)))
|
||||
buffer))))
|
||||
;; Switch to the desired buffer, one way or another.
|
||||
(if buffer
|
||||
|
|
@ -2248,6 +2261,33 @@ to `shell-command-history'."
|
|||
(or hist 'shell-command-history)
|
||||
args)))
|
||||
|
||||
(defcustom async-shell-command-buffer 'confirm-new-buffer
|
||||
"What to do when the output buffer is used by another shell command.
|
||||
This option specifies how to resolve the conflict where a new command
|
||||
wants to direct its output to the buffer `*Async Shell Command*',
|
||||
but this buffer is already taken by another running shell command.
|
||||
|
||||
The value `confirm-kill-process' is used to ask for confirmation before
|
||||
killing the already running process and running a new process
|
||||
in the same buffer, `confirm-new-buffer' for confirmation before running
|
||||
the command in a new buffer with a name other than the default buffer name,
|
||||
`new-buffer' for doing the same without confirmation,
|
||||
`confirm-rename-buffer' for confirmation before renaming the existing
|
||||
output buffer and running a new command in the default buffer,
|
||||
`rename-buffer' for doing the same without confirmation."
|
||||
:type '(choice (const :tag "Confirm killing of running command"
|
||||
confirm-kill-process)
|
||||
(const :tag "Confirm creation of a new buffer"
|
||||
confirm-new-buffer)
|
||||
(const :tag "Create a new buffer"
|
||||
new-buffer)
|
||||
(const :tag "Confirm renaming of existing buffer"
|
||||
confirm-rename-buffer)
|
||||
(const :tag "Rename the existing buffer"
|
||||
rename-buffer))
|
||||
:group 'shell
|
||||
:version "24.2")
|
||||
|
||||
(defun async-shell-command (command &optional output-buffer error-buffer)
|
||||
"Execute string COMMAND asynchronously in background.
|
||||
|
||||
|
|
@ -2402,12 +2442,40 @@ the use of a shell (with its need to quote arguments)."
|
|||
proc)
|
||||
;; Remove the ampersand.
|
||||
(setq command (substring command 0 (match-beginning 0)))
|
||||
;; If will kill a process, query first.
|
||||
;; Ask the user what to do with already running process.
|
||||
(setq proc (get-buffer-process buffer))
|
||||
(if proc
|
||||
(if (yes-or-no-p "A command is running. Kill it? ")
|
||||
(when proc
|
||||
(cond
|
||||
((eq async-shell-command-buffer 'confirm-kill-process)
|
||||
;; If will kill a process, query first.
|
||||
(if (yes-or-no-p "A command is running in the default buffer. Kill it? ")
|
||||
(kill-process proc)
|
||||
(error "Shell command in progress")))
|
||||
((eq async-shell-command-buffer 'confirm-new-buffer)
|
||||
;; If will create a new buffer, query first.
|
||||
(if (yes-or-no-p "A command is running in the default buffer. Use a new buffer? ")
|
||||
(setq buffer (generate-new-buffer
|
||||
(or output-buffer "*Async Shell Command*")))
|
||||
(error "Shell command in progress")))
|
||||
((eq async-shell-command-buffer 'new-buffer)
|
||||
;; It will create a new buffer.
|
||||
(setq buffer (generate-new-buffer
|
||||
(or output-buffer "*Async Shell Command*"))))
|
||||
((eq async-shell-command-buffer 'confirm-rename-buffer)
|
||||
;; If will rename the buffer, query first.
|
||||
(if (yes-or-no-p "A command is running in the default buffer. Rename it? ")
|
||||
(progn
|
||||
(with-current-buffer buffer
|
||||
(rename-uniquely))
|
||||
(setq buffer (get-buffer-create
|
||||
(or output-buffer "*Async Shell Command*"))))
|
||||
(error "Shell command in progress")))
|
||||
((eq async-shell-command-buffer 'rename-buffer)
|
||||
;; It will rename the buffer.
|
||||
(with-current-buffer buffer
|
||||
(rename-uniquely))
|
||||
(setq buffer (get-buffer-create
|
||||
(or output-buffer "*Async Shell Command*"))))))
|
||||
(with-current-buffer buffer
|
||||
(setq buffer-read-only nil)
|
||||
;; Setting buffer-read-only to nil doesn't suffice
|
||||
|
|
@ -3337,38 +3405,50 @@ This command is similar to `copy-region-as-kill', except that it gives
|
|||
visual feedback indicating the extent of the region being copied."
|
||||
(interactive "r")
|
||||
(copy-region-as-kill beg end)
|
||||
;; This use of called-interactively-p is correct
|
||||
;; because the code it controls just gives the user visual feedback.
|
||||
;; This use of called-interactively-p is correct because the code it
|
||||
;; controls just gives the user visual feedback.
|
||||
(if (called-interactively-p 'interactive)
|
||||
(let ((other-end (if (= (point) beg) end beg))
|
||||
(opoint (point))
|
||||
;; Inhibit quitting so we can make a quit here
|
||||
;; look like a C-g typed as a command.
|
||||
(inhibit-quit t))
|
||||
(if (pos-visible-in-window-p other-end (selected-window))
|
||||
;; Swap point-and-mark quickly so as to show the region that
|
||||
;; was selected. Don't do it if the region is highlighted.
|
||||
(unless (and (region-active-p)
|
||||
(face-background 'region))
|
||||
;; Swap point and mark.
|
||||
(set-marker (mark-marker) (point) (current-buffer))
|
||||
(goto-char other-end)
|
||||
(sit-for blink-matching-delay)
|
||||
;; Swap back.
|
||||
(set-marker (mark-marker) other-end (current-buffer))
|
||||
(goto-char opoint)
|
||||
;; If user quit, deactivate the mark
|
||||
;; as C-g would as a command.
|
||||
(and quit-flag mark-active
|
||||
(deactivate-mark)))
|
||||
(let* ((killed-text (current-kill 0))
|
||||
(message-len (min (length killed-text) 40)))
|
||||
(if (= (point) beg)
|
||||
;; Don't say "killed"; that is misleading.
|
||||
(message "Saved text until \"%s\""
|
||||
(substring killed-text (- message-len)))
|
||||
(message "Saved text from \"%s\""
|
||||
(substring killed-text 0 message-len))))))))
|
||||
(indicate-copied-region)))
|
||||
|
||||
(defun indicate-copied-region (&optional message-len)
|
||||
"Indicate that the region text has been copied interactively.
|
||||
If the mark is visible in the selected window, blink the cursor
|
||||
between point and mark if there is currently no active region
|
||||
highlighting.
|
||||
|
||||
If the mark lies outside the selected window, display an
|
||||
informative message containing a sample of the copied text. The
|
||||
optional argument MESSAGE-LEN, if non-nil, specifies the length
|
||||
of this sample text; it defaults to 40."
|
||||
(let ((mark (mark t))
|
||||
(point (point))
|
||||
;; Inhibit quitting so we can make a quit here
|
||||
;; look like a C-g typed as a command.
|
||||
(inhibit-quit t))
|
||||
(if (pos-visible-in-window-p mark (selected-window))
|
||||
;; Swap point-and-mark quickly so as to show the region that
|
||||
;; was selected. Don't do it if the region is highlighted.
|
||||
(unless (and (region-active-p)
|
||||
(face-background 'region))
|
||||
;; Swap point and mark.
|
||||
(set-marker (mark-marker) (point) (current-buffer))
|
||||
(goto-char mark)
|
||||
(sit-for blink-matching-delay)
|
||||
;; Swap back.
|
||||
(set-marker (mark-marker) mark (current-buffer))
|
||||
(goto-char point)
|
||||
;; If user quit, deactivate the mark
|
||||
;; as C-g would as a command.
|
||||
(and quit-flag mark-active
|
||||
(deactivate-mark)))
|
||||
(let ((len (min (abs (- mark point))
|
||||
(or message-len 40))))
|
||||
(if (< point mark)
|
||||
;; Don't say "killed"; that is misleading.
|
||||
(message "Saved text until \"%s\""
|
||||
(buffer-substring-no-properties (- mark len) mark))
|
||||
(message "Saved text from \"%s\""
|
||||
(buffer-substring-no-properties mark (+ mark len))))))))
|
||||
|
||||
(defun append-next-kill (&optional interactive)
|
||||
"Cause following command, if it kills, to append to previous kill.
|
||||
|
|
|
|||
22
lisp/subr.el
22
lisp/subr.el
|
|
@ -2188,23 +2188,27 @@ by doing (clear-string STRING)."
|
|||
"Read a numeric value in the minibuffer, prompting with PROMPT.
|
||||
DEFAULT specifies a default value to return if the user just types RET.
|
||||
The value of DEFAULT is inserted into PROMPT."
|
||||
(let ((n nil))
|
||||
(when default
|
||||
(let ((n nil)
|
||||
(default1 (if (consp default) (car default) default)))
|
||||
(when default1
|
||||
(setq prompt
|
||||
(if (string-match "\\(\\):[ \t]*\\'" prompt)
|
||||
(replace-match (format " (default %s)" default) t t prompt 1)
|
||||
(replace-match (format " (default %s)" default1) t t prompt 1)
|
||||
(replace-regexp-in-string "[ \t]*\\'"
|
||||
(format " (default %s) " default)
|
||||
(format " (default %s) " default1)
|
||||
prompt t t))))
|
||||
(while
|
||||
(progn
|
||||
(let ((str (read-from-minibuffer prompt nil nil nil nil
|
||||
(and default
|
||||
(number-to-string default)))))
|
||||
(let ((str (read-from-minibuffer
|
||||
prompt nil nil nil nil
|
||||
(when default
|
||||
(if (consp default)
|
||||
(mapcar 'number-to-string (delq nil default))
|
||||
(number-to-string default))))))
|
||||
(condition-case nil
|
||||
(setq n (cond
|
||||
((zerop (length str)) default)
|
||||
((stringp str) (read str))))
|
||||
((zerop (length str)) default1)
|
||||
((stringp str) (string-to-number str))))
|
||||
(error nil)))
|
||||
(unless (numberp n)
|
||||
(message "Please enter a number.")
|
||||
|
|
|
|||
|
|
@ -52,6 +52,18 @@
|
|||
"Terminal initialization function for w32 console."
|
||||
;; Share function key initialization with w32 gui frames
|
||||
(x-setup-function-keys (selected-frame))
|
||||
;; Set terminal and keyboard encodings to the current OEM codepage.
|
||||
(let ((oem-code-page-coding
|
||||
(intern (format "cp%d" (w32-get-console-codepage))))
|
||||
(oem-code-page-output-coding
|
||||
(intern (format "cp%d" (w32-get-console-output-codepage))))
|
||||
oem-cs-p oem-o-cs-p)
|
||||
(setq oem-cs-p (coding-system-p oem-code-page-coding))
|
||||
(setq oem-o-cs-p (coding-system-p oem-code-page-output-coding))
|
||||
(when oem-cs-p
|
||||
(set-keyboard-coding-system oem-code-page-coding)
|
||||
(set-terminal-coding-system
|
||||
(if oem-o-cs-p oem-code-page-output-coding oem-code-page-coding))))
|
||||
(let* ((colors w32-tty-standard-colors)
|
||||
(color (car colors)))
|
||||
(tty-color-clear)
|
||||
|
|
|
|||
|
|
@ -122,7 +122,14 @@
|
|||
;;("\\label{*}" nil nil nil nil)
|
||||
))
|
||||
|
||||
)
|
||||
(ctable "The ctable package"
|
||||
(("\\ctable[]{}{}{}" ?t "tab:" "\\ref{%s}" 1 ("table" "Tabelle"))))
|
||||
|
||||
(listings "The listings package"
|
||||
(("lstlisting" ?l "lst:" "~\\ref{%s}" nil (regexp "[Ll]isting"))))
|
||||
|
||||
(minted "The minted package"
|
||||
(("minted" ?l "lst:" "~\\ref{%s}" nil (regexp "[Ll]isting")))))
|
||||
"The default label environment descriptions.
|
||||
Lower-case symbols correspond to a style file of the same name in the LaTeX
|
||||
distribution. Mixed-case symbols are convenience aliases.")
|
||||
|
|
|
|||
|
|
@ -1284,7 +1284,15 @@ This enforces rescanning the buffer on next use."
|
|||
; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
|
||||
(wbol "\\(^\\)[ \t]*") ; Need to keep the empty group because
|
||||
;;; because match number are hard coded
|
||||
(label-re "\\\\label{\\([^}]*\\)}")
|
||||
(label-re (concat "\\(?:"
|
||||
;; Normal \label{...}
|
||||
"\\\\label{\\([^}]*\\)}"
|
||||
"\\|"
|
||||
;; keyvals [..., label = {foo}, ...]
|
||||
;; forms used by ctable, listings,
|
||||
;; minted, ...
|
||||
"\\[[^]]*label[[:space:]]*=[[:space:]]*{?\\(?1:[^],}]+\\)}?[^[]*\\]"
|
||||
"\\)"))
|
||||
(include-re (concat wbol
|
||||
"\\\\\\("
|
||||
(mapconcat 'identity
|
||||
|
|
@ -1312,6 +1320,8 @@ This enforces rescanning the buffer on next use."
|
|||
"\\)\\([[{][^]}]*[]}]\\)*[[{]\\(%s\\)[]}]"))
|
||||
(find-label-re-format
|
||||
(concat "\\("
|
||||
"label[[:space:]]*=[[:space:]]*"
|
||||
"\\|"
|
||||
(mapconcat 'regexp-quote (append '("\\label")
|
||||
macros-with-labels) "\\|")
|
||||
"\\)\\([[{][^]}]*[]}]\\)*[[{]\\(%s\\)[]}]"))
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;; FIXME: Add proper ";;;###autoload" comments.
|
||||
|
||||
;; FIXME: When 24.1 is common place remove use of `lexical-let' and put "-*-
|
||||
;; lexical-binding: t -*-" in the first line.
|
||||
|
||||
|
|
@ -123,7 +125,7 @@
|
|||
(defun rst-some (seq &optional pred)
|
||||
"Return non-nil if any element of SEQ yields non-nil when PRED is applied.
|
||||
Apply PRED to each element of list SEQ until the first non-nil
|
||||
result is yielded and return this result. PRED defaults to
|
||||
result is yielded and return this result. PRED defaults to
|
||||
`identity'."
|
||||
(unless pred
|
||||
(setq pred 'identity))
|
||||
|
|
@ -171,7 +173,7 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match."
|
|||
;; Use CVSHeader to really get information from CVS and not other version
|
||||
;; control systems.
|
||||
(defconst rst-cvs-header
|
||||
"$CVSHeader: sm/rst_el/rst.el,v 1.287 2012-06-16 09:41:47 stefan Exp $")
|
||||
"$CVSHeader: sm/rst_el/rst.el,v 1.301 2012-07-30 19:29:46 stefan Exp $")
|
||||
(defconst rst-cvs-rev
|
||||
(rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+"
|
||||
" .*" rst-cvs-header "0.0")
|
||||
|
|
@ -185,22 +187,22 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match."
|
|||
;; Use LastChanged... to really get information from SVN.
|
||||
(defconst rst-svn-rev
|
||||
(rst-extract-version "\\$" "LastChangedRevision: " "[0-9]+" " "
|
||||
"$LastChangedRevision: 7444 $")
|
||||
"$LastChangedRevision: 7490 $")
|
||||
"The SVN revision of this file.
|
||||
SVN revision is the upstream (docutils) revision.")
|
||||
(defconst rst-svn-timestamp
|
||||
(rst-extract-version "\\$" "LastChangedDate: " ".+?+" " "
|
||||
"$LastChangedDate: 2012-06-16 11:41:40 +0200 (Sat, 16 Jun 2012) $")
|
||||
"$LastChangedDate: 2012-07-30 21:29:33 +0200 (Mon, 30 Jul 2012) $")
|
||||
"The SVN time stamp of this file.")
|
||||
|
||||
;; Maintained by the release process.
|
||||
(defconst rst-official-version
|
||||
(rst-extract-version "%" "OfficialVersion: " "[0-9]+\\(?:\\.[0-9]+\\)+" " "
|
||||
"%OfficialVersion: 1.3.0 %")
|
||||
"%OfficialVersion: 1.3.1 %")
|
||||
"Official version of the package.")
|
||||
(defconst rst-official-cvs-rev
|
||||
(rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " "
|
||||
"%Revision: 1.287 %")
|
||||
"%Revision: 1.301 %")
|
||||
"CVS revision of this file in the official version.")
|
||||
|
||||
(defconst rst-version
|
||||
|
|
@ -217,7 +219,9 @@ in parentheses follows the development revision and the time stamp.")
|
|||
("1.1.0" . "24.2")
|
||||
("1.2.0" . "24.2")
|
||||
("1.2.1" . "24.2")
|
||||
("1.3.0" . "24.2")))
|
||||
("1.3.0" . "24.2")
|
||||
("1.3.1" . "24.2")
|
||||
))
|
||||
|
||||
(unless (assoc rst-official-version rst-package-emacs-version-alist)
|
||||
(error "Version %s not listed in `rst-package-emacs-version-alist'"
|
||||
|
|
@ -580,10 +584,13 @@ well but give an additional message."
|
|||
;;
|
||||
;; The adjustment function that adorns or rotates a section title.
|
||||
(rst-define-key map [?\C-c ?\C-=] 'rst-adjust [?\C-c ?\C-a t])
|
||||
(rst-define-key map [?\C-=] 'rst-adjust) ; (Does not work on the Mac OSX.)
|
||||
(rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on the Mac OSX and
|
||||
; on consoles.
|
||||
|
||||
;; \C-c \C-a is the keymap for adornments.
|
||||
(rst-define-key map [?\C-c ?\C-a ?\C-h] 'describe-prefix-bindings)
|
||||
;; Another binding which works with all types of input.
|
||||
(rst-define-key map [?\C-c ?\C-a ?\C-a] 'rst-adjust)
|
||||
;; Display the hierarchy of adornments implied by the current document
|
||||
;; contents.
|
||||
(rst-define-key map [?\C-c ?\C-a ?\C-d] 'rst-display-adornments-hierarchy)
|
||||
|
|
@ -3954,7 +3961,9 @@ An association list of the tool-set to a list of the (command to use,
|
|||
extension of produced filename, options to the tool (nil or a
|
||||
string)) to be used for converting the document."
|
||||
;; FIXME: These are not options but symbols which may be referenced by
|
||||
;; `rst-compile-*-toolset` below.
|
||||
;; `rst-compile-*-toolset` below. The `:validate' keyword of
|
||||
;; `defcustom' may help to define this properly in newer Emacs
|
||||
;; versions (> 23.1).
|
||||
:type '(alist :options (html latex newlatex pseudoxml xml pdf s5)
|
||||
:key-type symbol
|
||||
:value-type (list :tag "Specification"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
2012-07-28 David Engster <deng@randomsample.de>
|
||||
|
||||
* url-dav.el (url-dav-supported-p): Added doc-string and remove
|
||||
check for feature `xml' and function `xml-expand-namespace' which
|
||||
never existed in Emacs proper.
|
||||
(url-dav-process-response): Remove all indentation and newlines
|
||||
from XML before parsing. Change call to `xml-parse-region' to do
|
||||
namespace expansion with simple qualified names (Bug#11916).
|
||||
(url-dav-request): Add autoload.
|
||||
(url-dav-directory-files): Properly deal with empty directories.
|
||||
Unhex URL before generating relative URLs.
|
||||
(url-dav-file-directory-p): Fix check for 'DAV:collection.
|
||||
|
||||
2012-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* url.el, url-queue.el, url-parse.el, url-http.el, url-future.el:
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@
|
|||
|
||||
;;;###autoload
|
||||
(defun url-dav-supported-p (url)
|
||||
(and (featurep 'xml)
|
||||
(fboundp 'xml-expand-namespace)
|
||||
(url-intersection url-dav-supported-protocols
|
||||
(plist-get (url-http-options url) 'dav))))
|
||||
"Return WebDAV protocol version supported by URL.
|
||||
Returns nil if WebDAV is not supported."
|
||||
(url-intersection url-dav-supported-protocols
|
||||
(plist-get (url-http-options url) 'dav)))
|
||||
|
||||
(defun url-dav-node-text (node)
|
||||
"Return the text data from the XML node NODE."
|
||||
|
|
@ -385,7 +385,12 @@ XML document."
|
|||
(when buffer
|
||||
(unwind-protect
|
||||
(with-current-buffer buffer
|
||||
;; First remove all indentation and line endings
|
||||
(goto-char url-http-end-of-headers)
|
||||
(indent-rigidly (point) (point-max) -1000)
|
||||
(save-excursion
|
||||
(while (re-search-forward "\r?\n" nil t)
|
||||
(replace-match "")))
|
||||
(setq overall-status url-http-response-status)
|
||||
|
||||
;; XML documents can be transferred as either text/xml or
|
||||
|
|
@ -395,7 +400,7 @@ XML document."
|
|||
url-http-content-type
|
||||
(string-match "\\`\\(text\\|application\\)/xml"
|
||||
url-http-content-type))
|
||||
(setq tree (xml-parse-region (point) (point-max)))))
|
||||
(setq tree (xml-parse-region (point) (point-max) nil nil 'symbol-qnames))))
|
||||
;; Clean up after ourselves.
|
||||
(kill-buffer buffer)))
|
||||
|
||||
|
|
@ -411,6 +416,7 @@ XML document."
|
|||
;; nobody but us needs to know the difference.
|
||||
(list (cons url properties))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun url-dav-request (url method tag body
|
||||
&optional depth headers namespaces)
|
||||
"Perform WebDAV operation METHOD on URL. Return the parsed responses.
|
||||
|
|
@ -768,8 +774,8 @@ files in the collection as well."
|
|||
(defun url-dav-directory-files (url &optional full match nosort files-only)
|
||||
"Return a list of names of files in URL.
|
||||
There are three optional arguments:
|
||||
If FULL is non-nil, return absolute file names. Otherwise return names
|
||||
that are relative to the specified directory.
|
||||
If FULL is non-nil, return absolute URLs. Otherwise return names
|
||||
that are relative to the specified URL.
|
||||
If MATCH is non-nil, mention only file names that match the regexp MATCH.
|
||||
If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
|
||||
NOSORT is useful if you plan to sort the result yourself."
|
||||
|
|
@ -779,8 +785,9 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
|
|||
(files nil)
|
||||
(parsed-url (url-generic-parse-url url)))
|
||||
|
||||
(if (= (length properties) 1)
|
||||
(signal 'file-error (list "Opening directory" "not a directory" url)))
|
||||
(when (and (= (length properties) 1)
|
||||
(not (url-dav-file-directory-p url)))
|
||||
(signal 'file-error (list "Opening directory" "not a directory" url)))
|
||||
|
||||
(while properties
|
||||
(setq child-props (pop properties)
|
||||
|
|
@ -794,7 +801,9 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
|
|||
;; are not supposed to return fully-qualified names.
|
||||
(setq child-url (url-expand-file-name child-url parsed-url))
|
||||
(if (not full)
|
||||
(setq child-url (substring child-url (length url))))
|
||||
;; Parts of the URL might be hex'ed.
|
||||
(setq child-url (substring (url-unhex-string child-url)
|
||||
(length url))))
|
||||
|
||||
;; We don't want '/' as the last character in filenames...
|
||||
(if (string-match "/$" child-url)
|
||||
|
|
@ -814,7 +823,8 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
|
|||
(defun url-dav-file-directory-p (url)
|
||||
"Return t if URL names an existing DAV collection."
|
||||
(let ((properties (cdar (url-dav-get-properties url '(DAV:resourcetype)))))
|
||||
(eq (plist-get properties 'DAV:resourcetype) 'DAV:collection)))
|
||||
(when (member 'DAV:collection (plist-get properties 'DAV:resourcetype))
|
||||
t)))
|
||||
|
||||
(defun url-dav-make-directory (url &optional parents)
|
||||
"Create the directory DIR and any nonexistent parent dirs."
|
||||
|
|
|
|||
|
|
@ -1757,10 +1757,15 @@ saving the buffer."
|
|||
(call-interactively 'vc-version-diff)
|
||||
(when buffer-file-name (vc-buffer-sync not-urgent))
|
||||
(let ((backend (vc-deduce-backend))
|
||||
(default-directory default-directory)
|
||||
rootdir working-revision)
|
||||
(unless backend
|
||||
(error "Buffer is not version controlled"))
|
||||
(setq rootdir (vc-call-backend backend 'root default-directory))
|
||||
(if backend
|
||||
(setq rootdir (vc-call-backend backend 'root default-directory))
|
||||
(setq rootdir (read-directory-name "Directory for VC root-diff: "))
|
||||
(setq backend (vc-responsible-backend rootdir))
|
||||
(if backend
|
||||
(setq default-directory rootdir)
|
||||
(error "Directory is not version controlled")))
|
||||
(setq working-revision (vc-working-revision rootdir))
|
||||
;; VC diff for the root directory produces output that is
|
||||
;; relative to it. Bind default-directory to the root directory
|
||||
|
|
@ -2213,10 +2218,15 @@ When called interactively with a prefix argument, prompt for LIMIT."
|
|||
(t
|
||||
(list (when (> vc-log-show-limit 0) vc-log-show-limit)))))
|
||||
(let ((backend (vc-deduce-backend))
|
||||
(default-directory default-directory)
|
||||
rootdir working-revision)
|
||||
(unless backend
|
||||
(error "Buffer is not version controlled"))
|
||||
(setq rootdir (vc-call-backend backend 'root default-directory))
|
||||
(if backend
|
||||
(setq rootdir (vc-call-backend backend 'root default-directory))
|
||||
(setq rootdir (read-directory-name "Directory for VC root-log: "))
|
||||
(setq backend (vc-responsible-backend rootdir))
|
||||
(if backend
|
||||
(setq default-directory rootdir)
|
||||
(error "Directory is not version controlled")))
|
||||
(setq working-revision (vc-working-revision rootdir))
|
||||
(vc-print-log-internal backend (list rootdir) working-revision nil limit)))
|
||||
|
||||
|
|
|
|||
77
lisp/xml.el
77
lisp/xml.el
|
|
@ -126,7 +126,10 @@ tag. For example,
|
|||
|
||||
would be represented by
|
||||
|
||||
'(\"\" . \"foo\")."
|
||||
'(\"\" . \"foo\").
|
||||
|
||||
If you'd just like a plain symbol instead, use 'symbol-qnames in
|
||||
the PARSE-NS argument."
|
||||
|
||||
(car node))
|
||||
|
||||
|
|
@ -313,7 +316,22 @@ only those characters, have whitespace syntax.")
|
|||
"Parse the well-formed XML file FILE.
|
||||
Return the top node with all its children.
|
||||
If PARSE-DTD is non-nil, the DTD is parsed rather than skipped.
|
||||
If PARSE-NS is non-nil, then QNAMES are expanded."
|
||||
|
||||
If PARSE-NS is non-nil, then QNAMES are expanded. By default,
|
||||
the variable `xml-default-ns' is the mapping from namespaces to
|
||||
URIs, and expanded names will be returned as a cons
|
||||
|
||||
(\"namespace:\" . \"foo\").
|
||||
|
||||
If PARSE-NS is an alist, it will be used as the mapping from
|
||||
namespace to URIs instead.
|
||||
|
||||
If it is the symbol 'symbol-qnames, expanded names will be
|
||||
returned as a plain symbol 'namespace:foo instead of a cons.
|
||||
|
||||
Both features can be combined by providing a cons cell
|
||||
|
||||
(symbol-qnames . ALIST)."
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(xml--parse-buffer parse-dtd parse-ns)))
|
||||
|
|
@ -329,7 +347,21 @@ If END is nil, it defaults to `point-max'.
|
|||
If BUFFER is nil, it defaults to the current buffer.
|
||||
If PARSE-DTD is non-nil, parse the DTD and return it as the first
|
||||
element of the list.
|
||||
If PARSE-NS is non-nil, expand QNAMES."
|
||||
If PARSE-NS is non-nil, then QNAMES are expanded. By default,
|
||||
the variable `xml-default-ns' is the mapping from namespaces to
|
||||
URIs, and expanded names will be returned as a cons
|
||||
|
||||
(\"namespace:\" . \"foo\").
|
||||
|
||||
If PARSE-NS is an alist, it will be used as the mapping from
|
||||
namespace to URIs instead.
|
||||
|
||||
If it is the symbol 'symbol-qnames, expanded names will be
|
||||
returned as a plain symbol 'namespace:foo instead of a cons.
|
||||
|
||||
Both features can be combined by providing a cons cell
|
||||
|
||||
(symbol-qnames . ALIST)."
|
||||
;; Use fixed syntax table to ensure regexp char classes and syntax
|
||||
;; specs DTRT.
|
||||
(unless buffer
|
||||
|
|
@ -386,26 +418,36 @@ is nil.
|
|||
|
||||
During namespace-aware parsing, any name without a namespace is
|
||||
put into the namespace identified by DEFAULT. nil is used to
|
||||
specify that the name shouldn't be given a namespace."
|
||||
specify that the name shouldn't be given a namespace.
|
||||
Expanded names will by default be returned as a cons. If you
|
||||
would like to get plain symbols instead, provide a cons cell
|
||||
|
||||
(symbol-qnames . ALIST)
|
||||
|
||||
in the XML-NS argument."
|
||||
(if (consp xml-ns)
|
||||
(let* ((nsp (string-match ":" name))
|
||||
(let* ((symbol-qnames (eq (car-safe xml-ns) 'symbol-qnames))
|
||||
(nsp (string-match ":" name))
|
||||
(lname (if nsp (substring name (match-end 0)) name))
|
||||
(prefix (if nsp (substring name 0 (match-beginning 0)) default))
|
||||
(special (and (string-equal lname "xmlns") (not prefix)))
|
||||
;; Setting default to nil will insure that there is not
|
||||
;; matching cons in xml-ns. In which case we
|
||||
(ns (or (cdr (assoc (if special "xmlns" prefix)
|
||||
xml-ns))
|
||||
(if symbol-qnames (cdr xml-ns) xml-ns)))
|
||||
"")))
|
||||
(cons ns (if special "" lname)))
|
||||
(if (and symbol-qnames
|
||||
(not (string= prefix "xmlns")))
|
||||
(intern (concat ns lname))
|
||||
(cons ns (if special "" lname))))
|
||||
(intern name)))
|
||||
|
||||
(defun xml-parse-tag (&optional parse-dtd parse-ns)
|
||||
"Parse the tag at point.
|
||||
If PARSE-DTD is non-nil, the DTD of the document, if any, is parsed and
|
||||
returned as the first element in the list.
|
||||
If PARSE-NS is non-nil, expand QNAMES; if the value of PARSE-NS
|
||||
is a list, use it as an alist mapping namespaces to URIs.
|
||||
If PARSE-NS is non-nil, expand QNAMES; for further details, see
|
||||
`xml-parse-region'.
|
||||
|
||||
Return one of:
|
||||
- a list : the matching node
|
||||
|
|
@ -425,9 +467,16 @@ Return one of:
|
|||
|
||||
(defun xml-parse-tag-1 (&optional parse-dtd parse-ns)
|
||||
"Like `xml-parse-tag', but possibly modify the buffer while working."
|
||||
(let ((xml-validating-parser (or parse-dtd xml-validating-parser))
|
||||
(xml-ns (cond ((consp parse-ns) parse-ns)
|
||||
(parse-ns xml-default-ns))))
|
||||
(let* ((xml-validating-parser (or parse-dtd xml-validating-parser))
|
||||
(xml-ns
|
||||
(cond ((eq parse-ns 'symbol-qnames)
|
||||
(cons 'symbol-qnames xml-default-ns))
|
||||
((or (consp (car-safe parse-ns))
|
||||
(and (eq (car-safe parse-ns) 'symbol-qnames)
|
||||
(listp (cdr parse-ns))))
|
||||
parse-ns)
|
||||
(parse-ns
|
||||
xml-default-ns))))
|
||||
(cond
|
||||
;; Processing instructions, like <?xml version="1.0"?>.
|
||||
((looking-at "<\\?")
|
||||
|
|
@ -475,7 +524,9 @@ Return one of:
|
|||
(equal "http://www.w3.org/2000/xmlns/"
|
||||
(caar attr)))
|
||||
(push (cons (cdar attr) (cdr attr))
|
||||
xml-ns))))
|
||||
(if (symbolp (car xml-ns))
|
||||
(cdr xml-ns)
|
||||
xml-ns)))))
|
||||
(setq children (list attrs (xml-maybe-do-ns node-name "" xml-ns)))
|
||||
(cond
|
||||
;; is this an empty element ?
|
||||
|
|
|
|||
47
m4/environ.m4
Normal file
47
m4/environ.m4
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# environ.m4 serial 6
|
||||
dnl Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN_ONCE([gl_ENVIRON],
|
||||
[
|
||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
||||
dnl Persuade glibc <unistd.h> to declare environ.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
gt_CHECK_VAR_DECL(
|
||||
[#if HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
|
||||
#include <stdlib.h>
|
||||
],
|
||||
[environ])
|
||||
if test $gt_cv_var_environ_declaration != yes; then
|
||||
HAVE_DECL_ENVIRON=0
|
||||
fi
|
||||
])
|
||||
|
||||
# Check if a variable is properly declared.
|
||||
# gt_CHECK_VAR_DECL(includes,variable)
|
||||
AC_DEFUN([gt_CHECK_VAR_DECL],
|
||||
[
|
||||
define([gt_cv_var], [gt_cv_var_]$2[_declaration])
|
||||
AC_MSG_CHECKING([if $2 is properly declared])
|
||||
AC_CACHE_VAL([gt_cv_var], [
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[$1
|
||||
extern struct { int foo; } $2;]],
|
||||
[[$2.foo = 1;]])],
|
||||
[gt_cv_var=no],
|
||||
[gt_cv_var=yes])])
|
||||
AC_MSG_RESULT([$gt_cv_var])
|
||||
if test $gt_cv_var = yes; then
|
||||
AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
|
||||
[Define if you have the declaration of $2.])
|
||||
fi
|
||||
undefine([gt_cv_var])
|
||||
])
|
||||
|
|
@ -52,6 +52,7 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module dtoastr:
|
||||
# Code from module dtotimespec:
|
||||
# Code from module dup2:
|
||||
# Code from module environ:
|
||||
# Code from module extensions:
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
# Code from module filemode:
|
||||
|
|
@ -148,6 +149,8 @@ if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
|
|||
gl_PREREQ_DUP2
|
||||
fi
|
||||
gl_UNISTD_MODULE_INDICATOR([dup2])
|
||||
gl_ENVIRON
|
||||
gl_UNISTD_MODULE_INDICATOR([environ])
|
||||
gl_FILEMODE
|
||||
gl_GETLOADAVG
|
||||
if test $HAVE_GETLOADAVG = 0; then
|
||||
|
|
@ -598,6 +601,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/c-strtod.m4
|
||||
m4/clock_time.m4
|
||||
m4/dup2.m4
|
||||
m4/environ.m4
|
||||
m4/extensions.m4
|
||||
m4/filemode.m4
|
||||
m4/getloadavg.m4
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib stdalign module (Bug#9772, Bug#9960).
|
||||
* sed2v2.inp (HAVE_ATTRIBUTE_ALIGNED): Remove edit.
|
||||
* sedlibmk.inp (STDALIGN_H, @GL_GENERATE_STDALIGN_H_TRUE@)
|
||||
(GL_GENERATE_STDALIGN_H_FALSE): New edits.
|
||||
|
||||
2012-07-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* sed1v2.inp: In the recipe for $(leimdir)/leim-list.el, edit the
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
/^#undef HAVE_FREXP *$/s/^.*$/#define HAVE_FREXP 1/
|
||||
/^#undef HAVE_FMOD *$/s/^.*$/#define HAVE_FMOD 1/
|
||||
/^#undef HAVE_RINT *$/s/^.*$/#define HAVE_RINT 1/
|
||||
/^#undef HAVE_ATTRIBUTE_ALIGNED *$/s/^.*$/#define HAVE_ATTRIBUTE_ALIGNED 1/
|
||||
/^#undef HAVE_C99_STRTOLD *$/s/^.*$/#define HAVE_C99_STRTOLD 1/
|
||||
/^#undef HAVE_CBRT *$/s/^.*$/#define HAVE_CBRT 1/
|
||||
/^#undef HAVE_DIFFTIME *$/s/^.*$/#define HAVE_DIFFTIME 1/
|
||||
|
|
|
|||
|
|
@ -647,6 +647,8 @@ s/^@GL_GENERATE_ALLOCA_H_TRUE@//
|
|||
s/^@GL_GENERATE_ALLOCA_H_FALSE@/\#/
|
||||
s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/
|
||||
s/^@GL_GENERATE_STDBOOL_H_FALSE@//
|
||||
s/^@GL_GENERATE_STDALIGN_H_TRUE@//
|
||||
s/^@GL_GENERATE_STDALIGN_H_FALSE@/\#/
|
||||
s/^@GL_GENERATE_STDARG_H_TRUE@/\#/
|
||||
s/^@GL_GENERATE_STDARG_H_FALSE@/\#/
|
||||
s/^@GL_GENERATE_STDDEF_H_TRUE@/\#/
|
||||
|
|
|
|||
20
nt/ChangeLog
20
nt/ChangeLog
|
|
@ -1,3 +1,17 @@
|
|||
2012-07-29 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* config.nt: Sync with autogen/config.in.
|
||||
(HAVE_ENVIRON_DECL): New macro.
|
||||
|
||||
2012-07-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* inc/stdalign.h (_Alignas, alignas): Define.
|
||||
|
||||
2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib stdalign module (Bug#9772, Bug#9960).
|
||||
* config.nt (HAVE_ATTRIBUTE_ALIGNED): Remove.
|
||||
|
||||
2012-07-14 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* config.nt: Sync with autogen/config.in.
|
||||
|
|
@ -900,7 +914,7 @@
|
|||
|
||||
2008-04-04 Jason Rumney <jasonr@gnu.org>
|
||||
|
||||
* INSTALL: Update W32 API requirements.
|
||||
* INSTALL: Update Windows API requirements.
|
||||
|
||||
2008-04-03 Jason Rumney <jasonr@gnu.org>
|
||||
|
||||
|
|
@ -2317,7 +2331,7 @@
|
|||
* makefile.def (CP_DIR): Use platform independent switches for xcopy.
|
||||
|
||||
* makefile.nt (install, fast_install, real_install, clean):
|
||||
Don't use switches to del not supported by Win95.
|
||||
Don't use switches to del not supported by Windows 95.
|
||||
|
||||
1995-11-07 Kevin Gallo <kgallo@microsoft.com>
|
||||
|
||||
|
|
@ -2371,7 +2385,7 @@
|
|||
1995-05-27 Geoff Voelker <voelker@cs.washington.edu>
|
||||
|
||||
* ebuild.bat, emacs.bat, fast-install.bat, install.bat:
|
||||
Add carriage returns; necessary for batch files on Win95.
|
||||
Add carriage returns; necessary for batch files on Windows 95.
|
||||
|
||||
1995-05-25 Geoff Voelker <voelker@cs.washington.edu>
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
|
||||
To compile Emacs, you will need either Microsoft Visual C++ 2.0, or
|
||||
later and nmake, or a Windows port of GCC 2.95 or later with MinGW
|
||||
and W32 API support and a port of GNU Make. You can use the Cygwin
|
||||
and Windows API support and a port of GNU Make. You can use the Cygwin
|
||||
ports of GCC, but Emacs requires the MinGW headers and libraries to
|
||||
build (latest versions of the Cygwin toolkit, at least since v1.3.3,
|
||||
include the MinGW headers and libraries as an integral part).
|
||||
|
|
@ -591,7 +591,7 @@
|
|||
* Trouble-shooting
|
||||
|
||||
The main problems that are likely to be encountered when building
|
||||
Emacs stem from using an old version of GCC, or old MinGW or W32 API
|
||||
Emacs stem from using an old version of GCC, or old MinGW or Windows API
|
||||
headers. Additionally, Cygwin ports of GNU make may require the Emacs
|
||||
source tree to be mounted with text!=binary, because the makefiles
|
||||
generated by configure.bat necessarily use DOS line endings. Also,
|
||||
|
|
@ -603,7 +603,7 @@
|
|||
2.95 or later is needed, because that is when the Windows port gained
|
||||
sufficient support for anonymous structs and unions to cope with some
|
||||
definitions from winnt.h that are used by addsection.c.
|
||||
Older versions of the W32 API headers that come with Cygwin and MinGW
|
||||
Older versions of the Windows API headers that come with Cygwin and MinGW
|
||||
may be missing some definitions required by Emacs, or broken in other
|
||||
ways. In particular, uniscribe APIs were added to MinGW CVS only on
|
||||
2006-03-26, so releases from before then cannot be used.
|
||||
|
|
|
|||
|
|
@ -227,9 +227,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if ALSA is available. */
|
||||
#undef HAVE_ALSA
|
||||
|
||||
/* Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works. */
|
||||
#undef HAVE_ATTRIBUTE_ALIGNED
|
||||
|
||||
/* Define to 1 if strtold conforms to C99. */
|
||||
#undef HAVE_C99_STRTOLD
|
||||
|
||||
|
|
@ -342,6 +339,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `endpwent' function. */
|
||||
#undef HAVE_ENDPWENT
|
||||
|
||||
/* Define if you have the declaration of environ. */
|
||||
#undef HAVE_ENVIRON_DECL
|
||||
|
||||
/* Define to 1 if you have the `euidaccess' function. */
|
||||
#undef HAVE_EUIDACCESS
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
|
|||
rem
|
||||
rem + MS Windows 95, NT or later
|
||||
rem + either MSVC 2.x or later, or gcc-2.95 or later (with GNU make 3.75
|
||||
rem or later) and the Mingw32 and W32 API headers and libraries.
|
||||
rem or later) and the Mingw32 and Windows API headers and libraries.
|
||||
rem + Visual Studio 2005 is not supported at this time.
|
||||
rem
|
||||
rem For reference, here is a list of which builds of GNU make are known to
|
||||
|
|
@ -426,7 +426,7 @@ rem problem). The gcc/mingw32 2.95.2 headers are okay, as are distros
|
|||
rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.
|
||||
rem Beginning with Emacs 23, we need usp10.h.
|
||||
rem
|
||||
echo Checking whether W32 API headers are too old...
|
||||
echo Checking whether Windows API headers are too old...
|
||||
echo #include "windows.h" >junk.c
|
||||
echo #include "usp10.h" >>junk.c
|
||||
echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c
|
||||
|
|
@ -469,7 +469,7 @@ goto end
|
|||
echo.
|
||||
echo Configure failed.
|
||||
echo To configure Emacs for Windows, you need to have either
|
||||
echo gcc-2.95 or later with Mingw32 and the W32 API headers,
|
||||
echo gcc-2.95 or later with Mingw32 and the Windows API headers,
|
||||
echo or MSVC 2.x or later.
|
||||
del junk.c
|
||||
goto end
|
||||
|
|
|
|||
|
|
@ -13,4 +13,13 @@
|
|||
#endif
|
||||
#define alignof _Alignof
|
||||
|
||||
#if __GNUC__
|
||||
# define _Alignas(a) __attribute__ ((__aligned__ (a)))
|
||||
#elif 1300 <= _MSC_VER
|
||||
# define _Alignas(a) __declspec (align (a))
|
||||
#endif
|
||||
#ifdef _Alignas
|
||||
# define alignas _Alignas
|
||||
#endif
|
||||
|
||||
#endif /* _NT_STDALIGN_H_ */
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
|
||||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# Top level makefile for building GNU Emacs on Windows NT
|
||||
|
|
|
|||
34
src/.gdbinit
34
src/.gdbinit
|
|
@ -46,17 +46,29 @@ handle SIGALRM ignore
|
|||
# Use $bugfix so that the value isn't a constant.
|
||||
# Using a constant runs into GDB bugs sometimes.
|
||||
define xgetptr
|
||||
set $bugfix = CHECK_LISP_OBJECT_TYPE ? $arg0.i : $arg0
|
||||
if (CHECK_LISP_OBJECT_TYPE)
|
||||
set $bugfix = $arg0.i
|
||||
else
|
||||
set $bugfix = $arg0
|
||||
end
|
||||
set $ptr = ($bugfix & VALMASK) | DATA_SEG_BITS
|
||||
end
|
||||
|
||||
define xgetint
|
||||
set $bugfix = CHECK_LISP_OBJECT_TYPE ? $arg0.i : $arg0
|
||||
set $int = USE_LSB_TAG ? $bugfix >> INTTYPEBITS : $bugfix << INTTYPEBITS >> INTTYPEBITS
|
||||
if (CHECK_LISP_OBJECT_TYPE)
|
||||
set $bugfix = $arg0.i
|
||||
else
|
||||
set $bugfix = $arg0
|
||||
end
|
||||
set $int = $bugfix << (USE_LSB_TAG ? 0 : INTTYPEBITS) >> INTTYPEBITS
|
||||
end
|
||||
|
||||
define xgettype
|
||||
set $bugfix = CHECK_LISP_OBJECT_TYPE ? $arg0.i : $arg0
|
||||
if (CHECK_LISP_OBJECT_TYPE)
|
||||
set $bugfix = $arg0.i
|
||||
else
|
||||
set $bugfix = $arg0
|
||||
end
|
||||
set $type = (enum Lisp_Type) (USE_LSB_TAG ? $bugfix & (1 << GCTYPEBITS) - 1 : $bugfix >> VALBITS)
|
||||
end
|
||||
|
||||
|
|
@ -641,7 +653,11 @@ end
|
|||
define xvectype
|
||||
xgetptr $
|
||||
set $size = ((struct Lisp_Vector *) $ptr)->header.size
|
||||
output ($size & PSEUDOVECTOR_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~ARRAY_MARK_FLAG
|
||||
if ($size & PSEUDOVECTOR_FLAG)
|
||||
output (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS)
|
||||
else
|
||||
output $size & ~ARRAY_MARK_FLAG
|
||||
end
|
||||
echo \n
|
||||
end
|
||||
document xvectype
|
||||
|
|
@ -980,7 +996,7 @@ define xpr
|
|||
if $type == Lisp_Vectorlike
|
||||
set $size = ((struct Lisp_Vector *) $ptr)->header.size
|
||||
if ($size & PSEUDOVECTOR_FLAG)
|
||||
set $vec = (enum pvec_type) ($size & PVEC_TYPE_MASK)
|
||||
set $vec = (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS)
|
||||
if $vec == PVEC_NORMAL_VECTOR
|
||||
xvector
|
||||
end
|
||||
|
|
@ -1115,7 +1131,11 @@ define xbacktrace
|
|||
if $type == Lisp_Vectorlike
|
||||
xgetptr (*$bt->function)
|
||||
set $size = ((struct Lisp_Vector *) $ptr)->header.size
|
||||
output ($size & PSEUDOVECTOR_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~ARRAY_MARK_FLAG
|
||||
if ($size & PSEUDOVECTOR_FLAG)
|
||||
output (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS)
|
||||
else
|
||||
output $size & ~ARRAY_MARK_FLAG
|
||||
end
|
||||
else
|
||||
printf "Lisp type %d", $type
|
||||
end
|
||||
|
|
|
|||
309
src/ChangeLog
309
src/ChangeLog
|
|
@ -1,3 +1,312 @@
|
|||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* conf_post.h: New, split from configure.ac's AH_BOTTOM.
|
||||
* Makefile.in (config_h): Add conf_post.h.
|
||||
* makefile.w32-in (CONFIG_H): Add conf_post.h.
|
||||
|
||||
2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* nsterm.m (ns_do_open_file): New variable.
|
||||
(ns_term_init): Set ns_do_open_file to NO after run returns.
|
||||
(openFile, openTempFile, openFileWithoutUI, openFiles): Open
|
||||
files only if ns_do_open_file.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
|
||||
This no-op macro hasn't been needed for many years.
|
||||
* src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
|
||||
|
||||
Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
|
||||
* alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
|
||||
* lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
|
||||
gdb_make_enums_visible.
|
||||
(TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
|
||||
(DIRECTORY_SEP): Now a constant, not a macro.
|
||||
|
||||
2012-07-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
|
||||
w32_kbd_patch_key as the 2nd arg. (Bug#12082)
|
||||
|
||||
* w32term.c <w32_keyboard_codepage>: Renamed from
|
||||
keyboard_codepage and now external. All users changed.
|
||||
|
||||
* w32term.h: Add declaration of w32_keyboard_codepage.
|
||||
|
||||
* w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
|
||||
the codepage to translate keys to Unicode. If this argument is
|
||||
-1, use the value returned by GetConsoleCP. All callers changed.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Update .PHONY listings in makefiles.
|
||||
* Makefile.in (.PHONY): Add all, mostlyclean, clean,
|
||||
bootstrap-clean, distclean, maintainer-clean, versioclean,
|
||||
extraclean, frc.
|
||||
|
||||
* lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
|
||||
This is a bit clearer. Fix some commentary typos.
|
||||
|
||||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* s/netbsd.h: Let configure include signal.h if needed.
|
||||
Remove file, which is now empty.
|
||||
|
||||
* s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
|
||||
Let configure set them.
|
||||
* s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
|
||||
No more need to undefine.
|
||||
|
||||
2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* keymap.c (Fkey_description): Don't remove 0x80 bit from
|
||||
non-single-byte char when adding meta modifier. (Bug#12090)
|
||||
|
||||
2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Convert safe_call to use variable number of arguments.
|
||||
* xdisp.c (safe_call): Convert to use varargs. Adjust users.
|
||||
(safe_call2): Fix comment.
|
||||
* lisp.h (safe_call): Adjust prototype.
|
||||
* coding.c (encode_coding_object): Change to use safe_call2.
|
||||
* xfaces.c (merge_face_heights): Change to use safe_call1.
|
||||
|
||||
2012-07-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
|
||||
does that unconditionally. Remove file, which is now empty.
|
||||
|
||||
* s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
|
||||
Remove empty files.
|
||||
|
||||
2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Export to GDB most of lisp.h's remaining object-like macros.
|
||||
* lisp.h (min, max): Move earlier, because they're used earlier now.
|
||||
(INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
|
||||
(CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
|
||||
(CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
|
||||
(DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
|
||||
(COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
|
||||
(COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
|
||||
(CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
|
||||
(MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
|
||||
Now constants, for GDB. They need not be macros.
|
||||
(MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
|
||||
Now constants, for GDB, as well as macros, for static initializers.
|
||||
(CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
|
||||
Move to after the definition of struct Lisp_Char_Table,
|
||||
since the former now needs that type defined.
|
||||
(enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
|
||||
(enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
|
||||
(enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
|
||||
New enums, for gdb_make_enums_visible.
|
||||
(GLYPH_MODE_LINE_FACE): Remove; unused.
|
||||
* alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
|
||||
(gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
|
||||
CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
|
||||
enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
|
||||
enum maxargs, enum MAX_ALLOCA.
|
||||
(ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
|
||||
(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
|
||||
no longer needed, now that they are done in lisp.h.
|
||||
|
||||
2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Cleanup string bytes checking.
|
||||
* alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
|
||||
all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
|
||||
(check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
|
||||
(check_sblock, compact_small_strings): Simplify.
|
||||
|
||||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
|
||||
These macros are confusing and no longer need to be defined, as
|
||||
the enum values now suffice. All uses replaced with definiens.
|
||||
(Lisp_Int1, Lisp_String): Define directly; this is clearer.
|
||||
|
||||
2012-07-29 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
|
||||
($(BLD)/w32console.$(O)): Update dependencies.
|
||||
|
||||
2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
|
||||
* lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
|
||||
time. Adjust users.
|
||||
(CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
|
||||
|
||||
2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
|
||||
setting sitelisp (Bug#12010).
|
||||
|
||||
2012-07-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* w32heap.h (OS_9X): Renamed from OS_WINDOWS_95.
|
||||
|
||||
* w32heap.c (cache_system_info):
|
||||
* w32.c (sys_rename):
|
||||
* w32proc.c (find_child_console, sys_kill): All users changed.
|
||||
|
||||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
|
||||
|
||||
2012-07-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
|
||||
|
||||
2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Cleanup statistics calculation in Fgarbage_collect.
|
||||
* alloc.c (Fgarbage_collect): Rename t1 to meaningful start. Fix
|
||||
zombies percentage calculation. Simplify elapsed time calculation.
|
||||
|
||||
2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Generalize marker debugging code under MARKER_DEBUG and use eassert.
|
||||
* insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
|
||||
(gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
|
||||
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
|
||||
(replace_range, replace_range_2, del_range_2): Change to eassert.
|
||||
* marker.c (byte_char_debug_check): Adjust style.
|
||||
|
||||
2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't use the abbreviation "win" to refer to Windows (Bug#10421).
|
||||
* regex.c (MAX_BUF_SIZE): Remove some incorrect and
|
||||
long-ago-commented-out code that talks about "WIN32".
|
||||
* w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
|
||||
All uses changed.
|
||||
|
||||
2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib stdalign module (Bug#9772, Bug#9960).
|
||||
* alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
|
||||
Simplify by using alignof.
|
||||
(pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
|
||||
* lisp.h: Include <stdalign.h>.
|
||||
(GCALIGNMENT): New macro and constant.
|
||||
(DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
|
||||
(USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
|
||||
(stdalign): New macro, if not already defined.
|
||||
|
||||
2012-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
|
||||
* w32inevt.c: Include w32inevt.h.
|
||||
(w32_read_console_input): New inline function, calls either
|
||||
ReadConsoleInputA or ReadConsoleInputW, depending on the value of
|
||||
w32_console_unicode_input.
|
||||
(fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
|
||||
(w32_kbd_patch_key, key_event): Use the codepage returned by
|
||||
GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
|
||||
(key_event): use uChar.UnicodeChar only if
|
||||
w32_console_unicode_input is non-zero.
|
||||
|
||||
* w32console.c: Include w32heap.h.
|
||||
<w32_console_unicode_input>: New global variable.
|
||||
(initialize_w32_display): Set w32_console_unicode_input to 1 on NT
|
||||
family of Windows, zero otherwise.
|
||||
|
||||
* w32inevt.h: Declare w32_console_unicode_input.
|
||||
|
||||
* xdisp.c (init_iterator): Don't reference tip_frame in a build
|
||||
--without-x. (Bug#11742)
|
||||
|
||||
2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Adjust GDB to reflect pvec_type changes (Bug#12036).
|
||||
* .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
|
||||
2012-07-04 changes to pseudovector representation. Problem
|
||||
reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
|
||||
|
||||
2012-07-27 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
|
||||
bus address.
|
||||
(xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
|
||||
|
||||
2012-07-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* alloc.c (listn): Fix the order the arguments are consed onto the
|
||||
list.
|
||||
|
||||
* lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
|
||||
enumeration constants, as PURE and HEAP are too general, and clash
|
||||
with other headers and sources, such as gmalloc.c and the
|
||||
MS-Windows system headers. All users changed.
|
||||
|
||||
2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Revert last save_excursion_save and save_excursion_restore changes.
|
||||
* alloc.c, editfns.c, marker.c, lisp.h: Revert.
|
||||
Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
|
||||
|
||||
2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Fix recently-introduced typos in Windows port.
|
||||
Reported by Martin Rudalics <rudalics@gmx.at>.
|
||||
* w32.c (init_environment): Replace comma with semicolon.
|
||||
* w32fns.c (syms_of_w32fns): Add missing parenthesis.
|
||||
|
||||
2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Improve GDB symbol export (Bug#12036).
|
||||
* .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
|
||||
arms of an 'if', not using conditional expressions; otherwise GDB
|
||||
complains about the types in the unevaluated arm when the argument
|
||||
is an integer literal.
|
||||
(xgetint): Simplify expression.
|
||||
* alloc.c (gdb_make_enums_visible): New constant. This ports to
|
||||
GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
|
||||
Zaretskii in <http://bugs.gnu.org/12036#13>.
|
||||
* lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
|
||||
needed now that we have gdb_make_enums_visible.
|
||||
(enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
|
||||
(enum enum_USE_LSB_TAG):
|
||||
New enum types, packaging up enums that need to be exported to GDB.
|
||||
|
||||
2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Utility function to make a list from specified amount of objects.
|
||||
* lisp.h (enum constype): New datatype.
|
||||
(listn): New prototype.
|
||||
* alloc.c (listn): New function.
|
||||
(Fmemory_use_count, syms_of_alloc): Use it.
|
||||
* buffer.c (syms_of_buffer): Likewise.
|
||||
* callint.c (syms_of_callint): Likewise.
|
||||
* charset.c (define_charset_internal): Likewise.
|
||||
* coding.c (syms_of_coding): Likewise.
|
||||
* keymap.c (syms_of_keymap): Likewise.
|
||||
* search.c (syms_of_search): Likewise.
|
||||
* syntax.c (syms_of_syntax): Likewise.
|
||||
* w32.c (init_environment): Likewise.
|
||||
* w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
|
||||
* xdisp.c (syms_of_xdisp): Likewise.
|
||||
* xfns.c (syms_of_xfns): Likewise.
|
||||
|
||||
2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
Fast save_excursion_save and save_excursion_restore.
|
||||
* lisp.h (struct Lisp_Excursion): New data type.
|
||||
(PVEC_EXCURSION): New pseudovector type.
|
||||
(XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
|
||||
to deal with it. Adjust comments.
|
||||
(init_marker, attach_marker): New prototype.
|
||||
(unchain_marker): Adjust prototype.
|
||||
* marker.c (attach_marker): Change to global.
|
||||
(init_marker): New function.
|
||||
* alloc.c (Fmake_marker, build_marker): Use it.
|
||||
(build_marker): More easserts.
|
||||
(mark_object): Handle struct Lisp_Excursion.
|
||||
* editfns.c (save_excursion_save, save_excursion_restore):
|
||||
Reimplement to use struct Lisp_Excursion. Add comments.
|
||||
|
||||
2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix export of symbols to GDB (Bug#12036).
|
||||
|
|
|
|||
|
|
@ -15825,7 +15825,7 @@
|
|||
* w32term.c (w32_draw_fringe_bitmap): Copy unadapted code from
|
||||
xterm.c to handle overlaid fringe bitmaps and to use cursor color
|
||||
for displaying cursor in fringe.
|
||||
(w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New W32
|
||||
(w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New Windows
|
||||
specific functions to define and destroy fringe bitmaps in fringe_bmp.
|
||||
(w32_redisplay_interface): Add them to redisplay_interface.
|
||||
(w32_term_init): Call w32_init_fringe instead of explicitly
|
||||
|
|
@ -21476,7 +21476,7 @@
|
|||
"Emacs built on Windows 9x/ME crashes at startup on Windows XP,
|
||||
or Emacs builtpart of on XP crashes at startup on Windows 9x/ME."
|
||||
|
||||
* w32.c: Added wrapper functions around the win32 API functions
|
||||
* w32.c: Added wrapper functions around the Windows API functions
|
||||
OpenProcessToken, GetTokenInformation, LookupAccountSid, and
|
||||
GetSidIdentifierAuthority. These wrapper functions serve two
|
||||
purposes:
|
||||
|
|
@ -21490,7 +21490,7 @@
|
|||
the version of advapi32.dll that is found in the 9x branch of
|
||||
Microsoft Windows.
|
||||
|
||||
* w32.c (init_user_info): Replace the calls to the win32 API
|
||||
* w32.c (init_user_info): Replace the calls to the Windows API
|
||||
functions OpenProcessToken, GetTokenInformation, LookupAccountSid,
|
||||
and GetSidIdentifierAuthority with calls to the newly added
|
||||
wrapper functions.
|
||||
|
|
|
|||
|
|
@ -3994,7 +3994,8 @@
|
|||
|
||||
2010-09-24 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
Remove W32 API function pointer unused since 2005-02-15 (revno 2005-02-15T23:19:26Z!jasonr@gnu.org).
|
||||
Remove Windows API function pointer unused since 2005-02-15 (revno
|
||||
2005-02-15T23:19:26Z!jasonr@gnu.org).
|
||||
* w32fns.c (clipboard_sequence_fn): Don't declare.
|
||||
(globals_of_w32fns): Don't initialize it.
|
||||
|
||||
|
|
|
|||
|
|
@ -1269,7 +1269,7 @@
|
|||
"light", "extralight", and "thin" fonts.
|
||||
(x_to_win32_charset, win32_to_x_charset): New functions.
|
||||
(win32_to_x_font): Use new height units. Use win32_to_x_charset.
|
||||
(x_to_win32_font): Use x_to_win32_charset. Support Win32 font names
|
||||
(x_to_win32_font): Use x_to_win32_charset. Support w32 font names
|
||||
in addition to X font names.
|
||||
|
||||
(win32_load_font, Fx_list_fonts, Fx_display_color_cells)
|
||||
|
|
@ -3625,11 +3625,11 @@
|
|||
|
||||
* xdisp.c [HAVE_NTGUI] (set_menu_framebar): Declare external.
|
||||
[HAVE_NTGUI] (frame_title_buf, frame_title_ptr): Include variables
|
||||
for Win32 window system.
|
||||
for w32 window system.
|
||||
[HAVE_NTGUI] (store_frame_title, x_consider_frame_title): Include
|
||||
procedures for Win32 window system.
|
||||
[HAVE_NTGUI] (x_consider_frame_title): Test for Win32 frame.
|
||||
[HAVE_NTGUI] (display_text_line): Test for Win32 frame on face change.
|
||||
procedures for w32 window system.
|
||||
[HAVE_NTGUI] (x_consider_frame_title): Test for w32 frame.
|
||||
[HAVE_NTGUI] (display_text_line): Test for w32 frame on face change.
|
||||
[HAVE_NTGUI] (display_menu_bar): Perform no-op for NT window system.
|
||||
|
||||
* window.c [HAVE_NTGUI] (Fset_window_configuration): Set menu
|
||||
|
|
@ -3659,7 +3659,7 @@
|
|||
(make_lispy_event): Use FUNCTION_KEY_OFFSET to modify event codes
|
||||
before applying modifiers.
|
||||
|
||||
* frame.c [HAVE_NTGUI]: Test for a Win32 frame in procedures
|
||||
* frame.c [HAVE_NTGUI]: Test for a w32 frame in procedures
|
||||
that test for an X frame.
|
||||
|
||||
* frame.h (output_method): New method: output_win32.
|
||||
|
|
@ -3673,13 +3673,13 @@
|
|||
* emacs.c [HAVE_NTGUI]: Declare Vwindow_system.
|
||||
[HAVE_NTGUI] (main): Enable inhibit_window_system.
|
||||
Initialize environment from registry.
|
||||
Declare syms of Win32 windowing modules.
|
||||
Declare syms of w32 windowing modules.
|
||||
|
||||
* dispnew.c [HAVE_NTGUI]: Include w32term.h.
|
||||
Include dispextern.h before cm.h since dispextern.h includes windows.h.
|
||||
[HAVE_NTGUI] (make_frame_glyphs, free_frame_glyphs, scroll_frame_lines)
|
||||
(update_frame, update_line): Test for WIN32 frame.
|
||||
[HAVE_NTGUI] (init_display): Initialize WIN32 window system.
|
||||
(update_frame, update_line): Test for w32 frame.
|
||||
[HAVE_NTGUI] (init_display): Initialize w32 window system.
|
||||
|
||||
* dispextern.h [HAVE_NTGUI]: Include win32.h.
|
||||
[HAVE_NTGUI] (struct frame_glyphs): Include pixel fields.
|
||||
|
|
|
|||
|
|
@ -2070,7 +2070,7 @@
|
|||
(sys_select): Ignore children dead children with pending input.
|
||||
Delay sending SIGCHLD until all output has been read.
|
||||
(sys_kill): Sleep to allow focus change events to propagate.
|
||||
Use TerminateProcess on Win95.
|
||||
Use TerminateProcess on Windows 95.
|
||||
(int_from_hex, enum_locale_fn, Fw32_get_valid_locale_ids):
|
||||
New functions.
|
||||
(Vw32_valid_locale_ids): New variable.
|
||||
|
|
@ -5719,13 +5719,13 @@
|
|||
Loop over handles round robin to ensure fairness.
|
||||
(sys_kill): Send ctrl-break and ctrl-c keystrokes to subprocesses
|
||||
on SIGINT if not sharing consoles, otherwise generate ctrl-break event.
|
||||
On other termination signals, send WM_QUIT message to Win95 apps
|
||||
On other termination signals, send WM_QUIT message to Windows 95 apps
|
||||
and WM_CLOSE to NT apps.
|
||||
(syms_of_ntproc): Intern new symbols. defsubr new functions.
|
||||
DEFVAR new variables.
|
||||
|
||||
* w32term.c (SIF_*): Win95 macros defined for NT.
|
||||
(struct tagSCROLLINFO): Win95 struct defined for NT.
|
||||
* w32term.c (SIF_*): Windows 95 macros defined for NT.
|
||||
(struct tagSCROLLINFO): Windows 95 struct defined for NT.
|
||||
(vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border)
|
||||
(vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos)
|
||||
(Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock):
|
||||
|
|
|
|||
|
|
@ -13203,7 +13203,7 @@
|
|||
* w32.c (stat): GetFileInformationByHandle can legitimately fail,
|
||||
so don't rely on it succeeding.
|
||||
|
||||
* w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
|
||||
* w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the Windows
|
||||
LOGFONT struct if x font doesn't specify the charset.
|
||||
(x_to_w32_charset): Change >= to == when testing results of
|
||||
stricmp.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue