emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113101: * syntax.c: Integer cleanups.


From: Paul Eggert
Subject: [Emacs-diffs] trunk r113101: * syntax.c: Integer cleanups.
Date: Thu, 20 Jun 2013 18:59:13 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113101
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Thu 2013-06-20 11:59:08 -0700
message:
  * syntax.c: Integer cleanups.
  
  (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
  All uses that need 0-or-2 changed to:
  (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
  as the old SYNTAX_FLAGS_COMMENT_STYLEC.
  (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
  (char_quoted, prev_char_comend_first, back_comment)
  (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
  (in_classes, forw_comment, scan_lists, scan_sexps_forward):
  Use bool for boolean.
  (update_syntax_table, skip_chars, skip_syntaxes):
  Prefer int to unsigned when either will do.
  (back_comment): Return boolean success flag, like forw_comment,
  instead of positive-or-minus-1 (which might have overflowed int anyway).
  Don't stuff ptrdiff_t into int.
  (syntax_spec_code, syntax_code_spec): Now const.
  (Fmatching_paren, scan_lists, scan_sexps_forward):
  Use enum syntaxcode for syntax code.
  (Fmatching_paren): Check that arg is a character, not just an integer.
  (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
  (Finternal_describe_syntax_value): Omit no-longer-needed
  comparison to 0.
  (skip_chars): Use char, not unsigned char, when the distinction
  doesn't matter.
  (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
  * bytecode.c (exec_byte_code):
  * syntax.c (syntax_spec_code, Fchar_syntax)
  (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
  (init_syntax_once):
  * syntax.h (SYNTAX_WITH_FLAGS):
  Omit unnecessary casts.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/bytecode.c                 bytecode.c-20091113204419-o5vbwnq5f7feedwu-257
  src/syntax.c                   syntax.c-20091113204419-o5vbwnq5f7feedwu-180
  src/syntax.h                   syntax.h-20091113204419-o5vbwnq5f7feedwu-439
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-06-20 17:36:24 +0000
+++ b/src/ChangeLog     2013-06-20 18:59:08 +0000
@@ -1,3 +1,37 @@
+2013-06-20  Paul Eggert  <address@hidden>
+
+       * syntax.c: Integer cleanups.
+       (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
+       All uses that need 0-or-2 changed to:
+       (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
+       as the old SYNTAX_FLAGS_COMMENT_STYLEC.
+       (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
+       (char_quoted, prev_char_comend_first, back_comment)
+       (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
+       (in_classes, forw_comment, scan_lists, scan_sexps_forward):
+       Use bool for boolean.
+       (update_syntax_table, skip_chars, skip_syntaxes):
+       Prefer int to unsigned when either will do.
+       (back_comment): Return boolean success flag, like forw_comment,
+       instead of positive-or-minus-1 (which might have overflowed int anyway).
+       Don't stuff ptrdiff_t into int.
+       (syntax_spec_code, syntax_code_spec): Now const.
+       (Fmatching_paren, scan_lists, scan_sexps_forward):
+       Use enum syntaxcode for syntax code.
+       (Fmatching_paren): Check that arg is a character, not just an integer.
+       (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
+       (Finternal_describe_syntax_value): Omit no-longer-needed
+       comparison to 0.
+       (skip_chars): Use char, not unsigned char, when the distinction
+       doesn't matter.
+       (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
+       * bytecode.c (exec_byte_code):
+       * syntax.c (syntax_spec_code, Fchar_syntax)
+       (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
+       (init_syntax_once):
+       * syntax.h (SYNTAX_WITH_FLAGS):
+       Omit unnecessary casts.
+
 2013-06-20  Eli Zaretskii  <address@hidden>
 
        * w32fns.c (w32_wnd_proc): Don't compute the header line and mode

=== modified file 'src/bytecode.c'
--- a/src/bytecode.c    2013-05-18 05:32:17 +0000
+++ b/src/bytecode.c    2013-06-20 18:59:08 +0000
@@ -1636,7 +1636,7 @@
            c = XFASTINT (TOP);
            if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
              MAKE_CHAR_MULTIBYTE (c);
-           XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (c)]);
+           XSETFASTINT (TOP, syntax_code_spec[SYNTAX (c)]);
          }
          NEXT;
 

=== modified file 'src/syntax.c'
--- a/src/syntax.c      2013-06-19 05:45:35 +0000
+++ b/src/syntax.c      2013-06-20 18:59:08 +0000
@@ -36,7 +36,7 @@
 #include "intervals.h"
 #include "category.h"
 
-/* Then there are seven single-bit flags that have the following meanings:
+/* Eight single-bit flags have the following meanings:
   1. This character is the first of a two-character comment-start sequence.
   2. This character is the second of a two-character comment-start sequence.
   3. This character is the first of a two-character comment-end sequence.
@@ -48,16 +48,15 @@
   Note that any two-character sequence whose first character has flag 1
   and whose second character has flag 2 will be interpreted as a comment start.
 
-  bit 6 and 8 are used to discriminate between different comment styles.
+  Bits 6 and 8 discriminate among different comment styles.
   Languages such as C++ allow two orthogonal syntax start/end pairs
-  and bit 6 is used to determine whether a comment-end or Scommentend
+  and bit 6 determines whether a comment-end or Scommentend
   ends style a or b.  Comment markers can start style a, b, c, or bc.
   Style a is always the default.
-  For 2-char comment markers, the style b flag is only looked up on the second
+  For 2-char comment markers, the style b flag is looked up only on the second
   char of the comment marker and on the first char of the comment ender.
-  For style c (like to for the nested flag), the flag can be placed on any
-  one of the chars.
-  */
+  For style c (like the nested flag), the flag can be placed on any of
+  the chars.  */
 
 /* These macros extract specific flags from an integer
    that holds the syntax code and the flags.  */
@@ -73,13 +72,14 @@
 #define SYNTAX_FLAGS_PREFIX(flags) (((flags) >> 20) & 1)
 
 #define SYNTAX_FLAGS_COMMENT_STYLEB(flags) (((flags) >> 21) & 1)
-#define SYNTAX_FLAGS_COMMENT_STYLEC(flags) (((flags) >> 22) & 2)
+#define SYNTAX_FLAGS_COMMENT_STYLEC(flags) (((flags) >> 23) & 1)
+#define SYNTAX_FLAGS_COMMENT_STYLEC2(flags) (((flags) >> 22) & 2) /* C * 2 */
 /* FLAGS should be the flags of the main char of the comment marker, e.g.
    the second for comstart and the first for comend.  */
 #define SYNTAX_FLAGS_COMMENT_STYLE(flags, other_flags) \
   (SYNTAX_FLAGS_COMMENT_STYLEB (flags) \
-   | SYNTAX_FLAGS_COMMENT_STYLEC (flags) \
-   | SYNTAX_FLAGS_COMMENT_STYLEC (other_flags))
+   | SYNTAX_FLAGS_COMMENT_STYLEC2 (flags) \
+   | SYNTAX_FLAGS_COMMENT_STYLEC2 (other_flags))
 
 #define SYNTAX_FLAGS_COMMENT_NESTED(flags) (((flags) >> 22) & 1)
 
@@ -114,7 +114,7 @@
     int instring;  /* -1 if not within string, else desired terminator.  */
     EMACS_INT incomment; /* -1 if in unnestable comment else comment nesting */
     int comstyle;  /* comment style a=0, or b=1, or ST_COMMENT_STYLE.  */
-    int quoted;           /* Nonzero if just after an escape char at end of 
parsing */
+    bool quoted;   /* True if just after an escape char at end of parsing.  */
     EMACS_INT mindepth;        /* Minimum depth seen while scanning.  */
     /* Char number of most recent start-of-expression at current level */
     ptrdiff_t thislevelstart;
@@ -143,13 +143,13 @@
 static EMACS_INT find_start_modiff;
 
 
-static Lisp_Object skip_chars (int, Lisp_Object, Lisp_Object, int);
-static Lisp_Object skip_syntaxes (int, Lisp_Object, Lisp_Object);
-static Lisp_Object scan_lists (EMACS_INT, EMACS_INT, EMACS_INT, int);
+static Lisp_Object skip_chars (bool, Lisp_Object, Lisp_Object, bool);
+static Lisp_Object skip_syntaxes (bool, Lisp_Object, Lisp_Object);
+static Lisp_Object scan_lists (EMACS_INT, EMACS_INT, EMACS_INT, bool);
 static void scan_sexps_forward (struct lisp_parse_state *,
                                 ptrdiff_t, ptrdiff_t, ptrdiff_t, EMACS_INT,
-                                int, Lisp_Object, int);
-static int in_classes (int, Lisp_Object);
+                                bool, Lisp_Object, int);
+static bool in_classes (int, Lisp_Object);
 
 /* This setter is used only in this file, so it can be private.  */
 static void
@@ -159,7 +159,8 @@
 }
 
 /* Whether the syntax of the character C has the prefix flag set.  */
-int syntax_prefix_flag_p (int c)
+bool
+syntax_prefix_flag_p (int c)
 {
   return SYNTAX_PREFIX (c);
 }
@@ -183,12 +184,12 @@
    start/end of OBJECT.  */
 
 void
-update_syntax_table (ptrdiff_t charpos, EMACS_INT count, int init,
+update_syntax_table (ptrdiff_t charpos, EMACS_INT count, bool init,
                     Lisp_Object object)
 {
   Lisp_Object tmp_table;
-  unsigned cnt = 0;
-  int invalidate = 1;
+  int cnt = 0;
+  bool invalidate = 1;
   INTERVAL i;
 
   if (init)
@@ -340,16 +341,16 @@
     gl_state.b_property = gl_state.start;
 }
 
-/* Returns TRUE if char at CHARPOS is quoted.
+/* Returns true if char at CHARPOS is quoted.
    Global syntax-table data should be set up already to be good at CHARPOS
    or after.  On return global syntax data is good for lookup at CHARPOS. */
 
-static int
+static bool
 char_quoted (ptrdiff_t charpos, ptrdiff_t bytepos)
 {
-  register enum syntaxcode code;
-  register ptrdiff_t beg = BEGV;
-  register int quoted = 0;
+  enum syntaxcode code;
+  ptrdiff_t beg = BEGV;
+  bool quoted = 0;
   ptrdiff_t orig = charpos;
 
   while (charpos > beg)
@@ -466,10 +467,11 @@
 
 /* Return the SYNTAX_COMEND_FIRST of the character before POS, POS_BYTE.  */
 
-static int
+static bool
 prev_char_comend_first (ptrdiff_t pos, ptrdiff_t pos_byte)
 {
-  int c, val;
+  int c;
+  bool val;
 
   DEC_BOTH (pos, pos_byte);
   UPDATE_SYNTAX_TABLE_BACKWARD (pos);
@@ -479,28 +481,11 @@
   return val;
 }
 
-/* Return the SYNTAX_COMSTART_FIRST of the character before POS, POS_BYTE.  */
-
-/* static int
- * prev_char_comstart_first (pos, pos_byte)
- *      int pos, pos_byte;
- * {
- *   int c, val;
- *
- *   DEC_BOTH (pos, pos_byte);
- *   UPDATE_SYNTAX_TABLE_BACKWARD (pos);
- *   c = FETCH_CHAR (pos_byte);
- *   val = SYNTAX_COMSTART_FIRST (c);
- *   UPDATE_SYNTAX_TABLE_FORWARD (pos + 1);
- *   return val;
- * } */
-
-/* Checks whether charpos FROM is at the end of a comment.
+/* Check whether charpos FROM is at the end of a comment.
    FROM_BYTE is the bytepos corresponding to FROM.
    Do not move back before STOP.
 
-   Return a positive value if we find a comment ending at FROM/FROM_BYTE;
-   return -1 otherwise.
+   Return true if we find a comment ending at FROM/FROM_BYTE.
 
    If successful, store the charpos of the comment's beginning
    into *CHARPOS_PTR, and the bytepos into *BYTEPOS_PTR.
@@ -508,8 +493,10 @@
    Global syntax data remains valid for backward search starting at
    the returned value (or at FROM, if the search was not successful).  */
 
-static int
-back_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop, int 
comnested, int comstyle, ptrdiff_t *charpos_ptr, ptrdiff_t *bytepos_ptr)
+static bool
+back_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop,
+             bool comnested, int comstyle, ptrdiff_t *charpos_ptr,
+             ptrdiff_t *bytepos_ptr)
 {
   /* Look back, counting the parity of string-quotes,
      and recording the comment-starters seen.
@@ -521,13 +508,13 @@
      which is I+2X quotes from the comment-end.
      PARITY is current parity of quotes from the comment end.  */
   int string_style = -1;       /* Presumed outside of any string. */
-  int string_lossage = 0;
+  bool string_lossage = 0;
   /* Not a real lossage: indicates that we have passed a matching comment
      starter plus a non-matching comment-ender, meaning that any matching
      comment-starter we might see later could be a false positive (hidden
      inside another comment).
      Test case:  { a (* b } c (* d *) */
-  int comment_lossage = 0;
+  bool comment_lossage = 0;
   ptrdiff_t comment_end = from;
   ptrdiff_t comment_end_byte = from_byte;
   ptrdiff_t comstart_pos = 0;
@@ -536,8 +523,8 @@
      or 0 if we didn't come across it yet.  */
   ptrdiff_t defun_start = 0;
   ptrdiff_t defun_start_byte = 0;
-  register enum syntaxcode code;
-  int nesting = 1;             /* current comment nesting */
+  enum syntaxcode code;
+  ptrdiff_t nesting = 1;               /* current comment nesting */
   int c;
   int syntax = 0;
 
@@ -550,8 +537,8 @@
   while (from != stop)
     {
       ptrdiff_t temp_byte;
-      int prev_syntax, com2start, com2end;
-      int comstart;
+      int prev_syntax;
+      bool com2start, com2end, comstart;
 
       /* Move back and examine a character.  */
       DEC_BOTH (from, from_byte);
@@ -772,7 +759,7 @@
   *charpos_ptr = from;
   *bytepos_ptr = from_byte;
 
-  return (from == comment_end) ? -1 : from;
+  return from != comment_end;
 }
 
 DEFUN ("syntax-table-p", Fsyntax_table_p, Ssyntax_table_p, 1, 1, 0,
@@ -854,31 +841,28 @@
  into the code it signifies.
  This is used by modify-syntax-entry, and other things.  */
 
-unsigned char syntax_spec_code[0400] =
+unsigned char const syntax_spec_code[0400] =
   { 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
-    (char) Swhitespace, (char) Scomment_fence, (char) Sstring, 0377,
-        (char) Smath, 0377, 0377, (char) Squote,
-    (char) Sopen, (char) Sclose, 0377, 0377,
-       0377, (char) Swhitespace, (char) Spunct, (char) Scharquote,
-    0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
-    0377, 0377, 0377, 0377,
-       (char) Scomment, 0377, (char) Sendcomment, 0377,
-    (char) Sinherit, 0377, 0377, 0377, 0377, 0377, 0377, 0377,   /* @, A ... */
-    0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
-    0377, 0377, 0377, 0377, 0377, 0377, 0377, (char) Sword,
-    0377, 0377, 0377, 0377, (char) Sescape, 0377, 0377, (char) Ssymbol,
+    Swhitespace, Scomment_fence, Sstring, 0377, Smath, 0377, 0377, Squote,
+    Sopen, Sclose, 0377, 0377, 0377, Swhitespace, Spunct, Scharquote,
+    0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+    0377, 0377, 0377, 0377, Scomment, 0377, Sendcomment, 0377,
+    Sinherit, 0377, 0377, 0377, 0377, 0377, 0377, 0377,   /* @, A ... */
+    0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
+    0377, 0377, 0377, 0377, 0377, 0377, 0377, Sword,
+    0377, 0377, 0377, 0377, Sescape, 0377, 0377, Ssymbol,
     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,   /* `, a, ... */
     0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
-    0377, 0377, 0377, 0377, 0377, 0377, 0377, (char) Sword,
-    0377, 0377, 0377, 0377, (char) Sstring_fence, 0377, 0377, 0377
+    0377, 0377, 0377, 0377, 0377, 0377, 0377, Sword,
+    0377, 0377, 0377, 0377, Sstring_fence, 0377, 0377, 0377
   };
 
 /* Indexed by syntax code, give the letter that describes it.  */
 
-char syntax_code_spec[16] =
+char const syntax_code_spec[16] =
   {
     ' ', '.', 'w', '_', '(', ')', '\'', '\"', '$', '\\', '/', '<', '>', '@',
     '!', '|'
@@ -904,15 +888,16 @@
   CHECK_CHARACTER (character);
   char_int = XINT (character);
   SETUP_BUFFER_SYNTAX_TABLE ();
-  return make_number (syntax_code_spec[(int) SYNTAX (char_int)]);
+  return make_number (syntax_code_spec[SYNTAX (char_int)]);
 }
 
 DEFUN ("matching-paren", Fmatching_paren, Smatching_paren, 1, 1, 0,
        doc: /* Return the matching parenthesis of CHARACTER, or nil if none.  
*/)
   (Lisp_Object character)
 {
-  int char_int, code;
-  CHECK_NUMBER (character);
+  int char_int;
+  enum syntaxcode code;
+  CHECK_CHARACTER (character);
   char_int = XINT (character);
   SETUP_BUFFER_SYNTAX_TABLE ();
   code = SYNTAX (char_int);
@@ -929,19 +914,18 @@
 the value of a `syntax-table' text property.  */)
   (Lisp_Object string)
 {
-  register const unsigned char *p;
-  register enum syntaxcode code;
+  const unsigned char *p;
   int val;
   Lisp_Object match;
 
   CHECK_STRING (string);
 
   p = SDATA (string);
-  code = (enum syntaxcode) syntax_spec_code[*p++];
-  if (((int) code & 0377) == 0377)
+  val = syntax_spec_code[*p++];
+  if (val == 0377)
     error ("Invalid syntax description letter: %c", p[-1]);
 
-  if (code == Sinherit)
+  if (val == Sinherit)
     return Qnil;
 
   if (*p)
@@ -956,7 +940,6 @@
   else
     match = Qnil;
 
-  val = (int) code;
   while (*p)
     switch (*p++)
       {
@@ -1078,10 +1061,8 @@
        doc: /* Insert a description of the internal syntax description SYNTAX 
at point.  */)
   (Lisp_Object syntax)
 {
-  register enum syntaxcode code;
-  int syntax_code;
-  char desc, start1, start2, end1, end2, prefix,
-    comstyleb, comstylec, comnested;
+  int code, syntax_code;
+  bool start1, start2, end1, end2, prefix, comstyleb, comstylec, comnested;
   char str[2];
   Lisp_Object first, match_lisp, value = syntax;
 
@@ -1113,7 +1094,7 @@
     }
 
   syntax_code = XINT (first) & INT_MAX;
-  code = (enum syntaxcode) (syntax_code & 0377);
+  code = syntax_code & 0377;
   start1 = SYNTAX_FLAGS_COMSTART_FIRST (syntax_code);
   start2 = SYNTAX_FLAGS_COMSTART_SECOND (syntax_code);;
   end1 = SYNTAX_FLAGS_COMEND_FIRST (syntax_code);
@@ -1123,14 +1104,13 @@
   comstylec = SYNTAX_FLAGS_COMMENT_STYLEC (syntax_code);
   comnested = SYNTAX_FLAGS_COMMENT_NESTED (syntax_code);
 
-  if ((int) code < 0 || (int) code >= (int) Smax)
+  if (Smax <= code)
     {
       insert_string ("invalid");
       return syntax;
     }
-  desc = syntax_code_spec[(int) code];
 
-  str[0] = desc, str[1] = 0;
+  str[0] = syntax_code_spec[code], str[1] = 0;
   insert (str, 1);
 
   if (NILP (match_lisp))
@@ -1431,21 +1411,21 @@
 }
 
 static Lisp_Object
-skip_chars (int forwardp, Lisp_Object string, Lisp_Object lim, int 
handle_iso_classes)
+skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim,
+           bool handle_iso_classes)
 {
-  register unsigned int c;
-  unsigned char fastmap[0400];
+  int c;
+  char fastmap[0400];
   /* Store the ranges of non-ASCII characters.  */
   int *char_ranges IF_LINT (= NULL);
   int n_char_ranges = 0;
-  int negate = 0;
-  register ptrdiff_t i, i_byte;
-  /* Set to 1 if the current buffer is multibyte and the region
-     contains non-ASCII chars.  */
-  int multibyte;
-  /* Set to 1 if STRING is multibyte and it contains non-ASCII
-     chars.  */
-  int string_multibyte;
+  bool negate = 0;
+  ptrdiff_t i, i_byte;
+  /* True if the current buffer is multibyte and the region contains
+     non-ASCII chars.  */
+  bool multibyte;
+  /* True if STRING is multibyte and it contains non-ASCII chars.  */
+  bool string_multibyte;
   ptrdiff_t size_byte;
   const unsigned char *str;
   int len;
@@ -1489,7 +1469,7 @@
 
   if (! string_multibyte)
     {
-      int string_has_eight_bit = 0;
+      bool string_has_eight_bit = 0;
 
       /* At first setup fastmap.  */
       while (i_byte < size_byte)
@@ -1544,7 +1524,7 @@
          if (i_byte + 1 < size_byte
              && str[i_byte] == '-')
            {
-             unsigned int c2;
+             int c2;
 
              /* Skip over the dash.  */
              i_byte++;
@@ -1557,7 +1537,7 @@
 
              if (c <= c2)
                {
-                 unsigned lim2 = c2 + 1;
+                 int lim2 = c2 + 1;
                  while (c < lim2)
                    fastmap[c++] = 1;
                  if (! ASCII_CHAR_P (c2))
@@ -1610,9 +1590,7 @@
 
       while (i_byte < size_byte)
        {
-         unsigned char leading_code;
-
-         leading_code = str[i_byte];
+         int leading_code = str[i_byte];
          c = STRING_CHAR_AND_LENGTH (str + i_byte, len);
          i_byte += len;
 
@@ -1666,8 +1644,7 @@
          if (i_byte + 1 < size_byte
              && str[i_byte] == '-')
            {
-             unsigned int c2;
-             unsigned char leading_code2;
+             int c2, leading_code2;
 
              /* Skip over the dash.  */
              i_byte++;
@@ -1681,7 +1658,7 @@
                  && i_byte < size_byte)
                {
                  leading_code2 = str[i_byte];
-                 c2 =STRING_CHAR_AND_LENGTH (str + i_byte, len);
+                 c2 = STRING_CHAR_AND_LENGTH (str + i_byte, len);
                  i_byte += len;
                }
 
@@ -1695,7 +1672,7 @@
                }
              if (! ASCII_CHAR_P (c))
                {
-                 unsigned lim2 = leading_code2 + 1;
+                 int lim2 = leading_code2 + 1;
                  while (leading_code < lim2)
                    fastmap[leading_code++] = 1;
                  if (c <= c2)
@@ -1728,7 +1705,7 @@
          for (i = 0; i < n_char_ranges; i += 2)
            {
              int c1 = char_ranges[i];
-             unsigned lim2 = char_ranges[i + 1] + 1;
+             int lim2 = char_ranges[i + 1] + 1;
 
              for (; c1 < lim2; c1++)
                {
@@ -1924,13 +1901,13 @@
 
 
 static Lisp_Object
-skip_syntaxes (int forwardp, Lisp_Object string, Lisp_Object lim)
+skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim)
 {
-  register unsigned int c;
+  int c;
   unsigned char fastmap[0400];
-  int negate = 0;
-  register ptrdiff_t i, i_byte;
-  int multibyte;
+  bool negate = 0;
+  ptrdiff_t i, i_byte;
+  bool multibyte;
   ptrdiff_t size_byte;
   unsigned char *str;
 
@@ -2018,7 +1995,7 @@
                    stop = endp;
                  }
                c = STRING_CHAR_AND_LENGTH (p, nbytes);
-               if (! fastmap[(int) SYNTAX (c)])
+               if (! fastmap[SYNTAX (c)])
                  break;
                p += nbytes, pos++, pos_byte += nbytes;
                UPDATE_SYNTAX_TABLE_FORWARD (pos);
@@ -2035,7 +2012,7 @@
                    p = GAP_END_ADDR;
                    stop = endp;
                  }
-               if (! fastmap[(int) SYNTAX (*p)])
+               if (! fastmap[SYNTAX (*p)])
                  break;
                p++, pos++, pos_byte++;
                UPDATE_SYNTAX_TABLE_FORWARD (pos);
@@ -2061,7 +2038,7 @@
                prev_p = p;
                while (--p >= stop && ! CHAR_HEAD_P (*p));
                c = STRING_CHAR (p);
-               if (! fastmap[(int) SYNTAX (c)])
+               if (! fastmap[SYNTAX (c)])
                  break;
                pos--, pos_byte -= prev_p - p;
              }
@@ -2078,7 +2055,7 @@
                    stop = endp;
                  }
                UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
-               if (! fastmap[(int) SYNTAX (p[-1])])
+               if (! fastmap[SYNTAX (p[-1])])
                  break;
                p--, pos--, pos_byte--;
              }
@@ -2092,14 +2069,14 @@
   }
 }
 
-/* Return 1 if character C belongs to one of the ISO classes
+/* Return true if character C belongs to one of the ISO classes
    in the list ISO_CLASSES.  Each class is represented by an
    integer which is its type according to re_wctype.  */
 
-static int
+static bool
 in_classes (int c, Lisp_Object iso_classes)
 {
-  int fits_class = 0;
+  bool fits_class = 0;
 
   while (CONSP (iso_classes))
     {
@@ -2119,26 +2096,26 @@
    FROM_BYTE is the bytepos corresponding to FROM.
    Do not move past STOP (a charpos).
    The comment over which we have to jump is of style STYLE
-     (either SYNTAX_FLAGS_COMMENT_STYLE(foo) or ST_COMMENT_STYLE).
+     (either SYNTAX_FLAGS_COMMENT_STYLE (foo) or ST_COMMENT_STYLE).
    NESTING should be positive to indicate the nesting at the beginning
      for nested comments and should be zero or negative else.
      ST_COMMENT_STYLE cannot be nested.
    PREV_SYNTAX is the SYNTAX_WITH_FLAGS of the previous character
      (or 0 If the search cannot start in the middle of a two-character).
 
-   If successful, return 1 and store the charpos of the comment's end
+   If successful, return true and store the charpos of the comment's end
    into *CHARPOS_PTR and the corresponding bytepos into *BYTEPOS_PTR.
-   Else, return 0 and store the charpos STOP into *CHARPOS_PTR, the
+   Else, return false and store the charpos STOP into *CHARPOS_PTR, the
    corresponding bytepos into *BYTEPOS_PTR and the current nesting
    (as defined for state.incomment) in *INCOMMENT_PTR.
 
    The comment end is the last character of the comment rather than the
-     character just after the comment.
+   character just after the comment.
 
    Global syntax data is assumed to initially be valid for FROM and
    remains valid for forward search starting at the returned position. */
 
-static int
+static bool
 forw_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop,
              EMACS_INT nesting, int style, int prev_syntax,
              ptrdiff_t *charpos_ptr, ptrdiff_t *bytepos_ptr,
@@ -2244,14 +2221,12 @@
 between them, return t; otherwise return nil.  */)
   (Lisp_Object count)
 {
-  register ptrdiff_t from;
-  ptrdiff_t from_byte;
-  register ptrdiff_t stop;
-  register int c, c1;
-  register enum syntaxcode code;
+  ptrdiff_t from, from_byte, stop;
+  int c, c1;
+  enum syntaxcode code;
   int comstyle = 0;        /* style of comment encountered */
-  int comnested = 0;       /* whether the comment is nestable or not */
-  int found;
+  bool comnested = 0;      /* whether the comment is nestable or not */
+  bool found;
   EMACS_INT count1;
   ptrdiff_t out_charpos, out_bytepos;
   EMACS_INT dummy;
@@ -2271,7 +2246,8 @@
     {
       do
        {
-         int comstart_first, syntax, other_syntax;
+         bool comstart_first;
+         int syntax, other_syntax;
 
          if (from == stop)
            {
@@ -2299,8 +2275,7 @@
                 the comment section.  */
              code = Scomment;
              comstyle = SYNTAX_FLAGS_COMMENT_STYLE (other_syntax, syntax);
-             comnested
-               = comnested || SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
+             comnested |= SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
              INC_BOTH (from, from_byte);
              UPDATE_SYNTAX_TABLE_FORWARD (from);
            }
@@ -2336,7 +2311,8 @@
     {
       while (1)
        {
-         int quoted, syntax;
+         bool quoted;
+         int syntax;
 
          if (from <= stop)
            {
@@ -2370,14 +2346,13 @@
              c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              other_syntax = SYNTAX_WITH_FLAGS (c1);
              comstyle = SYNTAX_FLAGS_COMMENT_STYLE (other_syntax, syntax);
-             comnested
-               = comnested || SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
+             comnested |= SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
            }
 
          if (code == Scomment_fence)
            {
              /* Skip until first preceding unquoted comment_fence.  */
-             int fence_found = 0;
+             bool fence_found = 0;
              ptrdiff_t ini = from, ini_byte = from_byte;
 
              while (1)
@@ -2408,7 +2383,7 @@
            {
              found = back_comment (from, from_byte, stop, comnested, comstyle,
                                    &out_charpos, &out_bytepos);
-             if (found == -1)
+             if (!found)
                {
                  if (c == '\n')
                    /* This end-of-line is not an end-of-comment.
@@ -2458,26 +2433,25 @@
    ? SYNTAX (c) : Ssymbol)
 
 static Lisp_Object
-scan_lists (register EMACS_INT from, EMACS_INT count, EMACS_INT depth, int 
sexpflag)
+scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT depth, bool sexpflag)
 {
   Lisp_Object val;
-  register ptrdiff_t stop = count > 0 ? ZV : BEGV;
-  register int c, c1;
+  ptrdiff_t stop = count > 0 ? ZV : BEGV;
+  int c, c1;
   int stringterm;
-  int quoted;
-  int mathexit = 0;
-  register enum syntaxcode code, temp_code;
+  bool quoted;
+  bool mathexit = 0;
+  enum syntaxcode code, temp_code, c_code;
   EMACS_INT min_depth = depth;    /* Err out if depth gets less than this.  */
   int comstyle = 0;        /* style of comment encountered */
-  int comnested = 0;       /* whether the comment is nestable or not */
+  bool comnested = 0;      /* whether the comment is nestable or not */
   ptrdiff_t temp_pos;
   EMACS_INT last_good = from;
-  int found;
+  bool found;
   ptrdiff_t from_byte;
   ptrdiff_t out_bytepos, out_charpos;
-  int temp;
   EMACS_INT dummy;
-  int multibyte_symbol_p = sexpflag && multibyte_syntax_as_symbol;
+  bool multibyte_symbol_p = sexpflag && multibyte_syntax_as_symbol;
 
   if (depth > 0) min_depth = 0;
 
@@ -2494,7 +2468,8 @@
     {
       while (from < stop)
        {
-         int comstart_first, prefix, syntax, other_syntax;
+         bool comstart_first, prefix;
+         int syntax, other_syntax;
          UPDATE_SYNTAX_TABLE_FORWARD (from);
          c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          syntax = SYNTAX_WITH_FLAGS (c);
@@ -2520,8 +2495,7 @@
                 the comment section */
              code = Scomment;
              comstyle = SYNTAX_FLAGS_COMMENT_STYLE (other_syntax, syntax);
-             comnested
-               = comnested || SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
+             comnested |= SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
              INC_BOTH (from, from_byte);
              UPDATE_SYNTAX_TABLE_FORWARD (from);
            }
@@ -2547,8 +2521,8 @@
 
                  /* Some compilers can't handle this inside the switch.  */
                  c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
-                 temp = SYNTAX_WITH_MULTIBYTE_CHECK (c);
-                 switch (temp)
+                 c_code = SYNTAX_WITH_MULTIBYTE_CHECK (c);
+                 switch (c_code)
                    {
                    case Scharquote:
                    case Sescape:
@@ -2631,8 +2605,8 @@
                    break;
 
                  /* Some compilers can't handle this inside the switch.  */
-                 temp = SYNTAX_WITH_MULTIBYTE_CHECK (c);
-                 switch (temp)
+                 c_code = SYNTAX_WITH_MULTIBYTE_CHECK (c);
+                 switch (c_code)
                    {
                    case Scharquote:
                    case Sescape:
@@ -2691,8 +2665,7 @@
              c2 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              other_syntax = SYNTAX_WITH_FLAGS (c2);
              comstyle = SYNTAX_FLAGS_COMMENT_STYLE (other_syntax, syntax);
-             comnested
-               = comnested || SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
+             comnested |= SYNTAX_FLAGS_COMMENT_NESTED (other_syntax);
            }
 
          /* Quoting turns anything except a comment-ender
@@ -2777,13 +2750,13 @@
                break;
              found = back_comment (from, from_byte, stop, comnested, comstyle,
                                    &out_charpos, &out_bytepos);
-             /* FIXME:  if found == -1, then it really wasn't a comment-end.
+             /* FIXME:  if !found, it really wasn't a comment-end.
                 For single-char Sendcomment, we can't do much about it apart
                 from skipping the char.
                 For 2-char endcomments, we could try again, taking both
                 chars as separate entities, but it's a lot of trouble
                 for very little gain, so we don't bother either.  -sm */
-             if (found != -1)
+             if (found)
                from = out_charpos, from_byte = out_bytepos;
              break;
 
@@ -2938,7 +2911,7 @@
 /* Parse forward from FROM / FROM_BYTE to END,
    assuming that FROM has state OLDSTATE (nil means FROM is start of function),
    and return a description of the state of the parse at END.
-   If STOPBEFORE is nonzero, stop at the start of an atom.
+   If STOPBEFORE, stop at the start of an atom.
    If COMMENTSTOP is 1, stop at the start of a comment.
    If COMMENTSTOP is -1, stop at the start or end of a comment,
    after the beginning of a string, or after the end of a string.  */
@@ -2946,30 +2919,29 @@
 static void
 scan_sexps_forward (struct lisp_parse_state *stateptr,
                    ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t end,
-                   EMACS_INT targetdepth, int stopbefore,
+                   EMACS_INT targetdepth, bool stopbefore,
                    Lisp_Object oldstate, int commentstop)
 {
   struct lisp_parse_state state;
-
-  register enum syntaxcode code;
+  enum syntaxcode code;
   int c1;
-  int comnested;
+  bool comnested;
   struct level { ptrdiff_t last, prev; };
   struct level levelstart[100];
-  register struct level *curlevel = levelstart;
+  struct level *curlevel = levelstart;
   struct level *endlevel = levelstart + 100;
-  register EMACS_INT depth; /* Paren depth of current scanning location.
+  EMACS_INT depth;      /* Paren depth of current scanning location.
                           level - levelstart equals this except
                           when the depth becomes negative.  */
   EMACS_INT mindepth;          /* Lowest DEPTH value seen.  */
-  int start_quoted = 0;                /* Nonzero means starting after a char 
quote */
+  bool start_quoted = 0;       /* True means starting after a char quote.  */
   Lisp_Object tem;
   ptrdiff_t prev_from;         /* Keep one character before FROM.  */
   ptrdiff_t prev_from_byte;
   int prev_from_syntax;
-  int boundary_stop = commentstop == -1;
-  int nofence;
-  int found;
+  bool boundary_stop = commentstop == -1;
+  bool nofence;
+  bool found;
   ptrdiff_t out_bytepos, out_charpos;
   int temp;
 
@@ -3100,8 +3072,8 @@
             terminates the comment section.  */
          state.comstyle
            = SYNTAX_FLAGS_COMMENT_STYLE (syntax, prev_from_syntax);
-         comnested = SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax);
-         comnested = comnested || SYNTAX_FLAGS_COMMENT_NESTED (syntax);
+         comnested = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax)
+                      | SYNTAX_FLAGS_COMMENT_NESTED (syntax));
          state.incomment = comnested ? 1 : -1;
          state.comstr_start = prev_from;
          INC_FROM;
@@ -3146,9 +3118,9 @@
          while (from < end)
            {
              /* Some compilers can't handle this inside the switch.  */
-             temp = FETCH_CHAR_AS_MULTIBYTE (from_byte);
-             temp = SYNTAX (temp);
-             switch (temp)
+             int symchar = FETCH_CHAR_AS_MULTIBYTE (from_byte);
+             enum syntaxcode symcharcode = SYNTAX (symchar);
+             switch (symcharcode)
                {
                case Scharquote:
                case Sescape:
@@ -3230,19 +3202,20 @@
            while (1)
              {
                int c;
+               enum syntaxcode c_code;
 
                if (from >= end) goto done;
                c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
                /* Some compilers can't handle this inside the switch.  */
-               temp = SYNTAX (c);
+               c_code = SYNTAX (c);
 
-               /* Check TEMP here so that if the char has
+               /* Check C_CODE here so that if the char has
                   a syntax-table property which says it is NOT
                   a string character, it does not end the string.  */
-               if (nofence && c == state.instring && temp == Sstring)
+               if (nofence && c == state.instring && c_code == Sstring)
                  break;
 
-               switch (temp)
+               switch (c_code)
                  {
                  case Sstring_fence:
                    if (!nofence) goto string_end;
@@ -3398,25 +3371,25 @@
      create syntax tables.  */
   Fput (Qsyntax_table, Qchar_table_extra_slots, make_number (0));
 
-  temp = AREF (Vsyntax_code_object, (int) Swhitespace);
+  temp = AREF (Vsyntax_code_object, Swhitespace);
 
   Vstandard_syntax_table = Fmake_char_table (Qsyntax_table, temp);
 
   /* Control characters should not be whitespace.  */
-  temp = AREF (Vsyntax_code_object, (int) Spunct);
+  temp = AREF (Vsyntax_code_object, Spunct);
   for (i = 0; i <= ' ' - 1; i++)
     SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, i, temp);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 0177, temp);
 
   /* Except that a few really are whitespace.  */
-  temp = AREF (Vsyntax_code_object, (int) Swhitespace);
+  temp = AREF (Vsyntax_code_object, Swhitespace);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, ' ', temp);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\t', temp);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\n', temp);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 015, temp);
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 014, temp);
 
-  temp = AREF (Vsyntax_code_object, (int) Sword);
+  temp = AREF (Vsyntax_code_object, Sword);
   for (i = 'a'; i <= 'z'; i++)
     SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, i, temp);
   for (i = 'A'; i <= 'Z'; i++)
@@ -3440,18 +3413,18 @@
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '}',
                        Fcons (make_number (Sclose), make_number ('{')));
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '"',
-                       Fcons (make_number ((int) Sstring), Qnil));
+                       Fcons (make_number (Sstring), Qnil));
   SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\\',
-                       Fcons (make_number ((int) Sescape), Qnil));
+                       Fcons (make_number (Sescape), Qnil));
 
-  temp = AREF (Vsyntax_code_object, (int) Ssymbol);
+  temp = AREF (Vsyntax_code_object, Ssymbol);
   for (i = 0; i < 10; i++)
     {
       c = "_-+*/&|<>="[i];
       SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, c, temp);
     }
 
-  temp = AREF (Vsyntax_code_object, (int) Spunct);
+  temp = AREF (Vsyntax_code_object, Spunct);
   for (i = 0; i < 12; i++)
     {
       c = ".,;:address@hidden'`"[i];
@@ -3459,7 +3432,7 @@
     }
 
   /* All multibyte characters have syntax `word' by default.  */
-  temp = AREF (Vsyntax_code_object, (int) Sword);
+  temp = AREF (Vsyntax_code_object, Sword);
   char_table_set_range (Vstandard_syntax_table, 0x80, MAX_CHAR, temp);
 }
 

=== modified file 'src/syntax.h'
--- a/src/syntax.h      2013-01-01 09:11:05 +0000
+++ b/src/syntax.h      2013-06-20 18:59:08 +0000
@@ -19,7 +19,7 @@
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-extern void update_syntax_table (ptrdiff_t, EMACS_INT, int, Lisp_Object);
+extern void update_syntax_table (ptrdiff_t, EMACS_INT, bool, Lisp_Object);
 
 /* The standard syntax table is stored where it will automatically
    be used in all new buffers.  */
@@ -99,7 +99,7 @@
      _syntax_temp = SYNTAX_ENTRY (c);                                  \
      (CONSP (_syntax_temp)                                             \
       ? XINT (XCAR (_syntax_temp))                                     \
-      : (int) Swhitespace); })
+      : Swhitespace); })
 
 #define SYNTAX_MATCH(c)                                                        
\
   ({ Lisp_Object _syntax_temp;                                         \
@@ -112,14 +112,14 @@
 #define SYNTAX(c)                                                      \
   (syntax_temp = SYNTAX_ENTRY ((c)),                                   \
    (CONSP (syntax_temp)                                                        
\
-    ? (enum syntaxcode) (XINT (XCAR (syntax_temp)) & 0xff)     \
+    ? (enum syntaxcode) (XINT (XCAR (syntax_temp)) & 0xff)             \
     : Swhitespace))
 
 #define SYNTAX_WITH_FLAGS(c)                                           \
   (syntax_temp = SYNTAX_ENTRY ((c)),                                   \
    (CONSP (syntax_temp)                                                        
\
-    ? XINT (XCAR (syntax_temp))                                        \
-    : (int) Swhitespace))
+    ? XINT (XCAR (syntax_temp))                                                
\
+    : Swhitespace))
 
 #define SYNTAX_MATCH(c)                                                        
\
   (syntax_temp = SYNTAX_ENTRY ((c)),                                   \
@@ -130,17 +130,17 @@
 
 
 /* Whether the syntax of the character C has the prefix flag set.  */
-extern int syntax_prefix_flag_p (int c);
-
-/* This array, indexed by a character, contains the syntax code which that
- character signifies (as a char).  For example,
- (enum syntaxcode) syntax_spec_code['w'] is Sword.  */
-
-extern unsigned char syntax_spec_code[0400];
+extern bool syntax_prefix_flag_p (int c);
+
+/* This array, indexed by a character less than 256, contains the
+   syntax code which that character signifies (as an unsigned char).
+   For example, syntax_spec_code['w'] == Sword.  */
+
+extern unsigned char const syntax_spec_code[0400];
 
 /* Indexed by syntax code, give the letter that describes it.  */
 
-extern char syntax_code_spec[16];
+extern char const syntax_code_spec[16];
 
 /* Convert the byte offset BYTEPOS into a character position,
    for the object recorded in gl_state with SETUP_SYNTAX_TABLE_FOR_OBJECT.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]