Hello community, here is the log from the commit of package perl-Text-BibTeX for openSUSE:Factory checked in at 2012-12-10 14:25:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Text-BibTeX (Old) and /work/SRC/openSUSE:Factory/.perl-Text-BibTeX.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Text-BibTeX", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Text-BibTeX/perl-Text-BibTeX.changes 2012-05-30 10:59:01.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Text-BibTeX.new/perl-Text-BibTeX.changes 2012-12-10 14:25:40.000000000 +0100 @@ -1,0 +2,9 @@ +Mon Dec 10 01:22:40 CET 2012 - [email protected] + +- fix libdir for s390x as well +- update to 0.66 + * Fix a segmentation fault with strcat and no string limit + * Patch to support @ and ~ in names + * Patch to expand macro size limit + +------------------------------------------------------------------- Old: ---- Text-BibTeX-0.63.tar.gz New: ---- Text-BibTeX-0.66.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Text-BibTeX.spec ++++++ --- /var/tmp/diff_new_pack.NiFxbG/_old 2012-12-10 14:25:41.000000000 +0100 +++ /var/tmp/diff_new_pack.NiFxbG/_new 2012-12-10 14:25:41.000000000 +0100 @@ -17,7 +17,7 @@ Name: perl-Text-BibTeX -Version: 0.63 +Version: 0.66 Release: 0 %define cpan_name Text-BibTeX Summary: Interface to read and parse BibTeX files ++++++ Text-BibTeX-0.63.tar.gz -> Text-BibTeX-0.66.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/CHANGES new/Text-BibTeX-0.66/CHANGES --- old/Text-BibTeX-0.63/CHANGES 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/CHANGES 2012-10-29 13:31:11.000000000 +0100 @@ -1,3 +1,14 @@ +Release 0.66 - 29 October, 2012 +------------------------------- +* Fix a segmentation fault with strcat and no string limit. + +Release 0.65 - 26 September, 2012 +--------------------------------- +* Patch to support @ and ~ in names (thanks to Philip Kime) + +Release 0.64 - 8 July, 2012 +--------------------------- +* Patch to expand macro size limit (thanks to Philip Kime) Release 0.63 - 12 May, 2012 --------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/MANIFEST new/Text-BibTeX-0.66/MANIFEST --- old/Text-BibTeX-0.63/MANIFEST 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/MANIFEST 2012-10-29 13:31:11.000000000 +0100 @@ -109,6 +109,9 @@ btparse/src/tokens.h btparse/src/util.h +btparse/src/parser.dlg +btparse/src/bibtex.g + ## Extra C programs btparse/progs/args.c btparse/progs/args.h ## NOINST diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/META.json new/Text-BibTeX-0.66/META.json --- old/Text-BibTeX-0.63/META.json 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/META.json 2012-10-29 13:31:11.000000000 +0100 @@ -5,7 +5,7 @@ "Greg Ward <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "Module::Build version 0.4, CPAN::Meta::Converter version 2.120921", + "generated_by" : "Module::Build version 0.4003, CPAN::Meta::Converter version 2.120921", "license" : [ "perl_5" ], @@ -36,7 +36,7 @@ "provides" : { "Text::BibTeX" : { "file" : "lib/Text/BibTeX.pm", - "version" : "0.63" + "version" : "0.66" }, "Text::BibTeX::BibEntry" : { "file" : "lib/Text/BibTeX/Bib.pm", @@ -93,5 +93,5 @@ "http://dev.perl.org/licenses/" ] }, - "version" : "0.63" + "version" : "0.66" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/META.yml new/Text-BibTeX-0.66/META.yml --- old/Text-BibTeX-0.63/META.yml 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/META.yml 2012-10-29 13:31:11.000000000 +0100 @@ -15,7 +15,7 @@ ExtUtils::LibBuilder: 0.02 Module::Build: 0.36 dynamic_config: 1 -generated_by: 'Module::Build version 0.4, CPAN::Meta::Converter version 2.120921' +generated_by: 'Module::Build version 0.4003, CPAN::Meta::Converter version 2.120921' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -24,7 +24,7 @@ provides: Text::BibTeX: file: lib/Text/BibTeX.pm - version: 0.63 + version: 0.66 Text::BibTeX::BibEntry: file: lib/Text/BibTeX/Bib.pm version: 0 @@ -63,4 +63,4 @@ version: 0 resources: license: http://dev.perl.org/licenses/ -version: 0.63 +version: 0.66 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/pccts/err.h new/Text-BibTeX-0.66/btparse/pccts/err.h --- old/Text-BibTeX-0.63/btparse/pccts/err.h 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/btparse/pccts/err.h 2012-10-29 13:31:11.000000000 +0100 @@ -158,8 +158,13 @@ } for (i=1; i<=k; i++) /* look for offending token */ { +#ifdef LL_K + int freeSpace = (LL_K*ZZLEXBUFSIZE+1) - strlen(text); +#else + int freeSpace = (ZZLEXBUFSIZE+1) - strlen(text); +#endif if ( i>1 ) strcat(text, " "); - strcat(text, LATEXT(i)); + strncat(text, LATEXT(i), freeSpace); if ( !zzset_el((unsigned)LA(i), f[i-1]) ) break; } miss_set = va_arg(ap, SetWordType **); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/src/bibtex.g new/Text-BibTeX-0.66/btparse/src/bibtex.g --- old/Text-BibTeX-0.63/btparse/src/bibtex.g 1970-01-01 01:00:00.000000000 +0100 +++ new/Text-BibTeX-0.66/btparse/src/bibtex.g 2012-10-29 13:31:11.000000000 +0100 @@ -0,0 +1,413 @@ +/* ------------------------------------------------------------------------ +@NAME : bibtex.g +@DESCRIPTION: PCCTS-based lexer and parser for BibTeX files. (Or rather, + for the BibTeX data description language. This parser + enforces nothing about the structure and contents of + entries; that's up to higher-level processors. Thus, there's + nothing either particularly bibliographic or TeXish about + the language accepted by this parser, apart from the affinity + for curly braces.) + + There are a few minor differences from the language accepted + by BibTeX itself, but these are generally improvements over + BibTeX's behaviour. See the comments in the grammar, at least + until I write a decent description of the language. + + I have used Gerd Neugebauer's BibTool (yet another BibTeX + parser, along with a prettyprinter and specialized language + for a common set of bibhacks) as another check of correctness + -- there are a few screwball things that BibTeX accepts and + BibTool doesn't, so I felt justified in rejecting them as + well. In general, this parser is a little stricter than + BibTeX, but a little looser than BibTool. YMMV. + + Another source of inspiration is Nelson Beebe's bibclean, or + rather Beebe's article describing bibclean (from TUGboat + vol. 14 no. 4; also included with the bibclean distribution). + + The product of the parser is an abstract syntax tree that can + be traversed to be printed in a simple form (see + print_entry() in bibparse.c) or perhaps transformed to a + format more convenient for higher-level languages (see my + Text::BibTeX Perl module for an example). + + Whole files may be parsed by entering the parser at `bibfile'; + in this case, the parser really returns a forest (list of + ASTs, one per entry). Alternately, you can enter the parser + at `entry', which reads and parses a single entry. +@GLOBALS : the usual DLG and ANTLR cruft +@CALLS : +@CREATED : first attempt: May 1996, Greg Ward + second attempt (complete rewrite): July 25-28 1996, Greg Ward +@MODIFIED : Sep 1996, GPW: changed to generate an AST rather than print + out each entry as it's encountered + Jan 1997, GPW: redid the above, because it was lost when + my !%&$#!@ computer was stolen + Jun 1997, GPW: greatly simplified the lexer, and added handling + of %-comments, @comment and @preamble entries, + and proper scanning of between-entry junk +@VERSION : $Id: bibtex.g 6328 2008-10-08 21:07:28Z ambs $ +@COPYRIGHT : Copyright (c) 1996-99 by Gregory P. Ward. All rights reserved. + + This file is part of the btparse library. This library is + free software; you can redistribute it and/or modify it under + the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. +-------------------------------------------------------------------------- */ + +#header +<< +#define ZZCOL +#define USER_ZZSYN + +#include "config.h" +#include "btparse.h" +#include "attrib.h" +#include "lex_auxiliary.h" +#include "error.h" +#include "my_dmalloc.h" + +extern char * InputFilename; /* for zzcr_ast call in pccts/ast.c */ +>> + +/* + * The lexer has three modes -- START (between entries, hence it's what + * we're in initially), LEX_ENTRY (entered once we see an '@' at + * top-level), and LEX_STRING (for scanning quoted strings). Note that all + * the functions called from lexer actions can be found in lex_auxiliary.c. + * + * The START mode just looks for '@', discards comments and whitespace, + * counts lines, and keeps track of any other junk. The "keeping track" + * just consists of counting the number of junk characters, which is then + * reported at the next '@' sign. This will hopefully let users clean up + * "old style" implicit comments, and possibly catch some legitimate errors + * in their files (eg. a complete entry that's missing an '@'). + */ + +#token AT "\@" << at_sign (); >> +#token "\n" << newline (); >> +#token COMMENT "\%~[\n]*\n" << comment (); >> +#token "[\ \r\t]+" << zzskip (); >> +#token "~[\@\n\ \r\t]+"<< toplevel_junk (); >> + +#lexclass LEX_ENTRY + +/* + * The LEX_ENTRY mode is where most of the interesting stuff is -- these + * tokens control most of the syntax of BibTeX. First, we duplicate most + * of the START lexer, in order to handle newlines, comments, and + * whitespace. + * + * Next comes a "number", which is trivial. This is needed because a + * BibTeX simple value may be an unquoted digit string; it has to precede + * the definition of "name" tokens, because otherwise a digit string would + * be a legitimate "name", which would cause an ambiguity inside entries + * ("is this a macro or a number?") + * + * Then comes the regexp for a BibTeX "name", which is used for entry + * types, entry keys, field names, and macro names. This is basically the + * same as BibTeX's definition of such "names", with two differences. The + * key, fundamental difference is that I have defined names by inclusion + * rather than exclusion: this regex lists all characters allowed in a + * type/key/field name/macro name, rather than listing those characters not + * allowed (as the BibTeX documentation does). The trivial difference is + * that I have disallowed a few extra characters: @ \ ~. Allowing @ could + * cause confusing BibTeX syntax, and allowing \ or ~ can cause bogus TeX + * code: try putting "\cite{foo\bar}" in your LaTeX document and see what + * happens! I'm also rather skeptical about some of the more exotic + * punctuation characters being allowed, but since people have been using + * BibTeX's definition of "names" for a decade or so now, I guess we're + * stuck with it. I could always amend name() to warn about any exotic + * punctuation that offends me, but that should be an option -- and I don't + * have a mechanism for user selectable warnings yet, so it'll have to + * wait. + * + * Also note that defining "number" ahead of "name" precludes a string of + * digits from being a name. This is usually a good thing; we don't want + * to accept digit strings as article types or field names (BibTeX + * doesn't). However -- dubious as it may seem -- digit strings are + * legitimate entry keys, so we should accept them there. This is handled + * by the grammar; see the `contents' rule below. + * + * Finally, it should be noted that BibTeX does not seem to apply the same + * lexical rules to entry types, entry keys, and field names -- so perhaps + * doing so here is not such a great idea. One immediate manifestation of + * this is that my grammar in its unassisted state would accept a field + * name with leading digits; BibTeX doesn't accept this. I correct this + * with the check_field_name() function, called from the `field' rule in + * the grammar and defined in parse_auxiliary.c. + */ +#token "\n" << newline (); >> +#token COMMENT "\%~[\n]*\n" << comment (); >> +#token "[\ \r\t]+" << zzskip (); >> +#token NUMBER "[0-9]+" +#token NAME "[a-z0-9\!\$\&\*\+\-\.\/\:\;\<\>\?\[\]\^\_\`\|]+" + << name (); >> + +/* + * Now come the (apparently) easy tokens, i.e. punctuation. There are a + * number of tricky bits here, though. First, '{' can have two very + * different meanings: at top-level, it's an entry delimiter, and inside an + * entry it's a string delimiter. This is handled (in lbrace()) by keeping + * track of the "entry state" (top-level, after '@', after type, in + * comment, or in entry) and using that to determine what to do on a '{'. + * If we're in an entry, lbrace() will switch to the string lexer by + * calling start_string(); if we're immediately after an entry type token + * (which is just a name following a top-level '@'), then we force the + * current token to ENTRY_OPEN, so that '{' and '(' appear identical to the + * parser. (This works because the scanner generated by DLG just happens + * to assign the token number first, and then executes the action.) + * Anywhere else (ie. at top level or immediately after an '@', we print a + * warning and leave the token as LBRACE, which will cause a syntax error + * (because LBRACE is not used anywhere in the grammar). + * + * '(' has some similarities to '{', but it's different enough that it + * has its own function. In particular, it may be an entry opener just + * like '{', but in one particular case it may be a string opener. That + * particular case is where it follows '@' and 'comment'; in that case, + * lparen() will call start_string() to enter the string lexer. + * + * The other delimiter characters are easier, but still warrant an + * explanation. '}' should only occur inside an entry, and if found there + * the token is forced to ENTRY_CLOSER; anywhere else, a warning is printed + * and the parser should find a syntax error. ')' should only occur inside + * an entry, and likewise will trigger a warning if seen elsewhere. + * (String-closing '}' and ')' are handled by the string lexer, below.) + * + * The other punctuation characters are trivial. Note that a double quote + * can start a string anywhere (except at top-level!), but if it occurs in + * a weird place a syntax error will eventually occur. + */ +#token LBRACE "\{" << lbrace (); >> +#token RBRACE "\}" << rbrace (); >> +#token ENTRY_OPEN "\(" << lparen (); >> +#token ENTRY_CLOSE "\)" << rparen (); >> +#token EQUALS "=" +#token HASH "\#" +#token COMMA "," +#token "\"" << start_string ('"'); >> + + +#lexclass LEX_STRING + +/* + * Here's a reasonably decent attempt at lexing BibTeX strings. There are + * a couple of sneaky tricks going on here that aren't strictly necessary, + * but can make the user's life a lot easier. + * + * First, here's what a simple and straightforward BibTeX string lexer + * would do: + * - keep track of brace-depth by incrementing/decrementing a counter + * whenever it sees `{' or `}' + * - if the string was started with a `{' and it sees a `}' which + * brings the brace-depth to 0, end the string + * - if the string was started with a `"' and it sees another `"' at + * brace-depth 0, end the string + * - any other characters are left untouched and become part of the + * string + * + * (Note that the simple act of counting braces makes this lexer + * non-regular -- there's a bit more going on here than you might + * think from reading the regexps. So sue me.) + * + * The first, most obvious refinement to this is to check for newlines + * and other whitespace -- we should convert either one to a single + * space (to simplify future processing), as well as increment zzline on + * newline. Note that we don't do any collapsing of whitespace yet -- + * newlines surrounded by spaces make that rather tricky to handle + * properly in the lexer (because newlines are handled separately, in + * order to increment zzline), so I put it off to a later stage. (That + * also gives us the flexibility to collapse whitespace or not, + * according to the user's whim.) + * + * A PCCTS lexer to handle these requirements would look something like this: + * + * #token "\n" << newline_in_string (); >> + * #token "[\r\t]" << zzreplchar (' '); zzmore (); >> + * #token "\{" << open_brace(); >> + * #token "\}" << close_brace(); >> + * #token "\"" << quote_in_string (); >> + * #token "~[\n\{\}\"]+" << zzmore (); >> + * + * where the functions called are the same as currently in lex_auxiliary.c. + * + * However, I've added some trickery here that lets us heuristically detect + * runaway strings. The heuristic is as follows: anytime we have a newline + * in a string, that's reason to suspect a runaway. We follow up on this + * suspicion by slurping everything that could reasonably be part of the + * string and still be in the same line (i.e., a string of anything except + * newline, braces, parentheses, double-quote, and backslash), and then + * calling check_runaway_string(). This function then "backs up" to the + * beginning of the slurped string (the newline), and scans ahead looking + * for one of two patterns: "@name[{(]", or "name=" (with optional + * whitespace between the "tokens"). (Actually, it first makes a pass over + * the string to convert all whitespace characters -- including the sole + * newline -- to spaces. So, it's effectively looking for "\ *\@\ *NAME\ + * *[\{\(]" (DLG regexp syntax) or "\ *NAME\ *=", where + * NAME="[a-z][a-z0-9+/:'.-]*" -- that is, something that looks like the + * start of an entry or a new field, but in a string (where they almost + * certainly shouldn't occur). Of course, there are no explicit regexps + * there -- it's all coded as a little hand-crafted automaton in C. + * + * At any rate, if either one of these patterns is matched, + * check_runaway_string() prints a warning and sets a flag so that we don't + * print that warning -- or indeed, even scan for the suspect patterns -- + * more than once for the current string. (Because chances are if it + * occurs once, it'll occur again and again and again.) + * + * There is also some trickery going on to deal with '@comment' entries. + * Syntactically, these are just AT NAME STRING, where NAME must be + * 'comment'. This means that an '@comment' entry has no delimiters, it + * just has a string. To make them look a bit more like the other kinds of + * entries (which are delimited with '{' ... '}' or '(' ... ')', the STRING + * here is special: it's delimited either by braces or parentheses, rather + * than by the usual braces or double-quotes. Thus, we treat parentheses + * much like braces in this lexer, to handle the '@comment(...)' case. And + * there's an explicit check for the erroneous '@comment"..."' case in + * start_string(), just to be complete. + * + * So that explains all the regexps in this lexer: the first one (starting + * with newline) triggers the check for a runaway string. Then, we have a + * pattern to convert any single whitespace char (apart from newline) to a + * space; note that any whitespace chars that are matched in the + * newline-regexp will be converted by check_runaway_string(), and won't be + * matched by the whitespace regexp here. Then, we check for braces; + * open_brace() and close_brace() take care of counting brace-depth and + * determining if we have hit the end of the string. lparen_in_string() + * and rparen_in_string() do the same for parentheses, to handle + * '@comment(...)'. Then, if a double quote is seen, we call + * quote_in_string(); this takes care of ending strings quoted by double + * quotes. Finally, the "fall-through" regexp handles most strings (except + * for stuff that comes after a newline). + */ +#token "\n~[\n\{\}\(\)\"\\]*" << check_runaway_string (); >> +#token "[\r\t]" << zzreplchar (' '); zzmore (); >> +#token "\{" << open_brace (); >> +#token "\}" << close_brace (); >> +#token "\(" << lparen_in_string (); >> +#token "\)" << rparen_in_string (); >> +#token STRING "\"" << quote_in_string (); >> +#token "~[\n\{\}\(\)\"]+" << zzmore (); >> + +#lexclass START + + +/* At last, the grammar! After that lexer, this is a snap. */ + +/* + * `bibfile' is the rule to recognize an entire BibTeX file. Note that I + * don't actually use this as the start rule myself; I have a function + * bt_parse_entry() (in input.c), which takes care of setting up the lexer + * and parser state in such a way that the parser can be entered multiple + * times (at the `entry' rule) on the same input stream. Then, the user + * calls bt_parse_entry() until end of file is reached, at which point it + * cleans up its mess. The `bibfile' rule should work, but I never + * actually use it, so it hasn't been tested in quite a while. + */ +bibfile! : << AST *last; #0 = NULL; >> + ( entry + << /* a little creative forestry... */ + if (#0 == NULL) + #0 = #1; + else + last->right = #1; + last = #1; + >> + )* ; + +/* + * `entry' is the rule that I actually use to enter the parser -- it parses + * a single entry from the input stream (that is, the lexer scans past + * junk until an '@' is seen at top-level, and that '@' becomes the AT + * token which starts an entry). + * + * `entry_metatype()' returns the value of a global variable maintained by + * lex_auxiliary.c that tells us how to parse the entry. This is needed + * because, while the different things that look like BibTeX entries + * (string definition, preamble, actual entry, etc.) have a similar lexical + * makeup, the syntax is different. In `entry', we just use the entry + * metatype to determine the nodetype field of the AST node for the entry; + * below, in `body' and `contents', we'll actually use it (in the form of + * semantic predicates) to select amongst the various syntax options. + */ +entry : << bt_metatype metatype; >> + AT! NAME^ + << + metatype = entry_metatype(); + #1->nodetype = BTAST_ENTRY; + #1->metatype = metatype; + >> + body[metatype] + ; + +/* + * `body' is what comes after AT NAME: either a single string, delimited by + * {} or () (where NAME == 'comment'), or the more usual case of the entry + * contents, delimited by an entry 'opener' and 'closer' (either + * parentheses or braces). + */ +body [bt_metatype metatype] + : << metatype == BTE_COMMENT >>? + STRING << #1->nodetype = BTAST_STRING; >> + | ENTRY_OPEN! contents[metatype] ENTRY_CLOSE! + ; + +/* + * `contents' is where we select and accept the syntax for the guts of the + * entry, based on the type of entry that we're parsing. We find this + * out from the `nodetype' field of the top AST node for the entry, which + * is passed in as `entry_type'. General entries (ie. any unrecognized + * entry type) and `modify' entries have a name (the key), a comma, and + * list of "field = value" assignments. Macro definitions ('@string') are + * similar, but without the key-comma pair. Preambles have just a single + * value, and aliases have a single "field = value" assignment. (Note that + * '@modify' and '@alias' are BibTeX 1.0 additions -- I'll have to check + * the compatibility of my syntax with BibTeX 1.0 when it is released.) + * '@comment' entries are handled differently, by the `body' rule above. + */ +contents [bt_metatype metatype] + : << metatype == BTE_REGULAR /* || metatype == BTE_MODIFY */ >>? + ( NAME | NUMBER ) << #1->nodetype = BTAST_KEY; >> + COMMA! + fields + | << metatype == BTE_MACRODEF >>? + fields + | << metatype == BTE_PREAMBLE >>? + value +// | << metatype == BTE_ALIAS >>? +// field + ; + +/* + * `fields' is a comma-separated list of fields. Note that BibTeX has a + * little wart in that it allows a single extra comma after the last field + * only. This is easy enough to handle, we just have to do it in the + * traditional BNFish way (loop by recursion) rather than use EBNF + * trickery. + */ +fields : field { COMMA! fields } + | /* epsilon */ + ; + +/* `field' recognizes a single "field = value" assignment. */ +field : NAME^ + << #1->nodetype = BTAST_FIELD; check_field_name (#1); >> + EQUALS! value + << +#if DEBUG > 1 + printf ("field: fieldname = %p (%s)\n" + " first val = %p (%s)\n", + #1->text, #1->text, #2->text, #2->text); +#endif + >> + ; + +/* `value' is a sequence of simple_values, joined by the '#' operator. */ +value : simple_value ( HASH! simple_value )* ; + +/* `simple_value' is a single string, number, or macro invocation. */ +simple_value : STRING << #1->nodetype = BTAST_STRING; >> + | NUMBER << #1->nodetype = BTAST_NUMBER; >> + | NAME << #1->nodetype = BTAST_MACRO; >> + ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/src/lex_auxiliary.c new/Text-BibTeX-0.66/btparse/src/lex_auxiliary.c --- old/Text-BibTeX-0.63/btparse/src/lex_auxiliary.c 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/btparse/src/lex_auxiliary.c 2012-10-29 13:31:11.000000000 +0100 @@ -19,7 +19,7 @@ @CREATED : Greg Ward, 1996/07/25-28 @MODIFIED : Jan 1997 Jun 1997 -@VERSION : $Id: lex_auxiliary.c 8964 2010-09-18 14:34:16Z ambs $ +@VERSION : $Id: lex_auxiliary.c 11393 2012-09-26 11:13:46Z ambs $ @COPYRIGHT : Copyright (c) 1996-99 by Gregory P. Ward. All rights reserved. This file is part of the btparse library. This library is @@ -210,7 +210,7 @@ { zztoktext = (char *) malloc (size * sizeof (char)); memset (zztoktext, 0, size); - zzlextext = zztoktext; + zzlextext = (unsigned char*)zztoktext; zzbufsize = size; } } /* alloc_lex_buffer() */ @@ -253,7 +253,7 @@ beg = zzbegexpr - zzlextext; end = zzendexpr - zzlextext; next = *nextpos - (unsigned char *) zzlextext; - zzlextext = zztoktext; + zzlextext = (unsigned char*)zztoktext; if (lastpos != NULL) *lastpos = zzlextext+zzbufsize-1; @@ -431,7 +431,7 @@ void toplevel_junk (void) { - JunkCount += strlen (zzlextext); + JunkCount += strlen ((const char*)zzlextext); zzskip (); } @@ -449,7 +449,7 @@ } case after_at: { - char * etype = zzlextext; + char * etype = (char*)zzlextext; EntryState = after_type; if (strcasecmp (etype, "comment") == 0) @@ -660,7 +660,7 @@ if (EntryState == in_comment) { - int len = strlen (zzlextext); + int len = strlen ((const char*)zzlextext); /* * ARG! no, this is wrong -- what if unbalanced braces in the string @@ -859,7 +859,7 @@ zzline++; } - len = strlen (zzbegexpr); + len = strlen ((const char*)zzbegexpr); for (i = 0; i < len; i++) { /* standardise whitespace (convert all to space). We are not using diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/src/macros.c new/Text-BibTeX-0.66/btparse/src/macros.c --- old/Text-BibTeX-0.63/btparse/src/macros.c 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/btparse/src/macros.c 2012-10-29 13:31:11.000000000 +0100 @@ -6,7 +6,7 @@ @CALLS : @CREATED : 1997/01/12, Greg Ward @MODIFIED : -@VERSION : $Id: macros.c 9504 2011-01-27 14:35:42Z ambs $ +@VERSION : $Id: macros.c 11268 2012-07-08 15:11:33Z ambs $ @COPYRIGHT : Copyright (c) 1996-99 by Gregory P. Ward. All rights reserved. This file is part of the btparse library. This library is @@ -39,10 +39,10 @@ * something like that. I'm not sure of the exact Knuthian * specification. */ -/* Increased 10-fold to accomodate reasonbly string libraries - PK 27/10/2011 */ +/* Increased 100-fold to accomodate large string libraries - PK 27/10/2011 */ #define NUM_MACROS 5449 -#define STRING_SIZE 40960 +#define STRING_SIZE 400960 Sym *AllMacros = NULL; /* `scope' so we can get back list */ /* of all macros when done */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/src/parser.dlg new/Text-BibTeX-0.66/btparse/src/parser.dlg --- old/Text-BibTeX-0.63/btparse/src/parser.dlg 1970-01-01 01:00:00.000000000 +0100 +++ new/Text-BibTeX-0.66/btparse/src/parser.dlg 2012-10-29 13:31:11.000000000 +0100 @@ -0,0 +1,215 @@ +<< +/* parser.dlg -- DLG Description of scanner + * + * Generated from: bibtex.g + * + * Terence Parr, Will Cohen, and Hank Dietz: 1989-1994 + * Purdue University Electrical Engineering + * With AHPCRC, University of Minnesota + * ANTLR Version 1.33 + */ + +#include <stdio.h> +#define ANTLR_VERSION 133 + +#define ZZCOL +#define USER_ZZSYN + +#include "config.h" +#include "btparse.h" +#include "attrib.h" +#include "lex_auxiliary.h" +#include "error.h" +#include "my_dmalloc.h" + +extern char * InputFilename; /* for zzcr_ast call in pccts/ast.c */ +#include "antlr.h" +#include "ast.h" +#include "tokens.h" +#include "dlgdef.h" +LOOKAHEAD +void zzerraction() +{ + (*zzerr)("invalid token"); + zzadvance(); + zzskip(); +} +>> + + +%%START + +@ + << + NLA = 1; + >> + +\@ + << + NLA = AT; + at_sign (); + >> + +\n + << + NLA = 3; + newline (); + >> + +\%~[\n]*\n + << + NLA = COMMENT; + comment (); + >> + +[\ \r\t]+ + << + NLA = 5; + zzskip (); + >> + +~[\@\n\ \r\t]+ + << + NLA = 6; + toplevel_junk (); + >> + + +%%LEX_ENTRY + +@ + << + NLA = 1; + >> + +\n + << + NLA = 7; + newline (); + >> + +\%~[\n]*\n + << + NLA = COMMENT; + comment (); + >> + +[\ \r\t]+ + << + NLA = 8; + zzskip (); + >> + +[0-9]+ + << + NLA = NUMBER; + >> + +[a-z0-9\!\$\&\*\+\-\.\/\:\;\<\>\?\[\]\^\_\`\|]+ + << + NLA = NAME; + name (); + >> + +\{ + << + NLA = LBRACE; + lbrace (); + >> + +\} + << + NLA = RBRACE; + rbrace (); + >> + +\( + << + NLA = ENTRY_OPEN; + lparen (); + >> + +\) + << + NLA = ENTRY_CLOSE; + rparen (); + >> + += + << + NLA = EQUALS; + >> + +\# + << + NLA = HASH; + >> + +, + << + NLA = COMMA; + >> + +\" + << + NLA = 18; + start_string ('"'); + >> + + +%%LEX_STRING + +@ + << + NLA = 1; + >> + +\n~[\n\{\}\(\)\"\\]* + << + NLA = 19; + check_runaway_string (); + >> + +[\r\t] + << + NLA = 20; + zzreplchar (' '); zzmore (); + >> + +\{ + << + NLA = 21; + open_brace (); + >> + +\} + << + NLA = 22; + close_brace (); + >> + +\( + << + NLA = 23; + lparen_in_string (); + >> + +\) + << + NLA = 24; + rparen_in_string (); + >> + +\" + << + NLA = STRING; + quote_in_string (); + >> + +~[\n\{\}\(\)\"]+ + << + NLA = 26; + zzmore (); + >> + +%% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/btparse/src/scan.c new/Text-BibTeX-0.66/btparse/src/scan.c --- old/Text-BibTeX-0.63/btparse/src/scan.c 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/btparse/src/scan.c 2012-10-29 13:31:11.000000000 +0100 @@ -217,13 +217,13 @@ 14, 14, 14, 3, 5, 13, 11, 5, 2, 5, 14, 8, 9, 5, 5, 12, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 5, 5, 10, 5, 5, 14, 5, 5, 5, 5, + 5, 5, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 14, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 6, 5, 7, 14, 14, 5, + 5, 5, 5, 5, 6, 5, 7, 5, 14, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-BibTeX-0.63/lib/Text/BibTeX.pm new/Text-BibTeX-0.66/lib/Text/BibTeX.pm --- old/Text-BibTeX-0.63/lib/Text/BibTeX.pm 2012-05-12 19:48:59.000000000 +0200 +++ new/Text-BibTeX-0.66/lib/Text/BibTeX.pm 2012-10-29 13:31:11.000000000 +0100 @@ -24,7 +24,7 @@ require Exporter; require DynaLoader; -our $VERSION='0.63'; +our $VERSION='0.66'; @ISA = qw(Exporter DynaLoader); %EXPORT_TAGS = (nodetypes => [qw(BTAST_STRING BTAST_MACRO BTAST_NUMBER)], ++++++ perl-Text-BibTeX-libdir.patch ++++++ --- /var/tmp/diff_new_pack.NiFxbG/_old 2012-12-10 14:25:41.000000000 +0100 +++ /var/tmp/diff_new_pack.NiFxbG/_new 2012-12-10 14:25:41.000000000 +0100 @@ -5,7 +5,7 @@ } } else { - if ($Config{archname} =~ /^x86_64/) { -+ if ($Config{archname} =~ /^x86_64|ppc64/) { ++ if ($Config{archname} =~ /^x86_64|ppc64|s390x/) { $libdir =~ s/\bbin\b/lib64/; if (!-d $libdir) { my $test = $libdir; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
