aboutsummaryrefslogtreecommitdiffstats
path: root/src/character.c
diff options
context:
space:
mode:
authorPaul Eggert2011-09-03 16:03:38 -0700
committerPaul Eggert2011-09-03 16:03:38 -0700
commitb49e353d9d01adbe60bc5d0b1658b4ef978b0b06 (patch)
tree9f2ffa6f7a6562abf661a4951012b488ad8b1ae7 /src/character.c
parent74b880cbc18bd0194c7b1fc44c4a983ee05adae2 (diff)
parentbc3200871917d5c54c8c4299a06bf8f8ba2ea02d (diff)
downloademacs-b49e353d9d01adbe60bc5d0b1658b4ef978b0b06.tar.gz
emacs-b49e353d9d01adbe60bc5d0b1658b4ef978b0b06.zip
Merge from trunk.
Diffstat (limited to 'src/character.c')
-rw-r--r--src/character.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/character.c b/src/character.c
index 8e9b3e3775e..fb9b8a9b93e 100644
--- a/src/character.c
+++ b/src/character.c
@@ -326,7 +326,7 @@ usage: (char-width CHAR) */)
326 disp = dp ? DISP_CHAR_VECTOR (dp, c) : Qnil; 326 disp = dp ? DISP_CHAR_VECTOR (dp, c) : Qnil;
327 327
328 if (VECTORP (disp)) 328 if (VECTORP (disp))
329 width = ASIZE (disp); 329 width = sanitize_char_width (ASIZE (disp));
330 else 330 else
331 width = CHAR_WIDTH (c); 331 width = CHAR_WIDTH (c);
332 332
@@ -358,7 +358,7 @@ c_string_width (const unsigned char *str, EMACS_INT len, int precision,
358 { 358 {
359 val = DISP_CHAR_VECTOR (dp, c); 359 val = DISP_CHAR_VECTOR (dp, c);
360 if (VECTORP (val)) 360 if (VECTORP (val))
361 thiswidth = ASIZE (val); 361 thiswidth = sanitize_char_width (ASIZE (val));
362 else 362 else
363 thiswidth = CHAR_WIDTH (c); 363 thiswidth = CHAR_WIDTH (c);
364 } 364 }
@@ -423,7 +423,7 @@ lisp_string_width (Lisp_Object string, EMACS_INT precision,
423 { 423 {
424 EMACS_INT chars, bytes, thiswidth; 424 EMACS_INT chars, bytes, thiswidth;
425 Lisp_Object val; 425 Lisp_Object val;
426 int cmp_id; 426 ptrdiff_t cmp_id;
427 EMACS_INT ignore, end; 427 EMACS_INT ignore, end;
428 428
429 if (find_composition (i, -1, &ignore, &end, &val, string) 429 if (find_composition (i, -1, &ignore, &end, &val, string)
@@ -451,7 +451,7 @@ lisp_string_width (Lisp_Object string, EMACS_INT precision,
451 { 451 {
452 val = DISP_CHAR_VECTOR (dp, c); 452 val = DISP_CHAR_VECTOR (dp, c);
453 if (VECTORP (val)) 453 if (VECTORP (val))
454 thiswidth = ASIZE (val); 454 thiswidth = sanitize_char_width (ASIZE (val));
455 else 455 else
456 thiswidth = CHAR_WIDTH (c); 456 thiswidth = CHAR_WIDTH (c);
457 } 457 }
@@ -902,7 +902,7 @@ usage: (string &rest CHARACTERS) */)
902 Lisp_Object str; 902 Lisp_Object str;
903 USE_SAFE_ALLOCA; 903 USE_SAFE_ALLOCA;
904 904
905 SAFE_ALLOCA (buf, unsigned char *, MAX_MULTIBYTE_LENGTH * n); 905 SAFE_NALLOCA (buf, MAX_MULTIBYTE_LENGTH, n);
906 p = buf; 906 p = buf;
907 907
908 for (i = 0; i < n; i++) 908 for (i = 0; i < n; i++)