This commit is contained in:
Joakim Verona 2012-07-31 00:00:41 +02:00
commit 55fa71b3d9
154 changed files with 3513 additions and 1625 deletions

View file

@ -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.

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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
'

View file

@ -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
View file

@ -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])

View file

@ -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
View file

@ -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}

View file

@ -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=

View file

@ -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], [

View file

@ -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.

View file

@ -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

View file

@ -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".

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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:

View file

@ -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.

View file

@ -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.

View file

@ -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'

View file

@ -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.

View file

@ -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

View file

@ -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,

View file

@ -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)

View file

@ -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*"

View file

@ -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'.

View file

@ -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."

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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>.

View file

@ -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.

View file

@ -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)

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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))

View file

@ -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")

View file

@ -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)

View file

@ -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.

View file

@ -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)

View file

@ -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")

View file

@ -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)))
))

View file

@ -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

View file

@ -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'.

View file

@ -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.

View file

@ -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

View file

@ -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))

View file

@ -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)

View file

@ -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)))

View file

@ -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)))

View file

@ -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))))

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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 ()

View file

@ -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

View file

@ -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)

View file

@ -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=\"\\(.*?\\)\"")

View file

@ -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")

View file

@ -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 ()

View file

@ -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

View file

@ -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.

View file

@ -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.")

View file

@ -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)

View file

@ -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.")

View file

@ -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\\)[]}]"))

View file

@ -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"

View file

@ -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:

View file

@ -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."

View file

@ -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)))

View file

@ -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
View 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])
])

View file

@ -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

View file

@ -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

View file

@ -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/

View file

@ -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@/\#/

View file

@ -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>

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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_ */

View file

@ -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

View file

@ -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

View file

@ -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).

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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):

View file

@ -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