1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-24 10:38:38 +00:00

(CHAR_STRING_NO_SIGNAL): New macro.

This commit is contained in:
Gerd Moellmann 2001-07-13 09:31:16 +00:00
parent 12bcae0584
commit e06aa1f90f
2 changed files with 23 additions and 0 deletions

View File

@ -1,3 +1,14 @@
2001-07-13 Gerd Moellmann <gerd@gnu.org>
* xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
instead of CHAR_STRING which can signal an error.
* charset.c (char_to_string_1): Extracted from char_to_string.
Return -1 instead of signaling an error.
(char_to_string): Use it.
* charset.h (CHAR_STRING_NO_SIGNAL): New macro.
2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
* coding.c (Ffind_coding_systems_region_internal): If safe_codings

View File

@ -1,6 +1,7 @@
/* Header for multibyte character handler.
Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
Copyright (C) 2001 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@ -531,6 +532,16 @@ extern int iso_charset_table[2][2][128];
: (*(str) = LEADING_CODE_8_BIT_CONTROL, *((str)+ 1) = c + 0x20, 2)) \
: char_to_string (c, (unsigned char *) str))
/* Like CHAR_STRING but don't signal an error if C is invalid.
Value is -1 in this case. */
#define CHAR_STRING_NO_SIGNAL(c, str) \
(SINGLE_BYTE_CHAR_P (c) \
? ((ASCII_BYTE_P (c) || c >= 0xA0) \
? (*(str) = (unsigned char)(c), 1) \
: (*(str) = LEADING_CODE_8_BIT_CONTROL, *((str)+ 1) = c + 0x20, 2)) \
: char_to_string_1 (c, (unsigned char *) str))
/* Return a character code of the character of which multi-byte form
is at STR and the length is LEN. If STR doesn't contain valid
multi-byte form, only the first byte in STR is returned. */
@ -775,6 +786,7 @@ extern int translate_char P_ ((Lisp_Object, int, int, int, int));
extern int split_string P_ ((const unsigned char *, int, int *,
unsigned char *, unsigned char *));
extern int char_to_string P_ ((int, unsigned char *));
extern int char_to_string_1 P_ ((int, unsigned char *));
extern int string_to_char P_ ((const unsigned char *, int, int *));
extern int char_printable_p P_ ((int c));
extern int multibyte_form_length P_ ((const unsigned char *, int));