1.Integrate some bugfixes from upstream cvs:

* Increase MAX_FONT_COUNT from 5000 to INT_MAX. Applies to both the X
  and GTK platforms.
* Improve Russian C-x processing.
* More mule-ization and fix related crashes.
* Call set-current-locale (the wrapper for setlocale(3)) before
  checking the current locale, because the C code doesn't.
* Initialise the hardware-specific mapping from raw keycodes to the
  US key layout.
2.Fix pkg-plist.

Reported by:	pointyhat(kris) (2)
This commit is contained in:
Andrey Slusar 2006-02-02 13:28:42 +00:00
parent ef8b205c12
commit 9581a84d10
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=155072
9 changed files with 246 additions and 41 deletions

View file

@ -7,7 +7,7 @@
PORTNAME= xemacs-devel-mule
PORTVERSION= ${XEMACS_VER:S/-/./}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES+= editors
MASTER_SITES= ${MASTER_SITE_XEMACS}
MASTER_SITE_SUBDIR= xemacs-${XEMACS_REL}

View file

@ -0,0 +1,28 @@
Index: cmdloop.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/cmdloop.el,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- lisp/cmdloop.el 2005/06/26 18:04:49 1.18
+++ lisp/cmdloop.el 2006/01/08 20:00:43 1.19
@@ -579,7 +579,8 @@
(setq char (aref translated 0)))))
(cond ((null char))
((not (characterp char))
- (setq unread-command-events (list char)
+ ;; XEmacs change; event instead of char.
+ (setq unread-command-events (list event)
done t))
; ((/= (logand char ?\M-\^@) 0)
; ;; Turn a meta-character into a character with the 0200 bit set.
@@ -598,7 +599,8 @@
((and (not first) (eq char ?\C-m))
(setq done t))
((not first)
- (setq unread-command-events (list char)
+ ;; XEmacs change; event instead of char.
+ (setq unread-command-events (list event)
done t))
(t (setq code (char-to-int char)
done t)))

View file

@ -0,0 +1,57 @@
Index: src/dynarr.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/dynarr.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- src/dynarr.c 2005/11/25 01:41:59 1.13
+++ src/dynarr.c 2006/01/20 17:59:50 1.14
@@ -129,16 +129,17 @@
static int Dynarr_min_size = 8;
static void
-Dynarr_realloc (Dynarr *dy, Bytecount new_size)
+Dynarr_realloc (Dynarr *dy, int new_size)
{
if (DUMPEDP (dy->base))
{
void *new_base = malloc (new_size);
- memcpy (new_base, dy->base, dy->max > new_size ? dy->max : new_size);
+ memcpy (new_base, dy->base,
+ (dy->max < new_size ? dy->max : new_size) * dy->elsize);
dy->base = new_base;
}
else
- dy->base = xrealloc (dy->base, new_size);
+ dy->base = xrealloc (dy->base, new_size * dy->elsize);
}
void *
@@ -158,13 +159,13 @@
Dynarr);
static void
-Dynarr_lisp_realloc (Dynarr *dy, Elemcount new_size)
+Dynarr_lisp_realloc (Dynarr *dy, int new_size)
{
void *new_base = alloc_lrecord_array (dy->elsize, new_size, dy->lisp_imp);
void *old_base = dy->base;
if (dy->base)
memcpy (new_base, dy->base,
- (dy->max > new_size ? dy->max : new_size) * dy->elsize);
+ (dy->max < new_size ? dy->max : new_size) * dy->elsize);
dy->base = new_base;
if (old_base)
mc_free (old_base);
@@ -205,9 +206,9 @@
if (dy->lisp_imp)
Dynarr_lisp_realloc (dy, newsize);
else
- Dynarr_realloc (dy, newsize*dy->elsize);
+ Dynarr_realloc (dy, newsize);
#else /* not NEW_GC */
- Dynarr_realloc (dy, newsize*dy->elsize);
+ Dynarr_realloc (dy, newsize);
#endif /* not NEW_GC */
dy->max = newsize;
}

View file

@ -0,0 +1,34 @@
Index: lisp/mule/mule-cmds.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/mule/mule-cmds.el,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- lisp/mule/mule-cmds.el 2005/12/17 19:47:00 1.26
+++ lisp/mule/mule-cmds.el 2005/12/24 21:59:21 1.27
@@ -1341,12 +1341,19 @@
;; locale but we should still use the right code page, etc.
(declare-fboundp (mswindows-set-current-locale userdef)))
;; Unix:
- (let ((locstring (current-locale)))
- ;; assume C lib locale and LANG env var are set correctly. use
- ;; them to find the langenv.
- (setq langenv
- (and locstring (get-language-environment-from-locale
- locstring)))))
+ (let (locstring)
+ ;; Init the POSIX locale from the environment--this calls the C
+ ;; library's setlocale(3).
+ (set-current-locale "")
+ ;; Can't let locstring be the result of (set-current-locale "")
+ ;; because that can return a more detailed string than we know how
+ ;; to handle.
+ (setq locstring (current-locale)
+ ;; assume C lib locale and LANG env var are set correctly.
+ ;; use them to find the langenv.
+ langenv
+ (and locstring (get-language-environment-from-locale
+ locstring)))))
;; All systems:
(unless langenv (setq langenv "English"))
(setq current-language-environment langenv)

