commit/XEmacs: kehoea: Update the list of directories searched by
#'x-color-list-internal
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/405c07ae230b/
Changeset: 405c07ae230b
User: kehoea
Date: 2017-11-16 08:53:06+00:00
Summary: Update the list of directories searched by #'x-color-list-internal
lisp/ChangeLog addition:
2017-11-16 Aidan Kehoe <kehoea(a)parhasard.net>
* x-faces.el (x-library-search-path):
Update this variable to include share/ subdirectories of all the
potential prefixes, since rgb.txt is usually now in share/X11.
* x-faces.el (x-color-list-internal):
Use #'canoncase, not #'downcase when adding completion for the
lowercase form, avoiding problems with Turkish locales.
Affected #: 2 files
diff -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 -r 405c07ae230be01c54b036bab07d0c684f3f15d6 lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2017-11-16 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * x-faces.el (x-library-search-path):
+ Update this variable to include share/ subdirectories of all the
+ potential prefixes, since rgb.txt is usually now in share/X11.
+ * x-faces.el (x-color-list-internal):
+ Use #'canoncase, not #'downcase when adding completion for the
+ lowercase form, avoiding problems with Turkish locales.
+
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* mule/cyrillic.el ("Cyrillic-ISO"):
diff -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 -r 405c07ae230be01c54b036bab07d0c684f3f15d6 lisp/x-faces.el
--- a/lisp/x-faces.el
+++ b/lisp/x-faces.el
@@ -575,28 +575,36 @@
;; Ben wanted all of the possibilities from the `configure' script used
;; here, but I think this is way too many. I already trimmed the R4 variants
;; and a few obvious losers from the list. --Stig
-(defvar x-library-search-path '("/usr/X11R6/lib/X11/"
- "/usr/X11R5/lib/X11/"
- "/usr/lib/X11R6/X11/"
- "/usr/lib/X11R5/X11/"
- "/usr/local/X11R6/lib/X11/"
- "/usr/local/X11R5/lib/X11/"
- "/usr/local/lib/X11R6/X11/"
- "/usr/local/lib/X11R5/X11/"
- "/usr/X11/lib/X11/"
- "/usr/lib/X11/"
- "/usr/share/X11/"
- "/usr/local/lib/X11/"
- "/usr/local/share/X11/"
- "/usr/X386/lib/X11/"
- "/usr/x386/lib/X11/"
- "/usr/XFree86/lib/X11/"
- "/usr/unsupported/lib/X11/"
- "/usr/athena/lib/X11/"
- "/usr/local/x11r5/lib/X11/"
- "/usr/lpp/Xamples/lib/X11/"
- "/usr/openwin/lib/X11/"
- "/usr/openwin/share/lib/X11/")
+(defvar x-library-search-path
+ (mapcan #'(lambda (path)
+ (let (search)
+ (list* path (when (setq search (search "/lib/" path))
+ `(,(concat (subseq path 0 search)
+ ;; Newer X11 stores rgb.txt in
+ ;; share/, not lib/.
+ "/share/"
+ (subseq path
+ (+ search
+ (length "/lib/")))))))))
+ '("/usr/X11R6/lib/X11/"
+ "/usr/X11R5/lib/X11/"
+ "/usr/lib/X11R6/X11/"
+ "/usr/lib/X11R5/X11/"
+ "/usr/local/X11R6/lib/X11/"
+ "/usr/local/X11R5/lib/X11/"
+ "/usr/local/lib/X11R6/X11/"
+ "/usr/local/lib/X11R5/X11/"
+ "/usr/X11/lib/X11/"
+ "/usr/lib/X11/"
+ "/usr/local/lib/X11/"
+ "/usr/X386/lib/X11/"
+ "/usr/x386/lib/X11/"
+ "/usr/XFree86/lib/X11/"
+ "/usr/unsupported/lib/X11/"
+ "/usr/athena/lib/X11/"
+ "/usr/local/x11r5/lib/X11/"
+ "/usr/lpp/Xamples/lib/X11/"
+ "/usr/openwin/lib/X11/"))
"Search path used by `x-color-list-internal' to find rgb.txt.")
(defvar x-color-list-internal-cache)
@@ -608,6 +616,13 @@
;; strings as the TTY code does, and as expected by r-c-c-t.
;; -- sjt 2007-10-06
+;; Our completion no longer requires a list of lists, a list of strings is
+;; fine, and #'read-color just uses the output of #'color-list, which on X11
+;; becomes the value of the variable
+;; `x-color-list-internal-cache'. #'read-color-completion-table is still
+;; around for compatibility with facemenu.el in the packages, which needs that
+;; approach to be compatible with 21.4. Aidan Kehoe, 20171116.
+
;; This function is probably also used by the GTK platform. Cf.
;; gtk_color_list in src/fontcolor-gtk.c.
(defun x-color-list-internal ()
@@ -633,7 +648,7 @@
clist (cons color clist))
;; Ugh. If we want to be able to complete the lowercase form
;; of the color name, we need to add it twice! Yuck.
- (let ((dcase (downcase color)))
+ (let ((dcase (canoncase color)))
(or (string= dcase color)
(push dcase clist)))
(forward-char 1))
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: kehoea: Be more general in checking for ASLR, Linux,
Darwin.
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/1f4ff44e1657/
Changeset: 1f4ff44e1657
User: kehoea
Date: 2017-11-15 23:05:39+00:00
Summary: Be more general in checking for ASLR, Linux, Darwin.
ChangeLog addition:
2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
* configure: Regenerate.
* configure.ac:
Take a more general approach to checking for ASLR; check for the
technique itself initially, don't just examine the operating
system or the compile-time #defines. Then to work around it try a
list of techniques, using the first one that compiles.
This may bring an end to the XEmacs tradition of a single-line
configure.ac commit every time a new Mac OS version is released.
src/ChangeLog addition:
2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
* Makefile.in.in ($(RAW_EXE)):
Place $start_flags after $ldflags in this make target, for that
minority of cases where the user has specified LDFLAGS and,
e.g. -no-pie in $start_flags is necessary to build.
Affected #: 5 files
diff -r 1a2f697b59a7e7443133636304f4dd62c5303120 -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * configure: Regenerate.
+ * configure.ac:
+ Take a more general approach to checking for ASLR; check for the
+ technique itself initially, don't just examine the operating
+ system or the compile-time #defines. Then to work around it try a
+ list of techniques, using the first one that compiles.
+
+ This may bring an end to the XEmacs tradition of a single-line
+ configure.ac commit every time a new Mac OS version is released.
+
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* configure: Regenerate.
diff -r 1a2f697b59a7e7443133636304f4dd62c5303120 -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 configure
--- a/configure
+++ b/configure
@@ -824,7 +824,6 @@
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -1111,7 +1110,6 @@
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1364,15 +1362,6 @@
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1510,7 +1499,7 @@
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1663,7 +1652,6 @@
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11826,7 +11814,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11872,7 +11860,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11896,7 +11884,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11941,7 +11929,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11965,7 +11953,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12261,14 +12249,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ASLR needs to be disabled" >&5
$as_echo_n "checking whether ASLR needs to be disabled... " >&6; }
-case `uname -s`:`uname -r` in
- Darwin:1[123456].*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- start_flags="$start_flags -Wl,-no_pie" && if test "$verbose" = "yes"; then echo " Appending \"-Wl,-no_pie\" to \$start_flags"; fi
- ;;
- *)
- if test "$cross_compiling" = yes; then :
+if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -12276,43 +12257,43 @@
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-int main () {
-#if defined __GNUC__ && defined __pie__
- return __pie__;
-#else
- return 0;
-#endif
-}
+#include <stdio.h>
+static int test_func(void) { return 42; }
+int main (int c, char **v) { if (--c) { printf ("%p", &test_func); } return 0; }
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-else
- __pie__="$?";
-case "$__pie__" in
- 2)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, disabling -fPIE" >&5
-$as_echo "yes, disabling -fPIE" >&6; }
- start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
- ;;
- 1)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, disabling -fpie" >&5
-$as_echo "yes, disabling -fpie" >&6; }
- start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie" >&5
-$as_echo "$as_me: WARNING: unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie" >&2;}
- start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
- ;;
-esac
+ test_func_address=`./conftest t`
+if test "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t`; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ else
+ for try_no_pie in "-no-pie" "-Wl,-no_pie" "-nopie"; do
+ xe_check_libs="${try_no_pie}"
+ if ac_fn_c_try_link "$LINENO"; then :
+ no_pie="${try_no_pie}"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ xe_check_libs=""
+ if test -n "$no_pie"; then
+ start_flags="$start_flags $no_pie" && if test "$verbose" = "yes"; then echo " Appending \"$no_pie\" to \$start_flags"; fi
+ break;
+ fi
+ done
+ if test -z "$no_pie"; then
+ as_fn_error $? "don't know how to disable ASLR on $ac_cv_build" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, disabling address space layout randomization, xemacs binary" >&5
+$as_echo "yes, disabling address space layout randomization, xemacs binary" >&6; }
+ fi
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- ;;
-esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for specified window system" >&5
diff -r 1a2f697b59a7e7443133636304f4dd62c5303120 -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -2839,45 +2839,43 @@
fi
fi
-dnl Disable ASLR on systems where it breaks pdump. Use $start_flags for this
-dnl rather than $LDFLAGS, so it's only done for the XEmacs binary, and
+dnl Disable ASLR on systems where it breaks pdump. Use start_flags for this
+dnl rather than LDFLAGS, so it's only done for the XEmacs binary, and
dnl gnuclient, movemail and so on get ASLR if the system defaults to it.
-AC_MSG_CHECKING([whether ASLR needs to be disabled])
-case `uname -s`:`uname -r` in
- dnl Mac OS X 10.7 Lion, 10.8 Mountain Lion, 10.9 Mavericks,
- dnl 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra
- Darwin:1[[123456]].*)
- AC_MSG_RESULT(yes)
- XE_APPEND([-Wl,-no_pie], start_flags)
- ;;
- *)
- AC_RUN_IFELSE([AC_LANG_SOURCE([int main () {
-#if defined __GNUC__ && defined __pie__
- return __pie__;
-#else
- return 0;
-#endif
-}])], [AC_MSG_RESULT(no)],
-[__pie__="$?";
-case "$__pie__" in
- 2)
- AC_MSG_RESULT([yes, disabling -fPIE])
- dnl We need to do this after the XE_PROTECT_LINKER_FLAGS() call,
- dnl above. On Debian 9.2 Stretch the linker does not recognise
- dnl -no-pie, it needs to be handled by the GCC invocation.
- XE_APPEND([-no-pie], start_flags)
- ;;
- 1)
- AC_MSG_RESULT([yes, disabling -fpie])
- XE_APPEND([-no-pie], start_flags)
- ;;
- *)
- AC_MSG_WARN([unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie])
- XE_APPEND([-no-pie], start_flags)
- ;;
-esac])
- ;;
-esac
+AC_MSG_CHECKING([whether ASLR needs to be disabled])
+AC_RUN_IFELSE([AC_LANG_SOURCE([#include <stdio.h>
+static int test_func(void) { return 42; }
+int main (int c, char **v) { if (--c) { printf ("%p", &test_func); } return 0; }])],
+[test_func_address=`./conftest t`
+if test "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t` \
+ -a "$test_func_address" = `./conftest t`; then
+ dnl If your implementation of ASLR gives the same address for the same
+ dnl function five times in a row within the lifetime of the universe,
+ dnl your implementation of ASLR needs significant revision.
+ dnl (Yes, yes, if someone sat down and ran ./configure a huge number of
+ dnl times on XEmacs code with the intention of making this give the wrong
+ dnl answer, they might manage it, but there is no payoff for doing this.)
+ AC_MSG_RESULT(no)
+ else
+ for try_no_pie in "-no-pie" "-Wl,-no_pie" "-nopie"; do
+ xe_check_libs="${try_no_pie}"
+ AC_LINK_IFELSE([], no_pie="${try_no_pie}")
+ xe_check_libs=""
+ if test -n "$no_pie"; then
+ dnl Don't be tempted to apply XE_PROTECT_LINKER_FLAGS() to this.
+ dnl On Debian 9.2 Stretch the linker does not recognise -no-pie, it
+ dnl needs to be handled by the GCC invocation.
+ XE_APPEND($no_pie, start_flags)
+ break;
+ fi
+ done
+ if test -z "$no_pie"; then
+ AC_MSG_ERROR([don't know how to disable ASLR on $ac_cv_build])
+ fi
+ AC_MSG_RESULT([yes, disabling address space layout randomization, xemacs binary])
+ fi])
dnl ----------------------
dnl Choose a window system
diff -r 1a2f697b59a7e7443133636304f4dd62c5303120 -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * Makefile.in.in ($(RAW_EXE)):
+ Place $start_flags after $ldflags in this make target, for that
+ minority of cases where the user has specified LDFLAGS and,
+ e.g. -no-pie in $start_flags is necessary to build.
+
2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
* specifier.c (print_specifier):
diff -r 1a2f697b59a7e7443133636304f4dd62c5303120 -r 1f4ff44e16576d064e9f7955ae59ce86428fd635 src/Makefile.in.in
--- a/src/Makefile.in.in
+++ b/src/Makefile.in.in
@@ -544,7 +544,7 @@
#if !defined(PDUMP) || !defined(DUMP_IN_EXEC) || defined(WIN32_NATIVE)
$(RAW_EXE): $(link_deps) $(DUMP_ID)
- $(LD) $(start_flags) $(ldflags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) $(LIBES)
+ $(LD) $(ldflags) $(start_flags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) $(LIBES)
#else
$(RAW_EXE): $(link_deps) $(DUMP_ID)
if test -f dump-size ; then \
@@ -552,7 +552,7 @@
else \
$(CC) -c $(cflags) -DMAX_SIZE=0 $(SRC)/dump-data.c ;\
fi
- $(LD) $(start_flags) $(ldflags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) dump-data.o $(LIBES)
+ $(LD) $(ldflags) $(start_flags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) dump-data.o $(LIBES)
#endif
## (3) Update the .elc's needed for dumping
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: kehoea: Don't blow the stack when printing recursive
spec-lists, print_specifier()
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/1a2f697b59a7/
Changeset: 1a2f697b59a7
User: kehoea
Date: 2017-11-15 00:44:17+00:00
Summary: Don't blow the stack when printing recursive spec-lists, print_specifier()
src/ChangeLog addition:
2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
* specifier.c (print_specifier):
Cons less when printing the spec-list of a specifier, avoiding
stack overflow with recursive specifiers due to the COPY_TREE_P
argument passed by #'specifier-specs to
specifier_get_external_inst_list().
Thank you for the bug report, Raymond Toy!
Affected #: 2 files
diff -r 00726cf7425524d7ad434590c8594ae05ee4eda4 -r 1a2f697b59a7e7443133636304f4dd62c5303120 src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
+2017-11-15 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * specifier.c (print_specifier):
+ Cons less when printing the spec-list of a specifier, avoiding
+ stack overflow with recursive specifiers due to the COPY_TREE_P
+ argument passed by #'specifier-specs to
+ specifier_get_external_inst_list().
+ Thank you for the bug report, Raymond Toy!
+
2017-11-13 Aidan Kehoe <kehoea(a)parhasard.net>
* bytecode.c (bytecode_arithcompare):
diff -r 00726cf7425524d7ad434590c8594ae05ee4eda4 -r 1a2f697b59a7e7443133636304f4dd62c5303120 src/specifier.c
--- a/src/specifier.c
+++ b/src/specifier.c
@@ -269,12 +269,18 @@
}
}
+static Lisp_Object specifier_get_external_inst_list (Lisp_Object specifier,
+ Lisp_Object locale,
+ enum spec_locale_type,
+ Lisp_Object tag_set,
+ int exact_p,
+ int short_p,
+ int copy_tree_p);
+
static void
-print_specifier (Lisp_Object obj, Lisp_Object printcharfun,
- int UNUSED (escapeflag))
+print_specifier (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag)
{
Lisp_Specifier *sp = XSPECIFIER (obj);
- int count = specpdl_depth ();
Lisp_Object the_specs;
if (print_readably)
@@ -289,17 +295,36 @@
specbind (Qprint_string_length, make_fixnum (100));
specbind (Qprint_length, make_fixnum (5));
#endif
- the_specs = Fspecifier_specs (obj, Qglobal, Qnil, Qnil);
+
+ /* This is preferable to calling Fspecifier_specs() because we can specify
+ COPY_TREE_P as zero, avoiding copying possibly-recursive structures. See
+ Raymond Toye's bug report of
+ https://mid.xemacs.org/CAG14z1F7b90rt22P-XXjk+0qT42DrS6E=OAcUSekqoPsQnD9a...
+
+ specifier_get_external_inst_list() does cons, even with a zero
+ COPY_TREE_P, but that's OK, in exchange for that we get the short form
+ when appropriate, and the instance list has been checked for circularity
+ when it was specified initially, we won't blow the stack with it. */
+ the_specs = specifier_get_external_inst_list (obj, Qglobal, LOCALE_GLOBAL,
+ Qnil, 0, 1, 0);
if (NILP (the_specs))
- /* there are no global specs */
- write_ascstring (printcharfun, "<unspecified>");
+ {
+ /* there are no global specs */
+ write_ascstring (printcharfun, "<unspecified>");
+ }
else
- print_internal (the_specs, printcharfun, 1);
+ {
+ /* print_internal() does its own circularity checking, we don't have
+ to. */
+ print_internal (the_specs, printcharfun, escapeflag);
+ }
+
if (!NILP (sp->fallback))
{
- write_fmt_string_lisp (printcharfun, " fallback=%S", sp->fallback);
+ write_ascstring (printcharfun, " fallback=");
+ print_internal (sp->fallback, printcharfun, escapeflag);
}
- unbind_to (count);
+
write_fmt_string (printcharfun, " 0x%x>", LISP_OBJECT_UID (obj));
}
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: kehoea: Detect and disable ASLR for pdump on Linux as
well as on Darwin.
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/00726cf74255/
Changeset: 00726cf74255
User: kehoea
Date: 2017-11-14 22:13:17+00:00
Summary: Detect and disable ASLR for pdump on Linux as well as on Darwin.
ChangeLog addition:
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* configure: Regenerate.
* configure.ac:
Detect and disable ASLR on Linux as well as on Darwin, it doesn't
work with our approach to dumping.
Limit this to the main xemacs binary, not movemail, gnuclient and so
on.
Affected #: 3 files
diff -r c9a5d4d11d27e7a49923301f859f1f146b47dda6 -r 00726cf7425524d7ad434590c8594ae05ee4eda4 ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * configure: Regenerate.
+ * configure.ac:
+ Detect and disable ASLR on Linux as well as on Darwin, it doesn't
+ work with our approach to dumping.
+ Limit this to the main xemacs binary, not movemail, gnuclient and so
+ on.
+
2017-11-07 Aidan Kehoe <kehoea(a)parhasard.net>
* configure.ac (XE_COMPLEX_ARG):
diff -r c9a5d4d11d27e7a49923301f859f1f146b47dda6 -r 00726cf7425524d7ad434590c8594ae05ee4eda4 configure
--- a/configure
+++ b/configure
@@ -12265,10 +12265,53 @@
Darwin:1[123456].*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- LDFLAGS="$LDFLAGS -Wl,-no_pie" && if test "$verbose" = "yes"; then echo " Appending \"-Wl,-no_pie\" to \$LDFLAGS"; fi
+ start_flags="$start_flags -Wl,-no_pie" && if test "$verbose" = "yes"; then echo " Appending \"-Wl,-no_pie\" to \$start_flags"; fi
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; } ;;
+ *)
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main () {
+#if defined __GNUC__ && defined __pie__
+ return __pie__;
+#else
+ return 0;
+#endif
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ __pie__="$?";
+case "$__pie__" in
+ 2)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, disabling -fPIE" >&5
+$as_echo "yes, disabling -fPIE" >&6; }
+ start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
+ ;;
+ 1)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, disabling -fpie" >&5
+$as_echo "yes, disabling -fpie" >&6; }
+ start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie" >&5
+$as_echo "$as_me: WARNING: unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie" >&2;}
+ start_flags="$start_flags -no-pie" && if test "$verbose" = "yes"; then echo " Appending \"-no-pie\" to \$start_flags"; fi
+ ;;
+esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ ;;
esac
diff -r c9a5d4d11d27e7a49923301f859f1f146b47dda6 -r 00726cf7425524d7ad434590c8594ae05ee4eda4 configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -2839,16 +2839,44 @@
fi
fi
-dnl Disable ASLR on systems where it breaks pdump.
+dnl Disable ASLR on systems where it breaks pdump. Use $start_flags for this
+dnl rather than $LDFLAGS, so it's only done for the XEmacs binary, and
+dnl gnuclient, movemail and so on get ASLR if the system defaults to it.
AC_MSG_CHECKING([whether ASLR needs to be disabled])
case `uname -s`:`uname -r` in
dnl Mac OS X 10.7 Lion, 10.8 Mountain Lion, 10.9 Mavericks,
dnl 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra
Darwin:1[[123456]].*)
AC_MSG_RESULT(yes)
- XE_APPEND([-Wl,-no_pie], LDFLAGS)
+ XE_APPEND([-Wl,-no_pie], start_flags)
;;
- *) AC_MSG_RESULT(no) ;;
+ *)
+ AC_RUN_IFELSE([AC_LANG_SOURCE([int main () {
+#if defined __GNUC__ && defined __pie__
+ return __pie__;
+#else
+ return 0;
+#endif
+}])], [AC_MSG_RESULT(no)],
+[__pie__="$?";
+case "$__pie__" in
+ 2)
+ AC_MSG_RESULT([yes, disabling -fPIE])
+ dnl We need to do this after the XE_PROTECT_LINKER_FLAGS() call,
+ dnl above. On Debian 9.2 Stretch the linker does not recognise
+ dnl -no-pie, it needs to be handled by the GCC invocation.
+ XE_APPEND([-no-pie], start_flags)
+ ;;
+ 1)
+ AC_MSG_RESULT([yes, disabling -fpie])
+ XE_APPEND([-no-pie], start_flags)
+ ;;
+ *)
+ AC_MSG_WARN([unrecognized __pie__ define $__pie__, attempting to disable ASLR with -no-pie])
+ XE_APPEND([-no-pie], start_flags)
+ ;;
+esac])
+ ;;
esac
dnl ----------------------
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: kehoea: Remove `cyril-util' from the features list,
Cyrillic language environments
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/c9a5d4d11d27/
Changeset: c9a5d4d11d27
User: kehoea
Date: 2017-11-14 14:44:50+00:00
Summary: Remove `cyril-util' from the features list, Cyrillic language environments
lisp/ChangeLog addition:
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* mule/cyrillic.el ("Cyrillic-ISO"):
* mule/cyrillic.el ("Russian"):
* mule/cyrillic.el ("Cyrillic-ALT"):
Remove cyril-util from the features list of these language
environments; `standard-display-cyrillic-translit' is the only
function in that file, and it has an autoload entry
already. Removing it from the features list is helpful in buildbot
tests without installed packages.
Affected #: 2 files
diff -r e1cbc6ba2a96755e8a1abdf7956dc9eb52583f34 -r c9a5d4d11d27e7a49923301f859f1f146b47dda6 lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * mule/cyrillic.el ("Cyrillic-ISO"):
+ * mule/cyrillic.el ("Russian"):
+ * mule/cyrillic.el ("Cyrillic-ALT"):
+ Remove cyril-util from the features list of these language
+ environments; `standard-display-cyrillic-translit' is the only
+ function in that file, and it has an autoload entry
+ already. Removing it from the features list is helpful in buildbot
+ tests without installed packages.
+
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* gutter-items.el (buffers-tab-items):
diff -r e1cbc6ba2a96755e8a1abdf7956dc9eb52583f34 -r c9a5d4d11d27e7a49923301f859f1f146b47dda6 lisp/mule/cyrillic.el
--- a/lisp/mule/cyrillic.el
+++ b/lisp/mule/cyrillic.el
@@ -116,7 +116,6 @@
(native-coding-system iso-8859-5)
(coding-priority iso-8859-5)
(input-method . "cyrillic-yawerty")
- (features cyril-util)
(sample-text . "Russian (Русский) Здравствуйте!")
(documentation . "Support for Cyrillic ISO-8859-5."))
'("Cyrillic"))
@@ -148,7 +147,6 @@
(coding-priority koi8-r)
(invalid-sequence-coding-system koi8-r)
(input-method . "cyrillic-yawerty")
- (features cyril-util)
(locale "ru")
(mswindows-locale . "RUSSIAN")
(tutorial . "TUTORIAL.ru")
@@ -235,7 +233,6 @@
(invalid-sequence-coding-system alternativnyj)
(coding-priority alternativnyj)
(input-method . "cyrillic-yawerty")
- (features cyril-util)
(tutorial . "TUTORIAL.ru")
(sample-text . "Russian (Русский) Здравствуйте!")
(documentation . "Support for Cyrillic ALTERNATIVNYJ."))
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: kehoea: Add a missing parenthesis, #'buffers-tab-items
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/fe1fc53d8443/
Changeset: fe1fc53d8443
User: kehoea
Date: 2017-11-14 08:44:02+00:00
Summary: Add a missing parenthesis, #'buffers-tab-items
lisp/ChangeLog addition:
2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
* gutter-items.el (buffers-tab-items):
Add a missing parenthesis after Stephen's last change, get things
building again.
Affected #: 2 files
diff -r 851f226f20f264da38cd53aad17a5a842f5d984f -r fe1fc53d8443e8952d7eac9a9a1fc39f36f04c2f lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-14 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * gutter-items.el (buffers-tab-items):
+ Add a missing parenthesis after Stephen's last change, get things
+ building again.
+
2017-11-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* gutter-items.el (buffers-tab-items):
diff -r 851f226f20f264da38cd53aad17a5a842f5d984f -r fe1fc53d8443e8952d7eac9a9a1fc39f36f04c2f lisp/gutter-items.el
--- a/lisp/gutter-items.el
+++ b/lisp/gutter-items.el
@@ -298,7 +298,7 @@
tail)
(and (> n 0)
(setf tail (nthcdr n buffers)) ;; Length greater than (1+ n)?
- (setf (cdr tail) nil)))
+ (setf (cdr tail) nil))))
(labels
((build-buffers-tab-internal (buffers)
"Convert BUFFERS to a list of structures used by the tab widget."
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: stephen_at_xemacs: Improve docstring of
#'save-current-buffer.
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/851f226f20f2/
Changeset: 851f226f20f2
User: stephen_at_xemacs
Date: 2017-11-14 06:32:16+00:00
Summary: Improve docstring of #'save-current-buffer.
Affected #: 2 files
diff -r 266b49192d351d854866fc29569e5d55d563e489 -r 851f226f20f264da38cd53aad17a5a842f5d984f src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -3010,6 +3010,10 @@
Small bugfix, recognise that a trailing sign excludes a symbol
from potentially having number syntax.
+2016-01-19 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * editfns.c (Fsave_current_buffer): Improve docstring.
+
2015-06-22 Michael Sperber <mike(a)xemacs.org>
* redisplay-xlike-inc.c (XFT_FROB_LISP_COLOR): Use
diff -r 266b49192d351d854866fc29569e5d55d563e489 -r 851f226f20f264da38cd53aad17a5a842f5d984f src/editfns.c
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -394,7 +394,7 @@
DEFUN ("save-current-buffer", Fsave_current_buffer, 0, UNEVALLED, 0, /*
Save the current buffer; execute BODY; restore the current buffer.
-Executes BODY just like `progn'.
+Returns value of last expression of BODY, like `progn'.
arguments: (&rest BODY)
*/
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: stephen_at_xemacs: Fix @itemize group.
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/266b49192d35/
Changeset: 266b49192d35
User: stephen_at_xemacs
Date: 2017-11-14 06:25:17+00:00
Summary: Fix @itemize group.
Affected #: 2 files
diff -r a9091c0055178eb4580366fb3afc912e3d7f5ba5 -r 266b49192d351d854866fc29569e5d55d563e489 man/ChangeLog
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,7 @@
+2017-11-14 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * lispref/faces.texi (Face Properties): Add items to itemize.
+
2017-04-19 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/buffers.texi (Buffer Names):
diff -r a9091c0055178eb4580366fb3afc912e3d7f5ba5 -r 266b49192d351d854866fc29569e5d55d563e489 man/lispref/faces.texi
--- a/man/lispref/faces.texi
+++ b/man/lispref/faces.texi
@@ -218,16 +218,19 @@
to this property can be supplied in many different ways:
@itemize @bullet
+@item
If @var{value} is a simple instantiator (e.g. a string naming a font or
color) or a list of instantiators, then the instantiator(s) will be
added as a specification of the property for the given @var{locale}
(which defaults to @code{global} if omitted).
+@item
If @var{value} is a list of specifications (each of which is a cons of a
locale and a list of instantiators), then @var{locale} must be
@code{nil} (it does not make sense to explicitly specify a locale in
this case), and specifications will be added as given.
+@item
If @var{value} is a specifier (as would be returned by
@code{face-property} if no @var{locale} argument is given), then some or
all of the specifications in the specifier will be added to the
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
commit/XEmacs: stephen_at_xemacs: Fix typos in comments.
7 years, 1 month
Bitbucket
1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/a9091c005517/
Changeset: a9091c005517
User: stephen_at_xemacs
Date: 2017-11-14 05:25:45+00:00
Summary: Fix typos in comments.
Affected #: 2 files
diff -r d58b1c68ec10a5f5c29361ec82f9376a4073662d -r a9091c0055178eb4580366fb3afc912e3d7f5ba5 src/alloc.c
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3499,7 +3499,7 @@
/* Build a string whose content is a translatable message, and translate
the message according to the current language environment.
String must be pure-ASCII, and when compiled with error-checking,
- an abort will have if not pure-ASCII. */
+ an abort will happen if not pure-ASCII. */
Lisp_Object
build_msg_ascstring (const Ascbyte *str)
diff -r d58b1c68ec10a5f5c29361ec82f9376a4073662d -r a9091c0055178eb4580366fb3afc912e3d7f5ba5 src/lisp.h
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1040,7 +1040,7 @@
DECLARE_BAD_INTCLASS_ARITH_COMPARE (bytecl, Membpos) \
DECLARE_BAD_INTCLASS_ARITH_COMPARE (bytecl, Memxpos)
-/* Declare the "bad" or disallowed arithmetic and comparion operations
+/* Declare the "bad" or disallowed arithmetic and comparison operations
between class BYTECL (a mem class) and various non-mem classes.
Meant to go inside the private section of class GOOD. */
@@ -1798,6 +1798,7 @@
#define FIXNUM_VALBITS (BITS_PER_EMACS_INT - FIXNUM_GCBITS)
#define VALBITS (BITS_PER_EMACS_INT - GCBITS)
+/* #### Does this actually work? EMACS_INT might be "long long"! */
#define MOST_POSITIVE_FIXNUM_UNSIGNED ((1UL << (FIXNUM_VALBITS - 1)) -1UL)
#define MOST_POSITIVE_FIXNUM ((EMACS_INT) MOST_POSITIVE_FIXNUM_UNSIGNED)
#define MOST_NEGATIVE_FIXNUM (-(MOST_POSITIVE_FIXNUM) - 1)
Repository URL: https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.