emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/lread.c


From: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/lread.c
Date: Mon, 17 Feb 2003 17:42:05 -0500

Index: emacs/src/lread.c
diff -c emacs/src/lread.c:1.306 emacs/src/lread.c:1.307
*** emacs/src/lread.c:1.306     Thu Feb 13 07:44:57 2003
--- emacs/src/lread.c   Mon Feb 17 17:42:05 2003
***************
*** 2251,2257 ****
      case '?':
        {
        int discard;
!       int nextc;
  
        c = READCHAR;
        if (c < 0)
--- 2251,2258 ----
      case '?':
        {
        int discard;
!       int next_char;
!       int ok;
  
        c = READCHAR;
        if (c < 0)
***************
*** 2262,2274 ****
        else if (BASE_LEADING_CODE_P (c))
          c = read_multibyte (c, readcharfun);
  
!       nextc = READCHAR;
!       UNREAD (nextc);
!       if (nextc > 040
!           && !(nextc == '?' 
!                || nextc == '\"' || nextc == '\'' || nextc == ';'
!                || nextc == '(' || nextc == ')'
!                || nextc == '[' || nextc == ']' || nextc == '#'))
          Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil));
  
        return make_number (c);
--- 2263,2287 ----
        else if (BASE_LEADING_CODE_P (c))
          c = read_multibyte (c, readcharfun);
  
!       next_char = READCHAR;
!       if (next_char == '.')
!         {
!           /* Only a dotted-pair dot is valid after a char constant.  */
!           int next_next_char = READCHAR;
!           UNREAD (next_next_char);
! 
!           ok = (next_next_char <= 040
!                 || index ("\"'`;([#?", next_next_char)
!                 || (new_backquote_flag && next_next_char == ','));
!         }
!       else
!         {
!           ok = (next_char <= 040
!                 || index ("\"'`;()[]#", next_char)
!                 || (new_backquote_flag && next_char == ','));
!         }
!       UNREAD (next_char);
!       if (!ok)
          Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil));
  
        return make_number (c);
***************
*** 2423,2429 ****
        UNREAD (next_char);
  
        if (next_char <= 040
!           || index ("\"'`,(", next_char))
          {
            *pch = c;
            return Qnil;
--- 2436,2443 ----
        UNREAD (next_char);
  
        if (next_char <= 040
!           || index ("\"'`;([#?", next_char)
!           || (new_backquote_flag && next_char == ','))
          {
            *pch = c;
            return Qnil;
***************
*** 2444,2452 ****
          char *end = read_buffer + read_buffer_size;
  
          while (c > 040
!                && !(c == '\"' || c == '\'' || c == ';'
!                     || c == '(' || c == ')'
!                     || c == '[' || c == ']' || c == '#'))
            {
              if (end - p < MAX_MULTIBYTE_LENGTH)
                {
--- 2458,2465 ----
          char *end = read_buffer + read_buffer_size;
  
          while (c > 040
!                && !index ("\"'`;()[]#", c)
!                && !(new_backquote_flag && c == ','))
            {
              if (end - p < MAX_MULTIBYTE_LENGTH)
                {




reply via email to

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