View file

@ -0,0 +1,28 @@
Index: src/objects-gtk.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/objects-gtk.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- src/objects-gtk.c 2005/01/28 02:58:51 1.16
+++ src/objects-gtk.c 2005/12/24 17:33:34 1.17
@@ -485,8 +485,7 @@
/* X Specific stuff */
#include <X11/Xatom.h>
-/* Unbounded, for sufficiently small values of infinity... */
-#define MAX_FONT_COUNT 5000
+#define MAX_FONT_COUNT INT_MAX
#ifdef MULE
/* find a font spec that matches font spec FONT and also matches
@@ -536,9 +535,6 @@
return result;
}
#endif /* MULE */
-
-/* Unbounded, for sufficiently small values of infinity... */
-#define MAX_FONT_COUNT 5000
static int
valid_font_name_p (Display *dpy, char *name)

View file

@ -1,12 +1,34 @@
Index: objects-x.c
Index: src/objects-x.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/objects-x.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
retrieving revision 1.36
diff -u -r1.30 -r1.36
--- src/objects-x.c 2005/11/26 18:25:03 1.30
+++ src/objects-x.c 2005/12/20 22:01:52 1.31
@@ -1175,7 +1175,7 @@
+++ src/objects-x.c 2006/01/20 17:50:46 1.36
@@ -693,8 +693,9 @@
return result;
}
-/* Unbounded, for sufficiently small values of infinity... */
-#define MAX_FONT_COUNT 5000
+/* XListFonts doesn't allocate memory unconditionally based on this. (For
+ XFree86 in 2005, at least. */
+#define MAX_FONT_COUNT INT_MAX
static Extbyte *
truename_via_XListFonts (Display *dpy, Extbyte *font_name)
@@ -807,7 +808,8 @@
FcChar8 *res = FcNameUnparse (FONT_INSTANCE_X_XFTFONT (f)->pattern);
if (res)
{
- FONT_INSTANCE_TRUENAME (f) = make_string (res, strlen (res));
+ FONT_INSTANCE_TRUENAME (f) =
+ build_ext_string (res, Qxft_font_name_encoding);
free (res);
return FONT_INSTANCE_TRUENAME (f);
}
@@ -1175,7 +1177,7 @@
Extbyte **names;
int count = 0;
const Extbyte *patternext;
@ -15,3 +37,13 @@ diff -u -r1.30 -r1.31
int i;
/* #### with Xft need to handle second stage here -- sjt
@@ -1441,7 +1443,8 @@
if (x_font_spec_matches_charset (XDEVICE (device), charset,
intname, Qnil, 0, -1, 0))
{
- result = make_string (intname, intlen);
+ result = build_ext_string ((const Extbyte *) intname,
+ Qx_font_name_encoding);
break;
}
}

View file

@ -0,0 +1,46 @@
Index: lisp/x-win-xfree86.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/x-win-xfree86.el,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- lisp/x-win-xfree86.el 2001/05/04 22:42:19 1.5
+++ lisp/x-win-xfree86.el 2005/12/24 19:53:53 1.6
@@ -46,6 +46,37 @@
;;;###autoload
(defun x-win-init-xfree86 ()
+
+ ;; We know this keyboard is an XFree86 keyboard. As such, we can predict
+ ;; what key scan codes will correspond to the keys on US keyboard layout,
+ ;; and we can use that information to fall back to the US layout when
+ ;; looking up commands that would otherwise fail. (Cf. the hard-coding of
+ ;; this information in /usr/X11R6/lib/X11/xkb/keycodes/xfree86 )
+ ;;
+ ;; These settings for x-us-keymap-first-keycode and
+ ;; x-us-keymap-description were determined with
+ ;;
+ ;; setxkbmap us
+ ;; xmodmap -pke > keyboard-description.txt
+ ;;
+ ;; "8" is the key code of the first line, x-us-keymap-description is
+ ;; taken from the column describing the bindings.
+
+ (setq x-us-keymap-first-keycode 8
+ x-us-keymap-description
+ [nil nil [?1 ?!] [?2 ?@] [?3 ?\#] [?4 ?$] [?5 ?%] [?6 ?^] [?7 ?&]
+ [?8 ?*] [?9 ?\(] [?0 ?\)] [?- ?_] [?= ?+] nil ?\t [?q ?Q]
+ [?w ?W] [?e ?E] [?r ?R] [?t ?T] [?y ?Y] [?u ?U] [?i ?I] [?o ?O]
+ [?p ?P] [?\[ ?{] [?\] ?}] nil nil [?a ?A] [?s ?S] [?d ?D]
+ [?f ?F] [?g ?G] [?h ?H] [?j ?J] [?k ?K] [?l ?L] [?\; ?:]
+ [?\' ?\"] [?\` ?~] nil [?\\ ?|] [?z ?Z] [?x ?X] [?c ?C]
+ [?v ?V] [?b ?B] [?n ?N] [?m ?M] [?\, ?<] [?\. ?>] [?/ ?\?]
+ nil ?* nil ?\ nil nil nil nil nil nil nil nil nil nil nil
+ nil nil ?7 ?8 ?9 ?- ?4 ?5 ?6 ?+ ?1 ?2 ?3 ?0 ?\. nil nil
+ [?< ?>] nil nil nil nil nil nil nil nil nil nil nil nil
+ nil nil nil nil nil ?/ nil nil nil nil nil nil nil nil
+ nil nil nil nil nil ?=])
+
(loop for (key sane-key) in
'((f13 f1)
(f14 f2)

View file

@ -1,31 +1,3 @@
@exec mkdir -p %D/lib/xemacs/site-packages/etc
@dirrmtry lib/xemacs/site-packages/etc
@exec mkdir -p %D/lib/xemacs/site-packages/info
@dirrmtry lib/xemacs/site-packages/info
@exec mkdir -p %D/lib/xemacs/site-packages/man
@dirrmtry lib/xemacs/site-packages/man
@exec mkdir -p %D/lib/xemacs/site-packages/pkginfo
@dirrmtry lib/xemacs/site-packages/pkginfo
@dirrmtry lib/xemacs/site-packages
@exec mkdir -p %D/lib/xemacs/mule-packages/etc
@dirrmtry lib/xemacs/mule-packages/etc
@exec mkdir -p %D/lib/xemacs/mule-packages/info
@dirrmtry lib/xemacs/mule-packages/info
@exec mkdir -p %D/lib/xemacs/mule-packages/man
@dirrmtry lib/xemacs/mule-packages/man
@exec mkdir -p %D/lib/xemacs/mule-packages/pkginfo
@dirrmtry lib/xemacs/mule-packages/pkginfo
@dirrmtry lib/xemacs/mule-packages
@exec mkdir -p %D/lib/xemacs/xemacs-packages/etc
@dirrmtry lib/xemacs/xemacs-packages/etc
@exec mkdir -p %D/lib/xemacs/xemacs-packages/info
@dirrmtry lib/xemacs/xemacs-packages/info
@exec mkdir -p %D/lib/xemacs/xemacs-packages/man
@dirrmtry lib/xemacs/xemacs-packages/man
@exec mkdir -p %D/lib/xemacs/xemacs-packages/pkginfo
@dirrmtry lib/xemacs/xemacs-packages/pkginfo
@dirrmtry lib/xemacs/xemacs-packages
@exec mkdir -p /var/run/emacs/lock ; chmod 1777 /var/run/emacs/lock
bin/b2m
bin/ctags
bin/ellcc
@ -37,6 +9,7 @@ bin/ootags
bin/rcs-checkin
bin/xemacs
bin/xemacs-%%XEMACS_VER%%
@exec mkdir -p %D/lib/xemacs/site-lisp ; chmod 755 %D/lib/xemacs/site-lisp
lib/xemacs-%%XEMACS_VER%%/etc/COPYING
lib/xemacs-%%XEMACS_VER%%/etc/ChangeLog
lib/xemacs-%%XEMACS_VER%%/etc/ETAGS.EBNF
@ -1480,8 +1453,6 @@ lib/xemacs-%%XEMACS_VER%%/lisp/x-win-xfree86.elc
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/s
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/m
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/modules
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%
@dirrm lib/xemacs-%%XEMACS_VER%%/etc/unicode/unicode-consortium
@dirrm lib/xemacs-%%XEMACS_VER%%/etc/unicode/other
@dirrm lib/xemacs-%%XEMACS_VER%%/etc/unicode/mule-ucs
@ -1497,4 +1468,9 @@ lib/xemacs-%%XEMACS_VER%%/lisp/x-win-xfree86.elc
@dirrm lib/xemacs-%%XEMACS_VER%%/etc/custom/example-themes
@dirrm lib/xemacs-%%XEMACS_VER%%/etc/custom
@dirrm lib/xemacs-%%XEMACS_VER%%/etc
@dirrmtry lib/xemacs/site-modules
@dirrmtry lib/xemacs/site-lisp
@dirrmtry lib/xemacs
@dirrmtry lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/modules
@dirrmtry lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%
@dirrmtry lib/xemacs-%%XEMACS_VER%%

View file

@ -403,13 +403,17 @@ lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/sorted-doc
lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/vcdiff
lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/wakeup
lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/yow
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/s
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/m
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include
@exec ln -sf ja %D/lib/xemacs/mule-packages/etc/app-defaults/ja_JP.eucJP
@unexec rm -f %D/lib/xemacs/mule-packages/etc/app-defaults/ja_JP.eucJP
@dirrmtry lib/xemacs/mule-packages/etc/app-defaults
@dirrmtry lib/xemacs/mule-packages/etc
@dirrmtry lib/xemacs/mule-packages
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/s
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include/m
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/include
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/modules
@dirrm lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%
@dirrmtry lib/xemacs/site-lisp
@dirrmtry lib/xemacs/site-modules
@dirrmtry lib/xemacs
@dirrmtry lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%/modules
@dirrmtry lib/xemacs-%%XEMACS_VER%%/%%XEMACS_ARCH%%
@dirrmtry lib/xemacs-%%XEMACS_VER%%