User: vins
Date: 05/12/07 02:17:09
Branch: xemacs/lisp release-21-4
xemacs/src release-21-4
Modified: xemacs/src ChangeLog mule-ccl.c
Log:
Aidan's mule-ccl.c fix.
Ville added additional search paths for rgb.txt.
Revision Changes Path
1.266.2.88 +5 -0 XEmacs/xemacs/lisp/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.266.2.87
retrieving revision 1.266.2.88
diff -u -p -r1.266.2.87 -r1.266.2.88
--- ChangeLog 2005/12/03 18:56:02 1.266.2.87
+++ ChangeLog 2005/12/07 01:16:46 1.266.2.88
@@ -1,3 +1,8 @@
+2005-12-05 Ville Skyttä <scop(a)xemacs.org>
+
+ * minibuf.el (x-library-search-path): Add /usr(/local)/share/X11.
+ * font.el (font-lookup-rgb-components): Ditto, remove stale comment.
+
2005-12-03 Vin Shelton <acs(a)xemacs.org>
* XEmacs 21.4.18 is released
1.7.2.4 +2 -2 XEmacs/xemacs/lisp/font.el
Index: font.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/font.el,v
retrieving revision 1.7.2.3
retrieving revision 1.7.2.4
diff -u -p -r1.7.2.3 -r1.7.2.4
--- font.el 2005/11/28 02:10:09 1.7.2.3
+++ font.el 2005/12/07 01:16:48 1.7.2.4
@@ -1078,8 +1078,6 @@ for use in the 'weight' field of an mswi
The list (R G B) is returned, or an error is signaled if the lookup fails."
(let ((lib-list (if (boundp 'x-library-search-path)
x-library-search-path
- ;; This default is from XEmacs 19.13 - hope it covers
- ;; everyone.
(list "/usr/X11R6/lib/X11/"
"/usr/X11R5/lib/X11/"
"/usr/lib/X11R6/X11/"
@@ -1090,7 +1088,9 @@ The list (R G B) is returned, or an erro
"/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/"
1.19.2.4 +2 -0 XEmacs/xemacs/lisp/minibuf.el
Index: minibuf.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/minibuf.el,v
retrieving revision 1.19.2.3
retrieving revision 1.19.2.4
diff -u -p -r1.19.2.3 -r1.19.2.4
--- minibuf.el 2005/02/24 03:06:08 1.19.2.3
+++ minibuf.el 2005/12/07 01:16:49 1.19.2.4
@@ -2196,7 +2196,9 @@ whether it is a file(/result) or a direc
"/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/"
1.290.2.102 +6 -0 XEmacs/xemacs/src/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.290.2.101
retrieving revision 1.290.2.102
diff -u -p -r1.290.2.101 -r1.290.2.102
--- ChangeLog 2005/12/07 00:07:47 1.290.2.101
+++ ChangeLog 2005/12/07 01:16:59 1.290.2.102
@@ -1,3 +1,9 @@
+2005-12-06 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * mule-ccl.c (POSSIBLE_LEADING_BYTE_P): Add.
+ * mule-ccl.c: Check that a character set exists before using it
+ to create a character.
+
2005-12-06 Vin Shelton <acs(a)xemacs.org>
* objects-x.c (MAX_FONT_COUNT): Increase MAX_FONT_COUNT from 5000
1.15.2.2 +35 -9 XEmacs/xemacs/src/mule-ccl.c
Index: mule-ccl.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/mule-ccl.c,v
retrieving revision 1.15.2.1
retrieving revision 1.15.2.2
diff -u -p -r1.15.2.1 -r1.15.2.2
--- mule-ccl.c 2005/11/28 02:10:19 1.15.2.1
+++ mule-ccl.c 2005/12/07 01:17:03 1.15.2.2
@@ -833,6 +833,9 @@ static int stack_idx_of_map_multiple;
} \
} while (0)
+#define POSSIBLE_LEADING_BYTE_P(leading_byte) \
+ ((leading_byte > MIN_LEADING_BYTE) && \
+ (leading_byte - MIN_LEADING_BYTE) < NUM_LEADING_BYTES)
/* Set C to the character code made from CHARSET and CODE. This is
like MAKE_CHAR but check the validity of CHARSET and CODE. If they
@@ -1296,6 +1299,16 @@ ccl_driver (struct ccl_program *ccl,
reg[rrr] = i;
reg[RRR] = LEADING_BYTE_ASCII;
}
+ /* Previously, these next two elses were reversed in order,
+ which should have worked fine, but is more fragile than
+ this order. */
+ else if (LEADING_BYTE_CONTROL_1 == i)
+ {
+ if (src >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ reg[RRR] = i;
+ reg[rrr] = (*src++ - 0xA0);
+ }
else if (i <= MAX_LEADING_BYTE_OFFICIAL_1)
{
if (src >= src_end)
@@ -1357,15 +1370,29 @@ ccl_driver (struct ccl_program *ccl,
case CCL_WriteMultibyteChar2:
i = reg[RRR]; /* charset */
- if (i == LEADING_BYTE_ASCII || i == LEADING_BYTE_CONTROL_1)
+ if (i == LEADING_BYTE_ASCII)
i = reg[rrr] & 0xFF;
- else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
- i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
- | (reg[rrr] & 0x7F));
- else if (i < MAX_LEADING_BYTE_OFFICIAL_2)
- i = ((i - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) | reg[rrr];
- else
- i = ((i - FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | reg[rrr];
+ else if (LEADING_BYTE_CONTROL_1 == i)
+ i = ((reg[rrr] & 0xFF) - 0xA0);
+ else if (POSSIBLE_LEADING_BYTE_P(i) &&
+ !NILP(CHARSET_BY_LEADING_BYTE(i)))
+ {
+ if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
+ i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
+ | (reg[rrr] & 0x7F));
+ else if (i < MAX_LEADING_BYTE_OFFICIAL_2)
+ i = ((i - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14)
+ | reg[rrr];
+ else
+ i = ((i - FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | reg[rrr];
+ }
+ else
+ {
+ /* No charset we know about; use U+3012 GETA MARK */
+ i = MAKE_CHAR
+ (CHARSET_BY_LEADING_BYTE(LEADING_BYTE_JAPANESE_JISX0208),
+ 34, 46);
+ }
CCL_WRITE_CHAR (i);
@@ -1424,7 +1451,6 @@ ccl_driver (struct ccl_program *ccl,
for (;i < j;i++)
{
-
size = XVECTOR (Vcode_conversion_map_vector)->size;
point = XINT (ccl_prog[ic++]);
if (point >= size) continue;