commit 39aaf88feb564bc1d5150ccf53da71d7809a217a (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Wed Aug 31 23:05:48 2016 -0700 Fix over-substitution of quotes on error Problem reported by Tino Calancha in: http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00000.html * src/print.c (print_error_message): Substitute quotes in errmsg only when gotten from a property. diff --git a/src/print.c b/src/print.c index 5531210..d54a7c9 100644 --- a/src/print.c +++ b/src/print.c @@ -920,7 +920,7 @@ print_error_message (Lisp_Object data, Lisp_Object stream, const char *context, else { Lisp_Object error_conditions = Fget (errname, Qerror_conditions); - errmsg = Fget (errname, Qerror_message); + errmsg = Fsubstitute_command_keys (Fget (errname, Qerror_message)); file_error = Fmemq (Qfile_error, error_conditions); } @@ -939,7 +939,7 @@ print_error_message (Lisp_Object data, Lisp_Object stream, const char *context, if (!STRINGP (errmsg)) write_string_1 ("peculiar error", stream); else if (SCHARS (errmsg)) - Fprinc (Fsubstitute_command_keys (errmsg), stream); + Fprinc (errmsg, stream); else sep = NULL; commit 64507149f4296029ab80c2caa97ec0f76264bdbb Author: Eli Zaretskii Date: Wed Aug 31 20:22:22 2016 +0300 Improve testing of etags * test/manual/etags/y-src/cccp.c: * test/manual/etags/y-src/parse.c: Correct #line directives to allow testing invalidate_nodes in etags.c. * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adapt to changes in test files. diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good index 19bc0be..6ee8bec 100644 --- a/test/manual/etags/CTAGS.good +++ b/test/manual/etags/CTAGS.good @@ -351,7 +351,6 @@ CHAR_TABLE_REF c-src/emacs/src/lisp.h /^CHAR_TABLE_REF (Lisp_Object ct, int idx) CHAR_TABLE_REF_ASCII c-src/emacs/src/lisp.h /^CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t id/ CHAR_TABLE_SET c-src/emacs/src/lisp.h /^CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Obje/ CHAR_TABLE_STANDARD_SLOTS c-src/emacs/src/lisp.h 1697 -CHAR_TYPE_SIZE cccp.y 87 CHAR_TYPE_SIZE y-src/cccp.y 87 CHECKFLAGS make-src/Makefile /^CHECKFLAGS=-DDEBUG -Wno-unused-function$/ CHECKOBJS make-src/Makefile /^CHECKOBJS=chkmalloc.o chkxm.o$/ @@ -383,13 +382,9 @@ CHECK_VECTOR c-src/emacs/src/lisp.h /^CHECK_VECTOR (Lisp_Object x)$/ CHECK_VECTOR_OR_STRING c-src/emacs/src/lisp.h /^CHECK_VECTOR_OR_STRING (Lisp_Object x)$/ CHECK_WINDOW c-src/emacs/src/lisp.h /^CHECK_WINDOW (Lisp_Object x)$/ CK_ABS_C y-src/parse.y /^#define CK_ABS_C(x) if((x)MAX_COL)/ -CK_ABS_C parse.y /^#define CK_ABS_C(x) if((x)MAX_COL)/ CK_ABS_R y-src/parse.y /^#define CK_ABS_R(x) if((x)MAX_ROW)/ -CK_ABS_R parse.y /^#define CK_ABS_R(x) if((x)MAX_ROW)/ CK_REL_C y-src/parse.y /^#define CK_REL_C(x) if( ((x)>0 && MAX_COL-(x)0 && MAX_COL-(x)0 && MAX_ROW-(x)0 && MAX_ROW-(x) [Key,'='], valseq(Val). keyvalcgi prol-src/natded.prolog /^keyvalcgi(Key,Val):-$/ keyvalscgi prol-src/natded.prolog /^keyvalscgi(KeyVals),$/ keyvalseq prol-src/natded.prolog /^keyvalseq([KeyVal|KeyVals]) --> $/ -keyword_parsing cccp.y 73 keyword_parsing y-src/cccp.y 73 -keywords cccp.y 115 keywords y-src/cccp.y 114 keywords y-src/cccp.y 306 kind c-src/emacs/src/keyboard.c 11024 @@ -3324,12 +3271,9 @@ lce_textdomain php-src/lce_functions.php /^ function lce_textdomain($domain lce_textdomain php-src/lce_functions.php /^ function lce_textdomain($domain)$/ leasqr html-src/software.html /^Leasqr$/ left c-src/etags.c 216 -left_shift cccp.y /^left_shift (a, b)$/ left_shift y-src/cccp.y /^left_shift (a, b)$/ len c-src/etags.c 237 length c-src/etags.c 2495 -length cccp.y 44 -length cccp.y 114 length y-src/cccp.y 44 length y-src/cccp.y 113 letter tex-src/texinfo.tex /^\\chapmacro {#1}{Appendix \\appendixletter}%$/ @@ -3343,7 +3287,6 @@ letter tex-src/texinfo.tex /^ {\\appendixletter}$/ letter: tex-src/texinfo.tex /^\\xdef\\thischapter{Appendix \\appendixletter: \\noexp/ level c-src/emacs/src/lisp.h 3153 lex prol-src/natded.prolog /^lex(W,SynOut,Sem):-$/ -lexptr cccp.y 332 lexptr y-src/cccp.y 332 licenze html-src/softwarelibero.html /^Licenze d'uso di un programma$/ limit cp-src/Range.h /^ double limit (void) const { return rng_limit; }$/ @@ -3417,7 +3360,6 @@ loadPORManager php-src/lce_functions.php /^ function &loadPORManager()$/ local_if_set c-src/emacs/src/lisp.h 2338 location cp-src/clheir.hpp 33 location cp-src/clheir.hpp /^ location() { }$/ -lookup cccp.y /^lookup (name, len, hash)$/ lookup y-src/cccp.y /^lookup (name, len, hash)$/ lowcase c-src/etags.c /^#define lowcase(c) tolower (CHAR (c))$/ lucid_event_type_list_p c-src/emacs/src/keyboard.c /^lucid_event_type_list_p (Lisp_Object object)$/ @@ -3556,9 +3498,6 @@ name tex-src/texinfo.tex /^\\begingroup\\defname {#1}{User Option}%$/ name tex-src/texinfo.tex /^\\begingroup\\defname {\\code{#1} #2}{Variable}%$/ name tex-src/texinfo.tex /^\\begingroup\\defname {\\code{#2} #3}{#1}$/ name tex-src/texinfo.tex /^\\begingroup\\defname {#2}{#1}\\deftpargs{#3}\\endgrou/ -name cccp.y 43 -name cccp.y 114 -name cccp.y 114 name y-src/cccp.y 43 name y-src/cccp.y 113 name y-src/cccp.y 113 @@ -3585,7 +3524,6 @@ next c-src/emacs/src/lisp.h 1848 next c-src/emacs/src/lisp.h 2192 next c-src/emacs/src/lisp.h 3028 next c-src/emacs/src/lisp.h 3134 -next cccp.y 42 next y-src/cccp.y 42 next-file el-src/emacs/lisp/progmodes/etags.el /^(defun next-file (&optional initialize novisit)$/ next-file-list el-src/emacs/lisp/progmodes/etags.el /^(defvar next-file-list nil$/ @@ -3659,9 +3597,7 @@ object_registry cp-src/clheir.cpp 10 objtag c-src/etags.c 2453 objvar c-src/emacs/src/lisp.h 2297 obstack_chunk_alloc y-src/parse.y 46 -obstack_chunk_alloc parse.y 46 obstack_chunk_free y-src/parse.y 47 -obstack_chunk_free parse.y 47 ocatseen c-src/etags.c 2477 octave_MDiagArray2_h cp-src/MDiagArray2.h 29 octave_Range_h cp-src/Range.h 24 @@ -3684,7 +3620,6 @@ open objc-src/PackInsp.m /^-open:sender$/ open-dribble-file c-src/emacs/src/keyboard.c /^DEFUN ("open-dribble-file", Fopen_dribble_file, So/ openInWorkspace objc-src/PackInsp.m /^static void openInWorkspace(const char *filename)$/ operationKeys objcpp-src/SimpleCalc.M /^- operationKeys:sender$/ -operator cccp.y 438 operator y-src/cccp.y 438 operator ++ cp-src/functions.cpp /^Date & Date::operator ++ ( void ){$/ operator += cp-src/functions.cpp /^Date & Date::operator += ( int days ){$/ @@ -3758,23 +3693,16 @@ parent c-src/emacs/src/keyboard.c 8745 parent c-src/emacs/src/lisp.h 1590 parse prol-src/natded.prolog /^parse(Ws,Cat):-$/ parseFromVars php-src/lce_functions.php /^ function parseFromVars($prefix)$/ -parse_c_expression cccp.y /^parse_c_expression (string)$/ parse_c_expression y-src/cccp.y /^parse_c_expression (string)$/ parse_cgi prol-src/natded.prolog /^parse_cgi(TokenList,KeyVals):-$/ parse_error y-src/parse.y 81 -parse_error parse.y 81 -parse_escape cccp.y /^parse_escape (string_ptr)$/ parse_escape y-src/cccp.y /^parse_escape (string_ptr)$/ parse_hash y-src/parse.y 63 -parse_hash parse.y 63 parse_menu_item c-src/emacs/src/keyboard.c /^parse_menu_item (Lisp_Object item, int inmenubar)$/ parse_modifiers c-src/emacs/src/keyboard.c /^parse_modifiers (Lisp_Object symbol)$/ parse_modifiers_uncached c-src/emacs/src/keyboard.c /^parse_modifiers_uncached (Lisp_Object symbol, ptrd/ -parse_number cccp.y /^parse_number (olen)$/ parse_number y-src/cccp.y /^parse_number (olen)$/ parse_return y-src/parse.y 73 -parse_return parse.y 73 -parse_return_error cccp.y 70 parse_return_error y-src/cccp.y 70 parse_solitary_modifier c-src/emacs/src/keyboard.c /^parse_solitary_modifier (Lisp_Object symbol)$/ parse_tool_bar_item c-src/emacs/src/keyboard.c /^parse_tool_bar_item (Lisp_Object key, Lisp_Object / @@ -3807,7 +3735,6 @@ position_to_Time c-src/emacs/src/keyboard.c /^position_to_Time (ptrdiff_t pos)$/ posix_memalign c-src/emacs/src/gmalloc.c /^posix_memalign (void **memptr, size_t alignment, s/ posn-at-point c-src/emacs/src/keyboard.c /^DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_p/ posn-at-x-y c-src/emacs/src/keyboard.c /^DEFUN ("posn-at-x-y", Fposn_at_x_y, Sposn_at_x_y, / -possible_sum_sign cccp.y /^#define possible_sum_sign(a, b, sum) ((((a) ^ (b))/ possible_sum_sign y-src/cccp.y /^#define possible_sum_sign(a, b, sum) ((((a) ^ (b))/ post pyt-src/server.py /^ def post(self):$/ post pyt-src/server.py /^ def post(self):$/ @@ -3975,7 +3902,6 @@ return_to_command_loop c-src/emacs/src/keyboard.c 135 reverse prol-src/natded.prolog /^reverse([],Ws,Ws).$/ revert objc-src/PackInsp.m /^-revert:sender$/ right c-src/etags.c 216 -right_shift cccp.y /^right_shift (a, b)$/ right_shift y-src/cccp.y /^right_shift (a, b)$/ ring1 c.c 241 ring2 c.c 242 @@ -4173,7 +4099,6 @@ suffix c-src/etags.c 186 suffixes c-src/etags.c 195 suggest_asking_for_help c-src/etags.c /^suggest_asking_for_help (void)$/ suspend-emacs c-src/emacs/src/keyboard.c /^DEFUN ("suspend-emacs", Fsuspend_emacs, Ssuspend_e/ -sval cccp.y 117 sval y-src/cccp.y 116 swallow_events c-src/emacs/src/keyboard.c /^swallow_events (bool do_display)$/ switch_line_buffers c-src/etags.c /^#define switch_line_buffers() (curndx = 1 - curndx/ @@ -4326,13 +4251,10 @@ toc_line perl-src/htlmify-cystic /^sub toc_line ($)$/ toggleDescription objc-src/PackInsp.m /^-toggleDescription$/ tok c-src/etags.c 2491 token c-src/etags.c 2508 -token cccp.y 437 -token cccp.y 439 token y-src/cccp.y 437 token y-src/cccp.y 439 tokenize prol-src/natded.prolog /^tokenize([C1,C2,C3|Cs],Xs-Ys,TsResult):- % spe/ tokenizeatom prol-src/natded.prolog /^tokenizeatom(Atom,Ws):-$/ -tokentab2 cccp.y 442 tokentab2 y-src/cccp.y 442 tool_bar_item_properties c-src/emacs/src/keyboard.c 7970 tool_bar_items c-src/emacs/src/keyboard.c /^tool_bar_items (Lisp_Object reuse, int *nitems)$/ @@ -4391,7 +4313,6 @@ unblock_input_to c-src/emacs/src/keyboard.c /^unblock_input_to (int level)$/ unchar c-src/h.h 99 unexpand-abbrev c-src/abbrev.c /^DEFUN ("unexpand-abbrev", Funexpand_abbrev, Sunexp/ unread_switch_frame c-src/emacs/src/keyboard.c 204 -unsignedp cccp.y 113 unsignedp y-src/cccp.y 112 uprintmax_t c-src/emacs/src/lisp.h 149 uprintmax_t c-src/emacs/src/lisp.h 154 @@ -4417,7 +4338,6 @@ validate php-src/lce_functions.php /^ function validate($value)$/ valloc c-src/emacs/src/gmalloc.c /^valloc (size_t size)$/ valseq prol-src/natded.prolog /^valseq([Val|Vals]) --> val(Val), plusvalseq(Vals)./ value c-src/emacs/src/lisp.h 687 -value cccp.y 113 value y-src/cccp.y 112 var c-src/emacs/src/keyboard.c 11023 var c-src/emacs/src/lisp.h 3137 @@ -4435,11 +4355,9 @@ visit-tags-table el-src/emacs/lisp/progmodes/etags.el /^(defun visit-tags-table visit-tags-table-buffer el-src/emacs/lisp/progmodes/etags.el /^(defun visit-tags-table-buffer (&optional cont)$/ void c-src/emacs/src/lisp.h /^INLINE void (check_cons_list) (void) { lisp_h_chec/ voidfuncptr c-src/emacs/src/lisp.h 2108 -voidval cccp.y 116 voidval y-src/cccp.y 115 wait_status_ptr_t c.c 161 waiting_for_input c-src/emacs/src/keyboard.c 150 -warning cccp.y /^warning (msg)$/ warning y-src/cccp.y /^warning (msg)$/ weak c-src/emacs/src/lisp.h 1830 weak_alias c-src/emacs/src/gmalloc.c /^weak_alias (free, cfree)$/ @@ -4505,34 +4423,21 @@ y cp-src/clheir.hpp 58 y-get-selection-internal c.c /^ Fy_get_selection_internal, Sy_get_selection_/ yyalloc /usr/share/bison/bison.simple 83 yyalloc /usr/share/bison/bison.simple 84 -yycheck parse.y 330 -yycheck cccp.y 301 yyclearin /usr/share/bison/bison.simple 149 yyclearin /usr/share/bison/bison.simple 150 yydebug /usr/share/bison/bison.simple 237 yydebug /usr/share/bison/bison.simple 238 -yydefact parse.y 219 -yydefact cccp.y 239 -yydefgoto parse.y 237 -yydefgoto cccp.y 251 yyerrhandle /usr/share/bison/bison.simple 848 -yyerrhandle /usr/share/bison/bison.simple 848 -yyerrlab1 /usr/share/bison/bison.simple 823 yyerrlab1 /usr/share/bison/bison.simple 823 yyerrok /usr/share/bison/bison.simple 148 yyerrok /usr/share/bison/bison.simple 149 -yyerror cccp.y /^yyerror (s)$/ yyerror y-src/cccp.y /^yyerror (s)$/ yyerrstatus /usr/share/bison/bison.simple 846 -yyerrstatus /usr/share/bison/bison.simple 846 -yylex cccp.y /^yylex ()$/ yylex y-src/cccp.y /^yylex ()$/ yyls /usr/share/bison/bison.simple 88 yyls /usr/share/bison/bison.simple 89 yylsp /usr/share/bison/bison.simple 748 yylsp /usr/share/bison/bison.simple 921 -yylsp /usr/share/bison/bison.simple 748 -yylsp /usr/share/bison/bison.simple 921 yymemcpy /usr/share/bison/bison.simple 264 yymemcpy /usr/share/bison/bison.simple /^yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T/ yymemcpy /usr/share/bison/bison.simple 265 @@ -4541,50 +4446,21 @@ yyn /usr/share/bison/bison.simple 755 yyn /usr/share/bison/bison.simple 861 yyn /usr/share/bison/bison.simple 895 yyn /usr/share/bison/bison.simple 903 -yyn /usr/share/bison/bison.simple 755 -yyn /usr/share/bison/bison.simple 861 -yyn /usr/share/bison/bison.simple 895 -yyn /usr/share/bison/bison.simple 903 -yynewstate /usr/share/bison/bison.simple 763 -yynewstate /usr/share/bison/bison.simple 925 yynewstate /usr/share/bison/bison.simple 763 yynewstate /usr/share/bison/bison.simple 925 -yypact parse.y 242 -yypact cccp.y 256 yyparse /usr/share/bison/bison.simple /^yyparse (YYPARSE_PARAM_ARG)$/ yyparse /usr/share/bison/bison.simple /^yyparse (YYPARSE_PARAM_ARG)$/ -yypgoto parse.y 260 -yypgoto cccp.y 268 -yyprhs parse.y 134 -yyprhs cccp.y 167 -yyr1 parse.y 197 -yyr1 cccp.y 219 -yyr2 parse.y 207 -yyr2 cccp.y 228 -yyresult /usr/share/bison/bison.simple 932 -yyresult /usr/share/bison/bison.simple 939 -yyresult /usr/share/bison/bison.simple 947 yyresult /usr/share/bison/bison.simple 932 yyresult /usr/share/bison/bison.simple 939 yyresult /usr/share/bison/bison.simple 947 yyreturn /usr/share/bison/bison.simple 933 yyreturn /usr/share/bison/bison.simple 940 -yyreturn /usr/share/bison/bison.simple 933 -yyreturn /usr/share/bison/bison.simple 940 -yyrhs parse.y 142 -yyrhs cccp.y 174 -yyrline parse.y 171 -yyrline cccp.y 195 yyss /usr/share/bison/bison.simple 85 yyss /usr/share/bison/bison.simple 86 yystate /usr/share/bison/bison.simple 757 yystate /usr/share/bison/bison.simple 761 yystate /usr/share/bison/bison.simple 875 yystate /usr/share/bison/bison.simple 924 -yystate /usr/share/bison/bison.simple 757 -yystate /usr/share/bison/bison.simple 761 -yystate /usr/share/bison/bison.simple 875 -yystate /usr/share/bison/bison.simple 924 yystpcpy /usr/share/bison/bison.simple 316 yystpcpy /usr/share/bison/bison.simple /^yystpcpy (char *yydest, const char *yysrc)$/ yystpcpy /usr/share/bison/bison.simple 317 @@ -4593,19 +4469,10 @@ yystrlen /usr/share/bison/bison.simple 293 yystrlen /usr/share/bison/bison.simple /^yystrlen (const char *yystr)$/ yystrlen /usr/share/bison/bison.simple 294 yystrlen /usr/share/bison/bison.simple /^yystrlen (const char *yystr)$/ -yystype cccp.y 118 -yytable parse.y 269 -yytable cccp.y 277 -yytname parse.y 185 -yytname cccp.y 208 -yytranslate parse.y 101 -yytranslate cccp.y 135 yyvs /usr/share/bison/bison.simple 86 yyvs /usr/share/bison/bison.simple 87 yyvsp /usr/share/bison/bison.simple 746 yyvsp /usr/share/bison/bison.simple 919 -yyvsp /usr/share/bison/bison.simple 746 -yyvsp /usr/share/bison/bison.simple 919 z c.c 144 z c.c 164 z cp-src/clheir.hpp 49 diff --git a/test/manual/etags/ETAGS.good_1 b/test/manual/etags/ETAGS.good_1 index 58661bb..2f1a9db 100644 --- a/test/manual/etags/ETAGS.good_1 +++ b/test/manual/etags/ETAGS.good_1 @@ -3961,49 +3961,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1181 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -VOIDSTAR parse_hash;63, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -char *instr;instr80, -int parse_error 81, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2110 +/usr/share/bison/bison.simple,1693 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -4070,28 +4028,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -4112,64 +4048,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,1579 -typedef unsigned char U_CHAR;38, -struct arglist 41, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, - struct constant 113, - struct name 114, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2110 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/ETAGS.good_2 b/test/manual/etags/ETAGS.good_2 index ecfa7d1..ffa483b 100644 --- a/test/manual/etags/ETAGS.good_2 +++ b/test/manual/etags/ETAGS.good_2 @@ -4548,59 +4548,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1464 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -int yylex 57, -void yyerror 59, -void yyerror 61, -VOIDSTAR parse_hash;63, -extern VOIDSTAR hash_find(64, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -YYSTYPE make_list 75, -YYSTYPE make_list 77, -char *instr;instr80, -int parse_error 81, -extern struct obstack tmp_mem;82, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -extern struct node *yylval;yylval305, -unsigned char parse_cell_or_range 308, -unsigned char parse_cell_or_range 310, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2180 +/usr/share/bison/bison.simple,1729 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -4669,30 +4617,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - YYDPRINTF 917, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyerror 946, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -4713,76 +4637,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,2005 -typedef unsigned char U_CHAR;38, -struct arglist 41, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int yylex 66, -void yyerror 67, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -extern unsigned char is_idstart[is_idstart76, -extern unsigned char is_idstart[], is_idchar[is_idchar76, -extern unsigned char is_idstart[], is_idchar[], is_hor_space[is_hor_space76, -extern char *xmalloc xmalloc78, -extern int pedantic;81, -extern int traditional;84, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, -static void integer_overflow 106, -static long left_shift 107, -static long right_shift 108, - struct constant 113, - struct name 114, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -extern int yydebug;919, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2180 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/ETAGS.good_3 b/test/manual/etags/ETAGS.good_3 index 5f84aa9..ac1f97e 100644 --- a/test/manual/etags/ETAGS.good_3 +++ b/test/manual/etags/ETAGS.good_3 @@ -4323,49 +4323,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1181 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -VOIDSTAR parse_hash;63, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -char *instr;instr80, -int parse_error 81, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2168 +/usr/share/bison/bison.simple,1751 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -4435,28 +4393,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -4477,79 +4413,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,2106 -typedef unsigned char U_CHAR;38, -struct arglist 41, - struct arglist *next;next42, - U_CHAR *name;name43, - int length;44, - int argno;45, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, - struct constant 113, - struct constant {long value;113, - struct constant {long value; int unsignedp;113, - struct constant {long value; int unsignedp;} integer;113, - struct name 114, - struct name {U_CHAR *address;address114, - struct name {U_CHAR *address; int length;114, - struct name {U_CHAR *address; int length;} name;114, - struct arglist *keywords;keywords115, - int voidval;116, - char *sval;sval117, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, - char *operator;operator438, - int token;439, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2168 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/ETAGS.good_4 b/test/manual/etags/ETAGS.good_4 index 12e2a65..8184e3a 100644 --- a/test/manual/etags/ETAGS.good_4 +++ b/test/manual/etags/ETAGS.good_4 @@ -4125,49 +4125,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1181 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -VOIDSTAR parse_hash;63, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -char *instr;instr80, -int parse_error 81, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2110 +/usr/share/bison/bison.simple,1693 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -4234,28 +4192,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -4276,64 +4212,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,1579 -typedef unsigned char U_CHAR;38, -struct arglist 41, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, - struct constant 113, - struct name 114, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2110 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/ETAGS.good_5 b/test/manual/etags/ETAGS.good_5 index 98de4f2..708ba17 100644 --- a/test/manual/etags/ETAGS.good_5 +++ b/test/manual/etags/ETAGS.good_5 @@ -5074,59 +5074,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1464 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -int yylex 57, -void yyerror 59, -void yyerror 61, -VOIDSTAR parse_hash;63, -extern VOIDSTAR hash_find(64, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -YYSTYPE make_list 75, -YYSTYPE make_list 77, -char *instr;instr80, -int parse_error 81, -extern struct obstack tmp_mem;82, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -extern struct node *yylval;yylval305, -unsigned char parse_cell_or_range 308, -unsigned char parse_cell_or_range 310, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2238 +/usr/share/bison/bison.simple,1787 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -5198,30 +5146,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - YYDPRINTF 917, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyerror 946, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -5242,91 +5166,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,2532 -typedef unsigned char U_CHAR;38, -struct arglist 41, - struct arglist *next;next42, - U_CHAR *name;name43, - int length;44, - int argno;45, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int yylex 66, -void yyerror 67, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -extern unsigned char is_idstart[is_idstart76, -extern unsigned char is_idstart[], is_idchar[is_idchar76, -extern unsigned char is_idstart[], is_idchar[], is_hor_space[is_hor_space76, -extern char *xmalloc xmalloc78, -extern int pedantic;81, -extern int traditional;84, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, -static void integer_overflow 106, -static long left_shift 107, -static long right_shift 108, - struct constant 113, - struct constant {long value;113, - struct constant {long value; int unsignedp;113, - struct constant {long value; int unsignedp;} integer;113, - struct name 114, - struct name {U_CHAR *address;address114, - struct name {U_CHAR *address; int length;114, - struct name {U_CHAR *address; int length;} name;114, - struct arglist *keywords;keywords115, - int voidval;116, - char *sval;sval117, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, - char *operator;operator438, - int token;439, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -extern int yydebug;919, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2238 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/ETAGS.good_6 b/test/manual/etags/ETAGS.good_6 index f5e0ad4..35bb979 100644 --- a/test/manual/etags/ETAGS.good_6 +++ b/test/manual/etags/ETAGS.good_6 @@ -5074,59 +5074,7 @@ y-src/parse.c,520 # define L_NE 26,492 # define L_GE 27,510 -parse.y,1464 -#define obstack_chunk_alloc 46, -#define obstack_chunk_free 47, -int yylex 57, -void yyerror 59, -void yyerror 61, -VOIDSTAR parse_hash;63, -extern VOIDSTAR hash_find(64, -unsigned char fnin[fnin67, -#define YYSTYPE 71, -typedef struct node *YYSTYPE;YYSTYPE72, -YYSTYPE parse_return;73, -YYSTYPE make_list 75, -YYSTYPE make_list 77, -char *instr;instr80, -int parse_error 81, -extern struct obstack tmp_mem;82, -#define YYSTYPE 85, -# define YYDEBUG 88, -#define YYFINAL 93, -#define YYFLAG 94, -#define YYNTBASE 95, -#define YYTRANSLATE(98, -static const char yytranslate[yytranslate101, -static const short yyprhs[yyprhs134, -static const short yyrhs[yyrhs142, -static const short yyrline[yyrline171, -static const char *const yytname[yytname185, -static const short yyr1[yyr1197, -static const short yyr2[yyr2207, -static const short yydefact[yydefact219, -static const short yydefgoto[yydefgoto237, -static const short yypact[yypact242, -static const short yypgoto[yypgoto260, -#define YYLAST 266, -static const short yytable[yytable269, -static const short yycheck[yycheck330, -yyerror FUN1(285, -make_list FUN2(292, -#define ERROR 303, -extern struct node *yylval;yylval305, -unsigned char parse_cell_or_range 308, -unsigned char parse_cell_or_range 310, -yylex FUN0(314, -parse_cell_or_range FUN2(586, -#define CK_ABS_R(670, -#define CK_REL_R(674, -#define CK_ABS_C(679, -#define CK_REL_C(683, -#define MAYBEREL(688, -str_to_col FUN1(846, - -/usr/share/bison/bison.simple,2238 +/usr/share/bison/bison.simple,1787 # define YYSTD(40, # define YYSTD(42, # define YYSTACK_ALLOC 50, @@ -5198,30 +5146,6 @@ yyparse 403, # define YYPOPSTACK 445, # define YYPOPSTACK 447, # undef YYSTACK_RELOCATE548, - *++yyvsp yyvsp746, - *++yylsp yylsp748, - yyn 755, - yystate 757, - yystate 761, - goto yynewstate;763, - goto yyerrlab1;823, - yyerrstatus 846, - goto yyerrhandle;848, - yyn 861, - yystate 875, - yyn 895, - yyn 903, - YYDPRINTF 917, - *++yyvsp yyvsp919, - *++yylsp yylsp921, - yystate 924, - goto yynewstate;925, - yyresult 932, - goto yyreturn;933, - yyresult 939, - goto yyreturn;940, - yyerror 946, - yyresult 947, y-src/atest.y,9 exp 2,3 @@ -5242,91 +5166,6 @@ y-src/cccp.c,303 # define RSH 17,310 # define UNARY 18,327 -cccp.y,2532 -typedef unsigned char U_CHAR;38, -struct arglist 41, - struct arglist *next;next42, - U_CHAR *name;name43, - int length;44, - int argno;45, -#define NULL 51, -#define GENERIC_PTR 56, -#define GENERIC_PTR 58, -#define NULL_PTR 63, -int yylex 66, -void yyerror 67, -int expression_value;68, -static jmp_buf parse_return_error;70, -static int keyword_parsing 73, -extern unsigned char is_idstart[is_idstart76, -extern unsigned char is_idstart[], is_idchar[is_idchar76, -extern unsigned char is_idstart[], is_idchar[], is_hor_space[is_hor_space76, -extern char *xmalloc xmalloc78, -extern int pedantic;81, -extern int traditional;84, -#define CHAR_TYPE_SIZE 87, -#define INT_TYPE_SIZE 91, -#define LONG_TYPE_SIZE 95, -#define WCHAR_TYPE_SIZE 99, -#define possible_sum_sign(104, -static void integer_overflow 106, -static long left_shift 107, -static long right_shift 108, - struct constant 113, - struct constant {long value;113, - struct constant {long value; int unsignedp;113, - struct constant {long value; int unsignedp;} integer;113, - struct name 114, - struct name {U_CHAR *address;address114, - struct name {U_CHAR *address; int length;114, - struct name {U_CHAR *address; int length;} name;114, - struct arglist *keywords;keywords115, - int voidval;116, - char *sval;sval117, -} yystype;118, -# define YYSTYPE 119, -# define YYDEBUG 122, -#define YYFINAL 127, -#define YYFLAG 128, -#define YYNTBASE 129, -#define YYTRANSLATE(132, -static const char yytranslate[yytranslate135, -static const short yyprhs[yyprhs167, -static const short yyrhs[yyrhs174, -static const short yyrline[yyrline195, -static const char *const yytname[yytname208, -static const short yyr1[yyr1219, -static const short yyr2[yyr2228, -static const short yydefact[yydefact239, -static const short yydefgoto[yydefgoto251, -static const short yypact[yypact256, -static const short yypgoto[yypgoto268, -#define YYLAST 274, -static const short yytable[yytable277, -static const short yycheck[yycheck301, -static char *lexptr;lexptr332, -parse_number 341, -struct token 437, - char *operator;operator438, - int token;439, -static struct token tokentab2[tokentab2442, -yylex 459, -parse_escape 740, -yyerror 836, -integer_overflow 844, -left_shift 851, -right_shift 873, -parse_c_expression 893, -extern int yydebug;919, -main 923, -unsigned char is_idchar[is_idchar948, -unsigned char is_idstart[is_idstart950, -char is_hor_space[is_hor_space953, -initialize_random_junk 958, -error 988, -warning 993, -lookup 999, - /usr/share/bison/bison.simple,2238 # define YYSTD(41, # define YYSTD(43, diff --git a/test/manual/etags/y-src/cccp.c b/test/manual/etags/y-src/cccp.c index 776e3da..022fbe0 100644 --- a/test/manual/etags/y-src/cccp.c +++ b/test/manual/etags/y-src/cccp.c @@ -17,7 +17,7 @@ # define RSH 268 # define UNARY 269 -#line 26 "cccp.y" +#line 26 "y-src/cccp.y" #include "config.h" #include @@ -102,7 +102,7 @@ static void integer_overflow (); static long left_shift (); static long right_shift (); -#line 111 "cccp.y" +#line 111 "y-src/cccp.y" #ifndef YYSTYPE typedef union { struct constant {long value; int unsignedp;} integer; @@ -1047,59 +1047,59 @@ yyparse (YYPARSE_PARAM_ARG) switch (yyn) { case 1: -#line 144 "cccp.y" +#line 144 "y-src/cccp.y" { expression_value = yyvsp[0].integer.value; } break; case 3: -#line 150 "cccp.y" +#line 150 "y-src/cccp.y" { if (pedantic) pedwarn ("comma operator in operand of `#if'"); yyval.integer = yyvsp[0].integer; } break; case 4: -#line 157 "cccp.y" +#line 157 "y-src/cccp.y" { yyval.integer.value = - yyvsp[0].integer.value; if ((yyval.integer.value & yyvsp[0].integer.value) < 0 && ! yyvsp[0].integer.unsignedp) integer_overflow (); yyval.integer.unsignedp = yyvsp[0].integer.unsignedp; } break; case 5: -#line 162 "cccp.y" +#line 162 "y-src/cccp.y" { yyval.integer.value = ! yyvsp[0].integer.value; yyval.integer.unsignedp = 0; } break; case 6: -#line 165 "cccp.y" +#line 165 "y-src/cccp.y" { yyval.integer = yyvsp[0].integer; } break; case 7: -#line 167 "cccp.y" +#line 167 "y-src/cccp.y" { yyval.integer.value = ~ yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[0].integer.unsignedp; } break; case 8: -#line 170 "cccp.y" +#line 170 "y-src/cccp.y" { yyval.integer.value = check_assertion (yyvsp[0].name.address, yyvsp[0].name.length, 0, NULL_PTR); yyval.integer.unsignedp = 0; } break; case 9: -#line 174 "cccp.y" +#line 174 "y-src/cccp.y" { keyword_parsing = 1; } break; case 10: -#line 176 "cccp.y" +#line 176 "y-src/cccp.y" { yyval.integer.value = check_assertion (yyvsp[-4].name.address, yyvsp[-4].name.length, 1, yyvsp[-1].keywords); keyword_parsing = 0; yyval.integer.unsignedp = 0; } break; case 11: -#line 181 "cccp.y" +#line 181 "y-src/cccp.y" { yyval.integer = yyvsp[-1].integer; } break; case 12: -#line 186 "cccp.y" +#line 186 "y-src/cccp.y" { yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; if (yyval.integer.unsignedp) yyval.integer.value = (unsigned long) yyvsp[-2].integer.value * yyvsp[0].integer.value; @@ -1113,7 +1113,7 @@ case 12: } } break; case 13: -#line 198 "cccp.y" +#line 198 "y-src/cccp.y" { if (yyvsp[0].integer.value == 0) { error ("division by zero in #if"); @@ -1130,7 +1130,7 @@ case 13: } } break; case 14: -#line 213 "cccp.y" +#line 213 "y-src/cccp.y" { if (yyvsp[0].integer.value == 0) { error ("division by zero in #if"); @@ -1143,7 +1143,7 @@ case 14: yyval.integer.value = yyvsp[-2].integer.value % yyvsp[0].integer.value; } break; case 15: -#line 224 "cccp.y" +#line 224 "y-src/cccp.y" { yyval.integer.value = yyvsp[-2].integer.value + yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; if (! yyval.integer.unsignedp @@ -1152,7 +1152,7 @@ case 15: integer_overflow (); } break; case 16: -#line 231 "cccp.y" +#line 231 "y-src/cccp.y" { yyval.integer.value = yyvsp[-2].integer.value - yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; if (! yyval.integer.unsignedp @@ -1161,7 +1161,7 @@ case 16: integer_overflow (); } break; case 17: -#line 238 "cccp.y" +#line 238 "y-src/cccp.y" { yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp; if (yyvsp[0].integer.value < 0 && ! yyvsp[0].integer.unsignedp) yyval.integer.value = right_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value); @@ -1169,7 +1169,7 @@ case 17: yyval.integer.value = left_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); } break; case 18: -#line 244 "cccp.y" +#line 244 "y-src/cccp.y" { yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp; if (yyvsp[0].integer.value < 0 && ! yyvsp[0].integer.unsignedp) yyval.integer.value = left_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value); @@ -1177,17 +1177,17 @@ case 18: yyval.integer.value = right_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); } break; case 19: -#line 250 "cccp.y" +#line 250 "y-src/cccp.y" { yyval.integer.value = (yyvsp[-2].integer.value == yyvsp[0].integer.value); yyval.integer.unsignedp = 0; } break; case 20: -#line 253 "cccp.y" +#line 253 "y-src/cccp.y" { yyval.integer.value = (yyvsp[-2].integer.value != yyvsp[0].integer.value); yyval.integer.unsignedp = 0; } break; case 21: -#line 256 "cccp.y" +#line 256 "y-src/cccp.y" { yyval.integer.unsignedp = 0; if (yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp) yyval.integer.value = (unsigned long) yyvsp[-2].integer.value <= yyvsp[0].integer.value; @@ -1195,7 +1195,7 @@ case 21: yyval.integer.value = yyvsp[-2].integer.value <= yyvsp[0].integer.value; } break; case 22: -#line 262 "cccp.y" +#line 262 "y-src/cccp.y" { yyval.integer.unsignedp = 0; if (yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp) yyval.integer.value = (unsigned long) yyvsp[-2].integer.value >= yyvsp[0].integer.value; @@ -1203,7 +1203,7 @@ case 22: yyval.integer.value = yyvsp[-2].integer.value >= yyvsp[0].integer.value; } break; case 23: -#line 268 "cccp.y" +#line 268 "y-src/cccp.y" { yyval.integer.unsignedp = 0; if (yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp) yyval.integer.value = (unsigned long) yyvsp[-2].integer.value < yyvsp[0].integer.value; @@ -1211,7 +1211,7 @@ case 23: yyval.integer.value = yyvsp[-2].integer.value < yyvsp[0].integer.value; } break; case 24: -#line 274 "cccp.y" +#line 274 "y-src/cccp.y" { yyval.integer.unsignedp = 0; if (yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp) yyval.integer.value = (unsigned long) yyvsp[-2].integer.value > yyvsp[0].integer.value; @@ -1219,54 +1219,54 @@ case 24: yyval.integer.value = yyvsp[-2].integer.value > yyvsp[0].integer.value; } break; case 25: -#line 280 "cccp.y" +#line 280 "y-src/cccp.y" { yyval.integer.value = yyvsp[-2].integer.value & yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; } break; case 26: -#line 283 "cccp.y" +#line 283 "y-src/cccp.y" { yyval.integer.value = yyvsp[-2].integer.value ^ yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; } break; case 27: -#line 286 "cccp.y" +#line 286 "y-src/cccp.y" { yyval.integer.value = yyvsp[-2].integer.value | yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; } break; case 28: -#line 289 "cccp.y" +#line 289 "y-src/cccp.y" { yyval.integer.value = (yyvsp[-2].integer.value && yyvsp[0].integer.value); yyval.integer.unsignedp = 0; } break; case 29: -#line 292 "cccp.y" +#line 292 "y-src/cccp.y" { yyval.integer.value = (yyvsp[-2].integer.value || yyvsp[0].integer.value); yyval.integer.unsignedp = 0; } break; case 30: -#line 295 "cccp.y" +#line 295 "y-src/cccp.y" { yyval.integer.value = yyvsp[-4].integer.value ? yyvsp[-2].integer.value : yyvsp[0].integer.value; yyval.integer.unsignedp = yyvsp[-2].integer.unsignedp || yyvsp[0].integer.unsignedp; } break; case 31: -#line 298 "cccp.y" +#line 298 "y-src/cccp.y" { yyval.integer = yylval.integer; } break; case 32: -#line 300 "cccp.y" +#line 300 "y-src/cccp.y" { yyval.integer = yylval.integer; } break; case 33: -#line 302 "cccp.y" +#line 302 "y-src/cccp.y" { yyval.integer.value = 0; yyval.integer.unsignedp = 0; } break; case 34: -#line 307 "cccp.y" +#line 307 "y-src/cccp.y" { yyval.keywords = 0; } break; case 35: -#line 309 "cccp.y" +#line 309 "y-src/cccp.y" { struct arglist *temp; yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist)); yyval.keywords->next = yyvsp[-2].keywords; @@ -1281,7 +1281,7 @@ case 35: temp->next->length = 1; } break; case 36: -#line 322 "cccp.y" +#line 322 "y-src/cccp.y" { yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist)); yyval.keywords->name = yyvsp[-1].name.address; yyval.keywords->length = yyvsp[-1].name.length; @@ -1520,7 +1520,7 @@ case 36: #endif return yyresult; } -#line 327 "cccp.y" +#line 327 "y-src/cccp.y" /* During parsing of a C expression, the pointer to the next character diff --git a/test/manual/etags/y-src/parse.c b/test/manual/etags/y-src/parse.c index 9509867..d21af68 100644 --- a/test/manual/etags/y-src/parse.c +++ b/test/manual/etags/y-src/parse.c @@ -26,7 +26,7 @@ # define L_NE 277 # define L_GE 278 -#line 1 "parse.y" +#line 1 "y-src/parse.y" /* Copyright (C) 1990, 1992-1993, 2016 Free Software Foundation, Inc. @@ -45,7 +45,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Oleo; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ -#line 41 "parse.y" +#line 41 "y-src/parse.y" #include "funcdef.h" @@ -1125,84 +1125,84 @@ yyparse (YYPARSE_PARAM_ARG) switch (yyn) { case 1: -#line 87 "parse.y" +#line 87 "y-src/parse.y" { parse_return=yyvsp[0]; } break; case 2: -#line 88 "parse.y" +#line 88 "y-src/parse.y" { if(!parse_error) parse_error=PARSE_ERR; parse_return=0; } break; case 5: -#line 96 "parse.y" +#line 96 "y-src/parse.y" { yyval=yyvsp[-2]; } break; case 6: -#line 98 "parse.y" +#line 98 "y-src/parse.y" { (yyvsp[-3])->n_x.v_subs[0]=yyvsp[-1]; (yyvsp[-3])->n_x.v_subs[1]=(struct node *)0; yyval=yyvsp[-3]; } break; case 7: -#line 102 "parse.y" +#line 102 "y-src/parse.y" { (yyvsp[-5])->n_x.v_subs[0]=yyvsp[-3]; (yyvsp[-5])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-5]; } break; case 8: -#line 106 "parse.y" +#line 106 "y-src/parse.y" { (yyvsp[-7])->n_x.v_subs[0]=make_list(yyvsp[-5],yyvsp[-3]); (yyvsp[-7])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-7];} break; case 9: -#line 110 "parse.y" +#line 110 "y-src/parse.y" { (yyvsp[-9])->n_x.v_subs[0]=make_list(yyvsp[-7],yyvsp[-5]); (yyvsp[-9])->n_x.v_subs[1]=make_list(yyvsp[-3],yyvsp[-1]); yyval=yyvsp[-9];} break; case 10: -#line 114 "parse.y" +#line 114 "y-src/parse.y" { (yyvsp[-3])->n_x.v_subs[0]=(struct node *)0; (yyvsp[-3])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-3]; } break; case 11: -#line 118 "parse.y" +#line 118 "y-src/parse.y" { yyvsp[-3]->n_x.v_subs[0]=yyvsp[-1]; yyval=yyvsp[-3]; } break; case 12: -#line 121 "parse.y" +#line 121 "y-src/parse.y" { yyvsp[-3]->n_x.v_subs[0]=yyvsp[-1]; yyval=yyvsp[-3]; } break; case 13: -#line 125 "parse.y" +#line 125 "y-src/parse.y" { yyvsp[-5]->n_x.v_subs[0]=yyvsp[-3]; yyvsp[-5]->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-5]; } break; case 14: -#line 129 "parse.y" +#line 129 "y-src/parse.y" { yyvsp[-5]->n_x.v_subs[0]=yyvsp[-3]; yyvsp[-5]->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-5]; } break; case 15: -#line 135 "parse.y" +#line 135 "y-src/parse.y" { if(yyvsp[-7]->comp_value!=F_INDEX) parse_error=PARSE_ERR; @@ -1212,7 +1212,7 @@ case 15: yyval=yyvsp[-7]; } break; case 16: -#line 142 "parse.y" +#line 142 "y-src/parse.y" { if(yyvsp[-7]->comp_value!=F_INDEX) parse_error=PARSE_ERR; @@ -1222,28 +1222,28 @@ case 16: yyval=yyvsp[-7]; } break; case 17: -#line 150 "parse.y" +#line 150 "y-src/parse.y" { (yyvsp[-7])->n_x.v_subs[0]=make_list(yyvsp[-5],yyvsp[-3]); (yyvsp[-7])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-7];} break; case 18: -#line 154 "parse.y" +#line 154 "y-src/parse.y" { (yyvsp[-7])->n_x.v_subs[0]=make_list(yyvsp[-5],yyvsp[-3]); (yyvsp[-7])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-7];} break; case 19: -#line 159 "parse.y" +#line 159 "y-src/parse.y" { (yyvsp[-3])->n_x.v_subs[0]=(struct node *)0; (yyvsp[-3])->n_x.v_subs[1]=yyvsp[-1]; yyval=yyvsp[-3]; } break; case 20: -#line 163 "parse.y" +#line 163 "y-src/parse.y" { yyvsp[-3]->comp_value=IF; yyvsp[-3]->n_x.v_subs[0]=yyvsp[-1]; @@ -1253,98 +1253,98 @@ case 20: yyval=yyvsp[-3]; } break; case 21: -#line 174 "parse.y" +#line 174 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 22: -#line 178 "parse.y" +#line 178 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 23: -#line 182 "parse.y" +#line 182 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 24: -#line 186 "parse.y" +#line 186 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 25: -#line 190 "parse.y" +#line 190 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 26: -#line 194 "parse.y" +#line 194 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 27: -#line 198 "parse.y" +#line 198 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 28: -#line 202 "parse.y" +#line 202 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 29: -#line 206 "parse.y" +#line 206 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 30: -#line 210 "parse.y" +#line 210 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 31: -#line 214 "parse.y" +#line 214 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 32: -#line 218 "parse.y" +#line 218 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 33: -#line 222 "parse.y" +#line 222 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[-2]; yyvsp[-1]->n_x.v_subs[1]=yyvsp[0]; yyval = yyvsp[-1]; } break; case 34: -#line 226 "parse.y" +#line 226 "y-src/parse.y" { if(yyvsp[0]->comp_value==CONST_FLT) { yyvsp[0]->n_x.v_float= -(yyvsp[0]->n_x.v_float); @@ -1362,48 +1362,48 @@ case 34: } } break; case 35: -#line 241 "parse.y" +#line 241 "y-src/parse.y" { yyvsp[-1]->n_x.v_subs[0]=yyvsp[0]; yyvsp[-1]->n_x.v_subs[1]=(struct node *)0; yyval = yyvsp[-1]; } break; case 36: -#line 246 "parse.y" +#line 246 "y-src/parse.y" { yyval = yyvsp[-1]; } break; case 37: -#line 247 "parse.y" +#line 247 "y-src/parse.y" { if(!parse_error) parse_error=NO_CLOSE; } break; case 38: -#line 255 "parse.y" +#line 255 "y-src/parse.y" { if(!parse_error) parse_error=NO_CLOSE; } break; case 39: -#line 263 "parse.y" +#line 263 "y-src/parse.y" { yyval = make_list(yyvsp[0], 0); } break; case 40: -#line 265 "parse.y" +#line 265 "y-src/parse.y" { yyval = make_list(yyvsp[0], yyvsp[-2]); } break; case 43: -#line 273 "parse.y" +#line 273 "y-src/parse.y" { yyval=make_list(yyvsp[0], 0); } break; case 44: -#line 275 "parse.y" +#line 275 "y-src/parse.y" { yyval=make_list(yyvsp[0],yyvsp[-2]); } break; case 45: -#line 279 "parse.y" +#line 279 "y-src/parse.y" { yyval=yyvsp[0]; } break; } @@ -1639,7 +1639,7 @@ case 45: #endif return yyresult; } -#line 282 "parse.y" +#line 282 "y-src/parse.y" void commit 2030ddbd15b538a5dc2fc0548afc83941f67957a Author: Eli Zaretskii Date: Wed Aug 31 20:19:42 2016 +0300 * lib-src/etags.c (invalidate_nodes): Fix another thinko. diff --git a/lib-src/etags.c b/lib-src/etags.c index 77dcaf0..3620b0f 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2224,7 +2224,7 @@ invalidate_nodes (fdesc *badfdp, node **npp) /* Push all the left children on the stack. */ while (np->left != NULL) { - push_node (np->left, &stack); + push_node (np, &stack); np = np->left; } /* Invalidate this node. */ commit 9166d4025197d0109015f1c7a77e78dce63d3312 Author: Paul Eggert Date: Wed Aug 31 10:11:16 2016 -0700 Fix etags problems found by static checking * lib-src/etags.c (invalidate_nodes, put_entry): Remove now-unnecessary tests for null pointers. Simplify. (put_entries): Rewrite to avoid GCC 6.2 warning about dereferencing null pointer. diff --git a/lib-src/etags.c b/lib-src/etags.c index bf4a8f7..77dcaf0 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2054,8 +2054,6 @@ free_tree (register node *np) while (np) { - register node *node_right; - /* Descent on left children. */ while (np->left) { @@ -2063,7 +2061,7 @@ free_tree (register node *np) np = np->left; } /* Free node without left children. */ - node_right = np->right; + node *node_right = np->right; free (np->name); free (np->regex); free (np); @@ -2169,12 +2167,11 @@ add_node (node *np, node **cur_node_p) else { /* Ctags Mode */ - register int dif; node **next_node = &cur_node; while ((cur_node = *next_node) != NULL) { - dif = strcmp (np->name, cur_node->name); + int dif = strcmp (np->name, cur_node->name); /* * If this tag name matches an existing one, then * do not add the node, but maybe print a warning. @@ -2220,9 +2217,6 @@ invalidate_nodes (fdesc *badfdp, node **npp) node *np = *npp; stkentry *stack = NULL; - if (np == NULL) - return; - if (CTAGS) { while (np) @@ -2240,11 +2234,13 @@ invalidate_nodes (fdesc *badfdp, node **npp) { /* Pop nodes from stack, invalidating them, until we find one with a right child. */ - do { - np = pop_node (&stack); - if (np && np->fdp == badfdp) - np->valid = false; - } while (np && np->right == NULL); + while ((np = pop_node (&stack)) != NULL) + { + if (np->fdp == badfdp) + np->valid = false; + if (np->right != NULL) + break; + } } /* Process the right child, if any. */ if (np) @@ -2253,10 +2249,10 @@ invalidate_nodes (fdesc *badfdp, node **npp) } else { - node super_root, *np_parent; + node super_root, *np_parent = NULL; super_root.left = np; - super_root.fdp = (fdesc *)-1; + super_root.fdp = (fdesc *) -1; np = &super_root; while (np) @@ -2273,7 +2269,9 @@ invalidate_nodes (fdesc *badfdp, node **npp) np_parent->left = np->left; /* detach subtree from the tree */ np->left = NULL; /* isolate it */ free_tree (np); /* free it */ - np = np_parent->left; /* continue with rest of tree */ + + /* Continue with rest of tree. */ + np = np_parent ? np_parent->left : NULL; } } *npp = super_root.left; @@ -2321,13 +2319,13 @@ total_size_of_entries (register node *np) } static void -put_entry (register node *np) +put_entry (node *np) { register char *sp; static fdesc *fdp = NULL; /* Output this entry */ - if (np && np->valid) + if (np->valid) { if (!CTAGS) { @@ -2394,7 +2392,7 @@ put_entry (register node *np) } static void -put_entries (register node *np) +put_entries (node *np) { stkentry *stack = NULL; @@ -2414,13 +2412,13 @@ put_entries (register node *np) /* Output this subentry. */ put_entry (np); /* Stack subentries that follow this one. */ - if (!np->right) + while (!np->right) { /* Output subentries that precede the next one. */ - do { - np = pop_node (&stack); - put_entry (np); - } while (np && np->right == NULL); + np = pop_node (&stack); + if (!np) + break; + put_entry (np); } if (np) np = np->right; commit 4ec31277e7603484fd7a4d2d8e3d0eefe62c587c Author: Eli Zaretskii Date: Wed Aug 31 19:57:59 2016 +0300 Fix a thinko in etags.c * lib-src/etags.c (invalidate_nodes): Don't try to dereference a null pointer. diff --git a/lib-src/etags.c b/lib-src/etags.c index 95553e9..bf4a8f7 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2242,7 +2242,7 @@ invalidate_nodes (fdesc *badfdp, node **npp) with a right child. */ do { np = pop_node (&stack); - if (np->fdp == badfdp) + if (np && np->fdp == badfdp) np->valid = false; } while (np && np->right == NULL); } commit 6d8144a2abb1c37982d82e32c68ab5115aca792c Author: Eli Zaretskii Date: Wed Aug 31 18:53:43 2016 +0300 Avoid recursive calls in etags * lib-src/etags.c (stack_entry): New struct. (push_node, pop_node, put_entry): New functions. (free_tree, add_node, invalidate_nodes, put_entries): Re-implement in a non-recursive way, to avoid stack overflow. (Bug#5847) diff --git a/lib-src/etags.c b/lib-src/etags.c index 1c85a79..95553e9 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2006,19 +2006,80 @@ pfnote (char *name, bool is_func, char *linestart, int linelen, int lno, } /* + * Utility functions and data to avoid recursion. + */ + +typedef struct stack_entry { + node *np; + struct stack_entry *next; +} stkentry; + +static void +push_node (node *np, stkentry **stack_top) +{ + if (np) + { + stkentry *new = xnew (1, stkentry); + + new->np = np; + new->next = *stack_top; + *stack_top = new; + } +} + +static node * +pop_node (stkentry **stack_top) +{ + node *ret = NULL; + + if (*stack_top) + { + stkentry *old_start = *stack_top; + + ret = (*stack_top)->np; + *stack_top = (*stack_top)->next; + free (old_start); + } + return ret; +} + +/* * free_tree () - * recurse on left children, iterate on right children. + * emulate recursion on left children, iterate on right children. */ static void free_tree (register node *np) { + stkentry *stack = NULL; + while (np) { - register node *node_right = np->right; - free_tree (np->left); + register node *node_right; + + /* Descent on left children. */ + while (np->left) + { + push_node (np, &stack); + np = np->left; + } + /* Free node without left children. */ + node_right = np->right; free (np->name); free (np->regex); free (np); + if (!node_right) + { + /* Backtrack to find a node with right children, while freeing nodes + that don't have right children. */ + while (node_right == NULL && (np = pop_node (&stack)) != NULL) + { + node_right = np->right; + free (np->name); + free (np->regex); + free (np); + } + } + /* Free right children. */ np = node_right; } } @@ -2050,9 +2111,9 @@ free_fdesc (register fdesc *fdp) static void add_node (node *np, node **cur_node_p) { - register int dif; - register node *cur_node = *cur_node_p; + node *cur_node = *cur_node_p; + /* Make the first node. */ if (cur_node == NULL) { *cur_node_p = np; @@ -2074,51 +2135,77 @@ add_node (node *np, node **cur_node_p) last_node->right = np; last_node = np; } - else if (cur_node->fdp == np->fdp) + else { - /* Scanning the list we found the head of a sublist which is - good for us. Let's scan this sublist. */ - add_node (np, &cur_node->right); + while (cur_node->fdp != np->fdp) + { + if (cur_node->left == NULL) + break; + /* The head of this sublist is not good for us. Let's try the + next one. */ + cur_node = cur_node->left; + } + if (cur_node->left) + { + /* Scanning the list we found the head of a sublist which is + good for us. Let's scan this sublist. */ + if (cur_node->right) + { + cur_node = cur_node->right; + while (cur_node->right) + cur_node = cur_node->right; + } + /* Make a new node in this sublist. */ + cur_node->right = np; + } + else + { + /* Make a new sublist. */ + cur_node->left = np; + } + last_node = np; } - else - /* The head of this sublist is not good for us. Let's try the - next one. */ - add_node (np, &cur_node->left); } /* if ETAGS mode */ - else { /* Ctags Mode */ - dif = strcmp (np->name, cur_node->name); + register int dif; + node **next_node = &cur_node; - /* - * If this tag name matches an existing one, then - * do not add the node, but maybe print a warning. - */ - if (no_duplicates && !dif) + while ((cur_node = *next_node) != NULL) { - if (np->fdp == cur_node->fdp) + dif = strcmp (np->name, cur_node->name); + /* + * If this tag name matches an existing one, then + * do not add the node, but maybe print a warning. + */ + if (!dif && no_duplicates) { - if (!no_warnings) + if (np->fdp == cur_node->fdp) { - fprintf (stderr, "Duplicate entry in file %s, line %d: %s\n", - np->fdp->infname, lineno, np->name); - fprintf (stderr, "Second entry ignored\n"); + if (!no_warnings) + { + fprintf (stderr, + "Duplicate entry in file %s, line %d: %s\n", + np->fdp->infname, lineno, np->name); + fprintf (stderr, "Second entry ignored\n"); + } } + else if (!cur_node->been_warned && !no_warnings) + { + fprintf + (stderr, + "Duplicate entry in files %s and %s: %s (Warning only)\n", + np->fdp->infname, cur_node->fdp->infname, np->name); + cur_node->been_warned = true; + } + return; } - else if (!cur_node->been_warned && !no_warnings) - { - fprintf - (stderr, - "Duplicate entry in files %s and %s: %s (Warning only)\n", - np->fdp->infname, cur_node->fdp->infname, np->name); - cur_node->been_warned = true; - } - return; + else + next_node = dif < 0 ? &cur_node->left : &cur_node->right; } - - /* Actually add the node */ - add_node (np, dif < 0 ? &cur_node->left : &cur_node->right); + *next_node = np; + last_node = np; } /* if CTAGS mode */ } @@ -2131,31 +2218,65 @@ static void invalidate_nodes (fdesc *badfdp, node **npp) { node *np = *npp; + stkentry *stack = NULL; if (np == NULL) return; if (CTAGS) { - if (np->left != NULL) - invalidate_nodes (badfdp, &np->left); - if (np->fdp == badfdp) - np->valid = false; - if (np->right != NULL) - invalidate_nodes (badfdp, &np->right); + while (np) + { + /* Push all the left children on the stack. */ + while (np->left != NULL) + { + push_node (np->left, &stack); + np = np->left; + } + /* Invalidate this node. */ + if (np->fdp == badfdp) + np->valid = false; + if (!np->right) + { + /* Pop nodes from stack, invalidating them, until we find one + with a right child. */ + do { + np = pop_node (&stack); + if (np->fdp == badfdp) + np->valid = false; + } while (np && np->right == NULL); + } + /* Process the right child, if any. */ + if (np) + np = np->right; + } } else { - assert (np->fdp != NULL); - if (np->fdp == badfdp) + node super_root, *np_parent; + + super_root.left = np; + super_root.fdp = (fdesc *)-1; + np = &super_root; + + while (np) { - *npp = np->left; /* detach the sublist from the list */ - np->left = NULL; /* isolate it */ - free_tree (np); /* free it */ - invalidate_nodes (badfdp, npp); + /* Descent on left children until node with BADFP. */ + while (np && np->fdp != badfdp) + { + assert (np->fdp != NULL); + np_parent = np; + np = np->left; + } + if (np) + { + np_parent->left = np->left; /* detach subtree from the tree */ + np->left = NULL; /* isolate it */ + free_tree (np); /* free it */ + np = np_parent->left; /* continue with rest of tree */ + } } - else - invalidate_nodes (badfdp, &np->left); + *npp = super_root.left; } } @@ -2200,20 +2321,13 @@ total_size_of_entries (register node *np) } static void -put_entries (register node *np) +put_entry (register node *np) { register char *sp; static fdesc *fdp = NULL; - if (np == NULL) - return; - - /* Output subentries that precede this one */ - if (CTAGS) - put_entries (np->left); - /* Output this entry */ - if (np->valid) + if (np && np->valid) { if (!CTAGS) { @@ -2277,11 +2391,59 @@ put_entries (register node *np) } } } /* if this node contains a valid tag */ +} - /* Output subentries that follow this one */ - put_entries (np->right); - if (!CTAGS) - put_entries (np->left); +static void +put_entries (register node *np) +{ + stkentry *stack = NULL; + + if (np == NULL) + return; + + if (CTAGS) + { + while (np) + { + /* Stack subentries that precede this one. */ + while (np->left) + { + push_node (np, &stack); + np = np->left; + } + /* Output this subentry. */ + put_entry (np); + /* Stack subentries that follow this one. */ + if (!np->right) + { + /* Output subentries that precede the next one. */ + do { + np = pop_node (&stack); + put_entry (np); + } while (np && np->right == NULL); + } + if (np) + np = np->right; + } + } + else + { + push_node (np, &stack); + while ((np = pop_node (&stack)) != NULL) + { + /* Output this subentry. */ + put_entry (np); + while (np->right) + { + /* Output subentries that follow this one. */ + put_entry (np->right); + /* Stack subentries from the following files. */ + push_node (np->left, &stack); + np = np->right; + } + push_node (np->left, &stack); + } + } } commit 6f125aa3de06fa0180a83ec7b5a26970309eeeb6 Author: Leo Liu Date: Wed Aug 31 16:39:13 2016 +0800 Add 451 to url-http-codes * lisp/url/url-http.el (url-http-codes): Add 451. diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index f62ec57..927d0bb 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -128,6 +128,7 @@ request.") (422 unprocessable-entity "Unprocessable Entity (Added by DAV)") (423 locked "Locked") (424 failed-Dependency "Failed Dependency") + (451 unavailable-for-legal-reasons "Unavailable for legal reasons") ;RFC 7725 (500 internal-server-error "Internal server error") (501 not-implemented "Not implemented") (502 bad-gateway "Bad gateway")