[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src font.c
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] emacs/src font.c |
Date: |
Tue, 30 Dec 2008 00:46:02 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 08/12/30 00:46:02
Modified files:
src : font.c
Log message:
(font_intern_prop): Validate str as multibyte.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/font.c?cvsroot=emacs&r1=1.101&r2=1.102
Patches:
Index: font.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/font.c,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -b -r1.101 -r1.102
--- font.c 16 Dec 2008 11:29:46 -0000 1.101
+++ font.c 30 Dec 2008 00:46:01 -0000 1.102
@@ -254,6 +254,7 @@
int i;
Lisp_Object tem;
Lisp_Object obarray;
+ int nbytes, nchars;
if (len == 1 && *str == '*')
return Qnil;
@@ -266,14 +267,25 @@
return make_number (atoi (str));
}
- /* The following code is copied from the function intern (in lread.c). */
+ /* The following code is copied from the function intern (in
+ lread.c), and modified to suite our purpose. */
obarray = Vobarray;
if (!VECTORP (obarray) || XVECTOR (obarray)->size == 0)
obarray = check_obarray (obarray);
+ parse_str_as_multibyte (str, len, &nchars, &nbytes);
+ if (len == nchars || len != nbytes)
+ /* CONTENTS contains no multibyte sequences or contains an invalid
+ multibyte sequence. We'll make a unibyte string. */
tem = oblookup (obarray, str, len, len);
+ else
+ tem = oblookup (obarray, str, nchars, len);
if (SYMBOLP (tem))
return tem;
- return Fintern (make_unibyte_string (str, len), obarray);
+ if (len == nchars || len != nbytes)
+ tem = make_unibyte_string (str, len);
+ else
+ tem = make_multibyte_string (str, nchars, len);
+ return Fintern (tem, obarray);
}
/* Return a pixel size of font-spec SPEC on frame F. */
- [Emacs-diffs] emacs/src font.c, Chong Yidong, 2008/12/03
- [Emacs-diffs] emacs/src font.c, Chong Yidong, 2008/12/03
- [Emacs-diffs] emacs/src font.c, Kenichi Handa, 2008/12/03
- [Emacs-diffs] emacs/src font.c, Kenichi Handa, 2008/12/12
- [Emacs-diffs] emacs/src font.c, Chong Yidong, 2008/12/13
- [Emacs-diffs] emacs/src font.c, Chong Yidong, 2008/12/15
- [Emacs-diffs] emacs/src font.c, Kenichi Handa, 2008/12/16
- [Emacs-diffs] emacs/src font.c,
Kenichi Handa <=
- [Emacs-diffs] emacs/src font.c, Kenichi Handa, 2008/12/30