Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 35884 Details for
Bug 57857
include xmlgawk extensions in gawk
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
diff to implement the suggested extension
gawk-3.1.3-r2.diff (text/plain), 24.57 KB, created by
Alcino Dall Igna Junior
on 2004-07-21 08:11:50 UTC
(
hide
)
Description:
diff to implement the suggested extension
Filename:
MIME Type:
Creator:
Alcino Dall Igna Junior
Created:
2004-07-21 08:11:50 UTC
Size:
24.57 KB
patch
obsolete
>diff -rcN /usr/portage/sys-apps/gawk/ChangeLog gawk/ChangeLog >*** /usr/portage/sys-apps/gawk/ChangeLog Fri Jul 16 22:09:23 2004 >--- gawk/ChangeLog Wed Jul 21 11:52:21 2004 >*************** >*** 2,7 **** >--- 2,11 ---- > # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 > # $Header: /var/cvsroot/gentoo-x86/sys-apps/gawk/ChangeLog,v 1.42 2004/07/17 01:08:18 mr_bones_ Exp $ > >+ 21 Jul 2003; Alcino Dall'Igna Junior <alcino@lncc.br> >+ gawk-3.1.3-r2.ebuild, patch-xmlext-313; added >+ http://homepage.mac.com/stefan.tramm/ xml extension to gawk >+ > 16 Jul 2004; Michael Sterrett <mr_bones_@gentoo.org> -gawk-3.1.1-r2.ebuild, > -gawk-3.1.2-r3.ebuild, gawk-3.1.3-r1.ebuild, -gawk-3.1.3.ebuild: > gnuconfig_update in src_unpack; use emake; tidy; clean older ebuilds >diff -rcN /usr/portage/sys-apps/gawk/Manifest gawk/Manifest >*** /usr/portage/sys-apps/gawk/Manifest Fri Jul 16 22:09:23 2004 >--- gawk/Manifest Wed Jul 21 11:53:28 2004 >*************** >*** 1,9 **** >! MD5 c0da35ab434ab9b356411e11bb68fc4e ChangeLog 7048 >! MD5 ec9370080192e9f99dd858bb23923012 gawk-3.1.3-r1.ebuild 3266 > MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164 > MD5 1a6ff83a6dd7c5f300803cae1cabd4ae files/gawk-3.1.2-dec-alpha-compiler.diff 461 > MD5 9f439b073b0d1903a54a04dca5aa44af files/gawk-3.1.2-input-filesize.patch 13485 >- MD5 a3d79dbed6a930b14071084a6c2dbcc7 files/digest-gawk-3.1.3-r1 63 > MD5 c40ec6dfabda5864b7f62fa57d2329bd files/64bitnumfile.patch 340 > MD5 36b5ebb691c9060f293762de7adc9d50 files/filefuncs/Makefile 943 >- MD5 6329d35b6c81a6fd70ab4a902af8e0bd files/filefuncs/filefuncs.c 11028 >--- 1,12 ---- >! MD5 cacaa21c891d837edadf9b96d32c7a27 gawk-3.1.3-r2.ebuild 3305 >! MD5 91f62f7defb0d4b473ba8ac6fc11b8c8 ChangeLog 7215 > MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164 >+ MD5 ec9370080192e9f99dd858bb23923012 gawk-3.1.3-r1.ebuild 3266 >+ MD5 a3d79dbed6a930b14071084a6c2dbcc7 files/digest-gawk-3.1.3-r1 63 > MD5 1a6ff83a6dd7c5f300803cae1cabd4ae files/gawk-3.1.2-dec-alpha-compiler.diff 461 > MD5 9f439b073b0d1903a54a04dca5aa44af files/gawk-3.1.2-input-filesize.patch 13485 > MD5 c40ec6dfabda5864b7f62fa57d2329bd files/64bitnumfile.patch 340 >+ MD5 a3d79dbed6a930b14071084a6c2dbcc7 files/digest-gawk-3.1.3-r2 63 >+ MD5 c403752700dffb5be11d5069fae29c97 files/patch-xmlext-313 17033 >+ MD5 4cb59bd814987bd7f2e4d2f8deca16ae files/filefuncs/filefuncs.c 11027 > MD5 36b5ebb691c9060f293762de7adc9d50 files/filefuncs/Makefile 943 >diff -rcN /usr/portage/sys-apps/gawk/files/digest-gawk-3.1.3-r2 gawk/files/digest-gawk-3.1.3-r2 >*** /usr/portage/sys-apps/gawk/files/digest-gawk-3.1.3-r2 Wed Dec 31 21:00:00 1969 >--- gawk/files/digest-gawk-3.1.3-r2 Wed Jul 21 11:53:28 2004 >*************** >*** 0 **** >--- 1 ---- >+ MD5 b637b454005f9e72a9a8eecfacd07ca0 gawk-3.1.3.tar.gz 2078246 >diff -rcN /usr/portage/sys-apps/gawk/files/patch-xmlext-313 gawk/files/patch-xmlext-313 >*** /usr/portage/sys-apps/gawk/files/patch-xmlext-313 Wed Dec 31 21:00:00 1969 >--- gawk/files/patch-xmlext-313 Mon Jul 19 16:18:03 2004 >*************** >*** 0 **** >--- 1,618 ---- >+ diff -rcN gawk-3.1.3/Makefile.in gawk-3.1.3.xml/Makefile.in >+ *** gawk-3.1.3/Makefile.in 2003-07-04 19:49:07.000000000 +0200 >+ --- gawk-3.1.3.xml/Makefile.in 2003-08-03 22:09:08.000000000 +0200 >+ *************** >+ *** 97,107 **** >+ INTLLIBS = @INTLLIBS@ >+ INTLOBJS = @INTLOBJS@ >+ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ >+ ! LDFLAGS = @LDFLAGS@ >+ LIBICONV = @LIBICONV@ >+ LIBINTL = @LIBINTL@ >+ LIBOBJS = @LIBOBJS@ >+ ! LIBS = @LIBS@ >+ LN_S = @LN_S@ >+ LTLIBICONV = @LTLIBICONV@ >+ LTLIBINTL = @LTLIBINTL@ >+ --- 97,107 ---- >+ INTLLIBS = @INTLLIBS@ >+ INTLOBJS = @INTLOBJS@ >+ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ >+ ! LDFLAGS = @LDFLAGS@ -L/usr/lib >+ LIBICONV = @LIBICONV@ >+ LIBINTL = @LIBINTL@ >+ LIBOBJS = @LIBOBJS@ >+ ! LIBS = @LIBS@ -lexpat >+ LN_S = @LN_S@ >+ LTLIBICONV = @LTLIBICONV@ >+ LTLIBINTL = @LTLIBINTL@ >+ diff -rcN gawk-3.1.3/awk.h gawk-3.1.3.xml/awk.h >+ *** gawk-3.1.3/awk.h 2003-06-29 14:52:40.000000000 +0200 >+ --- gawk-3.1.3.xml/awk.h 2003-08-03 22:09:09.000000000 +0200 >+ *************** >+ *** 80,85 **** >+ --- 80,87 ---- >+ #include <wctype.h> >+ #endif >+ >+ + #include <expat.h> >+ + >+ /* ----------------- System dependencies (with more includes) -----------*/ >+ >+ /* This section is the messiest one in the file, not a lot that can be done */ >+ *************** >+ *** 418,423 **** >+ --- 420,426 ---- >+ Node_array_ref, /* array passed by ref as parameter */ >+ >+ Node_BINMODE, /* variables recognized in the grammar */ >+ + Node_XMLMODE, >+ Node_CONVFMT, >+ Node_FIELDWIDTHS, >+ Node_FNR, >+ *************** >+ *** 580,585 **** >+ --- 583,589 ---- >+ ssize_t count; /* amount read last time */ >+ size_t scanoff; /* where we were in the buffer when we had >+ to regrow/refill */ >+ + XML_Parser xml_parser; /* set by iop_alloc when needed */ >+ int flag; >+ # define IOP_IS_TTY 1 >+ # define IOP_IS_INTERNAL 2 >+ *************** >+ *** 587,592 **** >+ --- 591,597 ---- >+ # define IOP_NOFREE_OBJ 8 >+ # define IOP_AT_EOF 16 >+ # define IOP_CLOSED 32 >+ + # define IOP_XML 64 >+ } IOBUF; >+ >+ typedef void (*Func_ptr) P((void)); >+ *************** >+ *** 658,663 **** >+ --- 663,669 ---- >+ extern long NR; >+ extern long FNR; >+ extern int BINMODE; >+ + extern int XMLMODE; >+ extern int IGNORECASE; >+ extern int RS_is_null; >+ extern char *OFS; >+ *************** >+ *** 669,674 **** >+ --- 675,684 ---- >+ ATTRIBUTE_EXPORTED extern int CONVFMTidx; >+ extern int OFMTidx; >+ extern char *TEXTDOMAIN; >+ + extern NODE *XMLMODE_node; >+ + extern NODE *XMLSTARTELEM_node, *XMLENDELEM_node; >+ + extern NODE *XMLCHARDATA_node, *XMLPROCINST_node, *XMLCOMMENT_node; >+ + extern NODE *XMLSTARTCDATA_node, *XMLENDCDATA_node; >+ extern NODE *BINMODE_node, *CONVFMT_node, *FIELDWIDTHS_node, *FILENAME_node; >+ extern NODE *FNR_node, *FS_node, *IGNORECASE_node, *NF_node; >+ extern NODE *NR_node, *OFMT_node, *OFS_node, *ORS_node, *RLENGTH_node; >+ *************** >+ *** 980,985 **** >+ --- 990,996 ---- >+ extern void set_OFMT P((void)); >+ extern void set_CONVFMT P((void)); >+ extern void set_BINMODE P((void)); >+ + extern void set_XMLMODE P((void)); >+ extern void set_LINT P((void)); >+ extern void set_TEXTDOMAIN P((void)); >+ extern void update_ERRNO P((void)); >+ *************** >+ *** 1045,1050 **** >+ --- 1056,1063 ---- >+ extern int main P((int argc, char **argv)); >+ extern NODE *load_environ P((void)); >+ extern NODE *load_procinfo P((void)); >+ + extern NODE *load_xmlattr P((void)); >+ + extern void update_xmlattr P((const char **attributes)); >+ extern int arg_assign P((char *arg, int initing)); >+ /* msg.c */ >+ extern void err P((const char *s, const char *emsg, va_list argp)) ATTRIBUTE_PRINTF(2, 0); >+ diff -rcN gawk-3.1.3/awkgram.y gawk-3.1.3.xml/awkgram.y >+ *** gawk-3.1.3/awkgram.y 2003-07-04 19:25:23.000000000 +0200 >+ --- gawk-3.1.3.xml/awkgram.y 2003-08-09 23:14:23.000000000 +0200 >+ *************** >+ *** 2996,3002 **** >+ _("or used as a variable or an array")); >+ } else { >+ /* not found */ >+ ! if (! do_traditional && STREQ(name, "PROCINFO")) >+ r = load_procinfo(); >+ else if (STREQ(name, "ENVIRON")) >+ r = load_environ(); >+ --- 2996,3006 ---- >+ _("or used as a variable or an array")); >+ } else { >+ /* not found */ >+ ! if (! do_traditional && STREQ(name, "XMLATTR")) >+ ! r = load_xmlattr(); >+ ! else if (! do_traditional && STREQ(name, "XMLATTRPOS")) >+ ! r = load_xmlattrpos(); >+ ! else if (! do_traditional && STREQ(name, "PROCINFO")) >+ r = load_procinfo(); >+ else if (STREQ(name, "ENVIRON")) >+ r = load_environ(); >+ diff -rcN gawk-3.1.3/eval.c gawk-3.1.3.xml/eval.c >+ *** gawk-3.1.3/eval.c 2003-06-22 10:56:04.000000000 +0200 >+ --- gawk-3.1.3.xml/eval.c 2003-08-03 22:09:09.000000000 +0200 >+ *************** >+ *** 236,241 **** >+ --- 236,242 ---- >+ "Node_ahash", >+ "Node_array_ref", >+ "Node_BINMODE", >+ + "Node_XMLMODE", >+ "Node_CONVFMT", >+ "Node_FIELDWIDTHS", >+ "Node_FNR", >+ *************** >+ *** 898,903 **** >+ --- 899,905 ---- >+ case Node_OFMT: >+ case Node_CONVFMT: >+ case Node_BINMODE: >+ + case Node_XMLMODE: >+ case Node_LINT: >+ case Node_TEXTDOMAIN: >+ lhs = get_lhs(tree, (Func_ptr *) NULL, TRUE); >+ *************** >+ *** 1821,1826 **** >+ --- 1823,1834 ---- >+ *assign = set_BINMODE; >+ break; >+ >+ + case Node_XMLMODE: >+ + aptr = &(XMLMODE_node->var_value); >+ + if (assign != NULL) >+ + *assign = set_XMLMODE; >+ + break; >+ + >+ case Node_LINT: >+ aptr = &(LINT_node->var_value); >+ if (assign != NULL) >+ *************** >+ *** 2018,2023 **** >+ --- 2026,2057 ---- >+ BINMODE = 0; /* shouldn't happen */ >+ } >+ >+ + /* set_XMLMODE --- set parsing mode */ >+ + >+ + void >+ + set_XMLMODE() >+ + { >+ + static int warned = FALSE; >+ + char *p, *cp, save; >+ + NODE *v; >+ + int digits = FALSE; >+ + >+ + if ((do_lint || do_traditional) && ! warned) { >+ + warned = TRUE; >+ + lintwarn(_("`XMLMODE' is a gawk extension")); >+ + } >+ + if (do_traditional) >+ + XMLMODE = 0; >+ + else if ((XMLMODE_node->var_value->flags & NUMBER) != 0) >+ + XMLMODE = (int) force_number(XMLMODE_node->var_value); >+ + else if ((XMLMODE_node->var_value->flags & STRING) != 0) { >+ + /* arbitrary string, assume XML */ >+ + XMLMODE = 1; >+ + warning("XMLMODE: arbitary string value treated as \"1\""); >+ + } else >+ + XMLMODE = 0; /* shouldn't happen */ >+ + } >+ + >+ /* set_OFS --- update OFS related variables when OFS assigned to */ >+ >+ void >+ diff -rcN gawk-3.1.3/io.c gawk-3.1.3.xml/io.c >+ *** gawk-3.1.3/io.c 2003-07-04 19:50:58.000000000 +0200 >+ --- gawk-3.1.3.xml/io.c 2003-08-09 23:14:55.000000000 +0200 >+ *************** >+ *** 388,393 **** >+ --- 388,398 ---- >+ else >+ ret = close(iop->fd); >+ >+ + if ((iop->flag & IOP_XML) != 0) { >+ + XML_ParserFree(iop->xml_parser); >+ + iop->xml_parser = NULL; >+ + } >+ + >+ if (ret == -1) >+ warning(_("close of fd %d (`%s') failed (%s)"), iop->fd, >+ iop->name, strerror(errno)); >+ *************** >+ *** 422,427 **** >+ --- 427,433 ---- >+ if ((iop->flag & IOP_NOFREE_OBJ) == 0) >+ free((char *) iop); >+ } >+ + >+ return ret == -1 ? 1 : 0; >+ } >+ >+ *************** >+ *** 437,460 **** >+ (void) setjmp(filebuf); /* for `nextfile' */ >+ >+ while ((iop = nextfile(FALSE)) != NULL) { >+ ! /* >+ ! * This was: >+ ! if (inrec(iop) == 0) >+ ! while (interpret(expression_value) && inrec(iop) == 0) >+ continue; >+ - * Now expand it out for ease of debugging. >+ - */ >+ - rval1 = inrec(iop); >+ - if (rval1 == 0) { >+ - for (;;) { >+ - rval2 = rval3 = -1; /* for debugging */ >+ - rval2 = interpret(expression_value); >+ - if (rval2 != 0) >+ - rval3 = inrec(iop); >+ - if (rval2 == 0 || rval3 != 0) >+ - break; >+ } >+ } >+ if (exiting) >+ break; >+ } >+ --- 443,485 ---- >+ (void) setjmp(filebuf); /* for `nextfile' */ >+ >+ while ((iop = nextfile(FALSE)) != NULL) { >+ ! if ((iop->flag & IOP_XML) == 0) { >+ ! /* >+ ! * This was: >+ ! if (inrec(iop) == 0) >+ ! while (interpret(expression_value) && inrec(iop) == 0) >+ ! continue; >+ ! * Now expand it out for ease of debugging. >+ ! */ >+ ! rval1 = inrec(iop); >+ ! if (rval1 == 0) { >+ ! for (;;) { >+ ! rval2 = rval3 = -1; /* for debugging */ >+ ! rval2 = interpret(expression_value); >+ ! if (rval2 != 0) >+ ! rval3 = inrec(iop); >+ ! if (rval2 == 0 || rval3 != 0) >+ ! break; >+ ! } >+ ! } >+ ! } else { >+ ! int done; >+ ! >+ ! iop->count = read(iop->fd, iop->buf, iop->readsize); >+ ! done = iop->count <= 0; >+ ! if (XML_Parse(iop->xml_parser, iop->buf, iop->count, done) == >+ ! XML_STATUS_ERROR) { >+ ! fatal(_("XML error: %s at line %d\n"), >+ ! XML_ErrorString(XML_GetErrorCode(iop->xml_parser)), >+ ! XML_GetCurrentLineNumber(iop->xml_parser)); >+ ! break; >+ ! } >+ ! if (done) { >+ ! iop->flag |= IOP_AT_EOF; >+ continue; >+ } >+ } >+ + >+ if (exiting) >+ break; >+ } >+ *************** >+ *** 2402,2407 **** >+ --- 2427,2525 ---- >+ } >+ #endif >+ >+ + static void >+ + resetXMLvars(void) >+ + { >+ + unref(XMLSTARTELEM_node->var_value); >+ + XMLSTARTELEM_node->var_value=Nnull_string; >+ + unref(XMLENDELEM_node->var_value); >+ + XMLENDELEM_node->var_value=Nnull_string; >+ + unref(XMLCHARDATA_node->var_value); >+ + XMLCHARDATA_node->var_value=Nnull_string; >+ + unref(XMLPROCINST_node->var_value); >+ + XMLPROCINST_node->var_value=Nnull_string; >+ + unref(XMLCOMMENT_node->var_value); >+ + XMLCOMMENT_node->var_value=Nnull_string; >+ + unref(XMLSTARTCDATA_node->var_value); >+ + XMLSTARTCDATA_node->var_value=Nnull_string; >+ + unref(XMLENDCDATA_node->var_value); >+ + XMLENDCDATA_node->var_value=Nnull_string; >+ + >+ + do_delete(load_xmlattr(), NULL); >+ + do_delete(load_xmlattrpos(), NULL); >+ + >+ + } >+ + >+ + static void >+ + setXMLrecord(const char *buf, int cnt) >+ + { >+ + NR += 1; >+ + FNR += 1; >+ + >+ + set_record(buf, cnt); >+ + >+ + interpret(expression_value); >+ + } >+ + >+ + static void >+ + iop_XML_start_element_handler(void *userData, const char *name, const char **atts) >+ + { >+ + resetXMLvars(); >+ + XMLSTARTELEM_node->var_value = make_string(name, strlen(name)); >+ + update_xmlattr(atts); >+ + setXMLrecord(NULL, 0); >+ + } >+ + >+ + static void >+ + iop_XML_end_element_handler(void *userData, const char *name) >+ + { >+ + resetXMLvars(); >+ + XMLENDELEM_node->var_value = make_string(name, strlen(name)); >+ + setXMLrecord(NULL, 0); >+ + } >+ + >+ + static void >+ + iop_XML_chardata_handler(void *userData, const XML_Char *s, int len) >+ + { >+ + resetXMLvars(); >+ + XMLCHARDATA_node->var_value = make_number((AWKNUM) 1); >+ + setXMLrecord(s, len); >+ + } >+ + >+ + static void >+ + iop_XML_proc_inst_handler(void *userData, const XML_Char *target, const XML_Char *data) >+ + { >+ + resetXMLvars(); >+ + XMLPROCINST_node->var_value = make_string(target, strlen(target)); >+ + setXMLrecord(data, strlen(data)); >+ + } >+ + >+ + static void >+ + iop_XML_comment_handler(void *userData, const XML_Char *data) >+ + { >+ + resetXMLvars(); >+ + XMLCOMMENT_node->var_value = make_number((AWKNUM) 1); >+ + setXMLrecord(data, strlen(data)); >+ + } >+ + >+ + static void >+ + iop_XML_start_cdata_handler(void *userData) >+ + { >+ + resetXMLvars(); >+ + XMLSTARTCDATA_node->var_value = make_number((AWKNUM) 1); >+ + //setXMLrecord(userData, strlen(userData)); >+ + setXMLrecord(NULL, 0); >+ + } >+ + >+ + static void >+ + iop_XML_end_cdata_handler(void *userData) >+ + { >+ + resetXMLvars(); >+ + XMLENDCDATA_node->var_value = make_number((AWKNUM) 1); >+ + setXMLrecord(NULL, 0); >+ + } >+ + >+ + >+ /* iop_alloc --- allocate an IOBUF structure for an open fd */ >+ >+ static IOBUF * >+ *************** >+ *** 2430,2435 **** >+ --- 2548,2573 ---- >+ iop->dataend = NULL; >+ iop->end = iop->buf + iop->size; >+ iop->flag = 0; >+ + if (XMLMODE == 0) { >+ + iop->xml_parser = NULL; >+ + } else { >+ + iop->flag |= IOP_XML; >+ + iop->xml_parser = XML_ParserCreate(NULL); >+ + if (iop->xml_parser == NULL) >+ + fatal(_("cannot allocate memory for XML parser")); >+ + XML_SetElementHandler(iop->xml_parser, >+ + iop_XML_start_element_handler, >+ + iop_XML_end_element_handler); >+ + XML_SetCharacterDataHandler(iop->xml_parser, >+ + iop_XML_chardata_handler); >+ + XML_SetProcessingInstructionHandler(iop->xml_parser, >+ + iop_XML_proc_inst_handler); >+ + XML_SetCommentHandler(iop->xml_parser, >+ + iop_XML_comment_handler); >+ + XML_SetCdataSectionHandler(iop->xml_parser, >+ + iop_XML_start_cdata_handler, >+ + iop_XML_end_cdata_handler); >+ + } >+ return iop; >+ } >+ >+ *************** >+ *** 2838,2844 **** >+ } >+ >+ >+ - >+ /* <loop through file to find a record>= */ >+ state = NOSTATE; >+ for (;;) { >+ --- 2976,2981 ---- >+ diff -rcN gawk-3.1.3/main.c gawk-3.1.3.xml/main.c >+ *** gawk-3.1.3/main.c 2003-07-07 18:55:27.000000000 +0200 >+ --- gawk-3.1.3.xml/main.c 2003-08-09 23:43:00.000000000 +0200 >+ *************** >+ *** 57,62 **** >+ --- 57,66 ---- >+ static void init_groupset P((void)); >+ >+ /* These nodes store all the special variables AWK uses */ >+ + NODE *XMLMODE_node, *XMLATTR_node, *XMLATTRPOS_node; >+ + NODE *XMLSTARTELEM_node, *XMLENDELEM_node; >+ + NODE *XMLCHARDATA_node, *XMLPROCINST_node, *XMLCOMMENT_node; >+ + NODE *XMLSTARTCDATA_node, *XMLENDCDATA_node; >+ NODE *ARGC_node, *ARGIND_node, *ARGV_node, *BINMODE_node, *CONVFMT_node; >+ NODE *ENVIRON_node, *ERRNO_node, *FIELDWIDTHS_node, *FILENAME_node, *FNR_node; >+ NODE *FS_node, *IGNORECASE_node, *NF_node, *NR_node, *OFMT_node, *OFS_node; >+ *************** >+ *** 67,72 **** >+ --- 71,77 ---- >+ long NR; >+ long FNR; >+ int BINMODE; >+ + int XMLMODE; >+ int IGNORECASE; >+ char *OFS; >+ char *ORS; >+ *************** >+ *** 533,538 **** >+ --- 538,549 ---- >+ init_args(optind, argc, (char *) myname, argv); >+ (void) tokexpand(); >+ >+ + /* Set up an empty array of attributes in the XMLATTR array */ >+ + XMLATTR_node = install("XMLATTR", >+ + node((NODE *) NULL, Node_var_array, (NODE *) NULL)); >+ + XMLATTRPOS_node = install("XMLATTRPOS", >+ + node((NODE *) NULL, Node_var_array, (NODE *) NULL)); >+ + >+ /* Read in the program */ >+ if (yyparse() != 0 || errcount != 0) >+ exit(1); >+ *************** >+ *** 794,799 **** >+ --- 805,818 ---- >+ {&BINMODE_node, "BINMODE", Node_BINMODE, NULL, 0, NULL }, >+ {&LINT_node, "LINT", Node_LINT, NULL, 0, NULL }, >+ {&TEXTDOMAIN_node, "TEXTDOMAIN", Node_TEXTDOMAIN, "messages", 0, set_TEXTDOMAIN }, >+ + {&XMLMODE_node, "XMLMODE", Node_XMLMODE, NULL, 0, NULL }, >+ + {&XMLSTARTELEM_node, "XMLSTARTELEM", Node_var, NULL, 0, NULL }, >+ + {&XMLENDELEM_node, "XMLENDELEM", Node_var, NULL, 0, NULL }, >+ + {&XMLCHARDATA_node, "XMLCHARDATA", Node_var, NULL, 0, NULL }, >+ + {&XMLPROCINST_node, "XMLPROCINST", Node_var, NULL, 0, NULL }, >+ + {&XMLCOMMENT_node, "XMLCOMMENT", Node_var, NULL, 0, NULL }, >+ + {&XMLSTARTCDATA_node, "XMLSTARTCDATA", Node_var, NULL, 0, NULL }, >+ + {&XMLENDCDATA_node, "XMLENDCDATA", Node_var, NULL, 0, NULL }, >+ {0, NULL, Node_illegal, NULL, 0, NULL }, >+ }; >+ >+ *************** >+ *** 934,939 **** >+ --- 953,1008 ---- >+ return PROCINFO_node; >+ } >+ >+ + /* load_xmlattr --- return a pointer to the XMLATTR array node */ >+ + >+ + NODE * >+ + load_xmlattr(void) >+ + { >+ + return XMLATTR_node; >+ + } >+ + >+ + /* load_xmlattrpos --- return a pointer to the XMLATTRPOS array node */ >+ + >+ + NODE * >+ + load_xmlattrpos(void) >+ + { >+ + return XMLATTRPOS_node; >+ + } >+ + >+ + /* update_xmlattr --- populate the XMLATTR and the XMLATTRPOS array >+ + * Upon invokation, We assume that all previous entries in the >+ + * XMLATTR array are already deleted. >+ + */ >+ + >+ + void >+ + update_xmlattr(const char **attributes) >+ + { >+ + register char *var, *val; >+ + NODE **aptr; >+ + register int i; >+ + >+ + /* Take each attribute and enter it into the XMLATTR array. >+ + * Take each attribute and enter its name into the XMLATTRPOS array. >+ + * attributes[i ] is the pointer to the name of the attribute. >+ + * attributes[i+1] is the pointer to the value of the attribute. >+ + */ >+ + for (i = 0; attributes[i] != NULL && attributes[i+1] != NULL; i += 2) { >+ + /* First, enter this attribute into XMLATTR. */ >+ + var = attributes[i]; >+ + val = attributes[i+1]; >+ + aptr = assoc_lookup(XMLATTR_node, tmp_string(var, strlen(var)), >+ + FALSE); >+ + *aptr = make_string(val, strlen(val)); >+ + (*aptr)->flags |= MAYBE_NUM; >+ + >+ + /* Second, enter this attribute's name into XMLATTRPOS. */ >+ + aptr = assoc_lookup(XMLATTRPOS_node, tmp_number((AWKNUM) 1 + i/2), >+ + FALSE); >+ + *aptr = make_string(var, strlen(var)); >+ + (*aptr)->flags |= MAYBE_NUM; >+ + } >+ + } >+ + >+ /* arg_assign --- process a command-line assignment */ >+ >+ int >+ diff -rcN gawk-3.1.3/profile.c gawk-3.1.3.xml/profile.c >+ *** gawk-3.1.3/profile.c 2003-06-08 16:26:46.000000000 +0200 >+ --- gawk-3.1.3.xml/profile.c 2003-08-03 22:09:09.000000000 +0200 >+ *************** >+ *** 570,575 **** >+ --- 570,579 ---- >+ fprintf(prof_fp, "BINMODE"); >+ return; >+ >+ + case Node_XMLMODE: >+ + fprintf(prof_fp, "XMLMODE"); >+ + return; >+ + >+ case Node_TEXTDOMAIN: >+ fprintf(prof_fp, "TEXTDOMAIN"); >+ return; >+ *************** >+ *** 844,849 **** >+ --- 848,857 ---- >+ fprintf(prof_fp, "BINMODE"); >+ break; >+ >+ + case Node_XMLMODE: >+ + fprintf(prof_fp, "XMLMODE"); >+ + break; >+ + >+ case Node_LINT: >+ fprintf(prof_fp, "LINT"); >+ break; >+ *************** >+ *** 1294,1299 **** >+ --- 1302,1308 ---- >+ case Node_var_array: >+ case Node_val: >+ case Node_BINMODE: >+ + case Node_XMLMODE: >+ case Node_CONVFMT: >+ case Node_FIELDWIDTHS: >+ case Node_FNR: >+ *************** >+ *** 1330,1335 **** >+ --- 1339,1345 ---- >+ case Node_val: >+ case Node_builtin: >+ case Node_BINMODE: >+ + case Node_XMLMODE: >+ case Node_CONVFMT: >+ case Node_FIELDWIDTHS: >+ case Node_FNR: >+ >diff -rcN /usr/portage/sys-apps/gawk/gawk-3.1.3-r2.ebuild gawk/gawk-3.1.3-r2.ebuild >*** /usr/portage/sys-apps/gawk/gawk-3.1.3-r2.ebuild Wed Dec 31 21:00:00 1969 >--- gawk/gawk-3.1.3-r2.ebuild Wed Jul 21 11:31:15 2004 >*************** >*** 0 **** >--- 1,135 ---- >+ # Copyright 1999-2004 Gentoo Foundation >+ # Distributed under the terms of the GNU General Public License v2 >+ # $Header: /var/cvsroot/gentoo-x86/sys-apps/gawk/gawk-3.1.3-r1.ebuild,v 1.15 2004/07/17 01:08:18 mr_bones_ Exp $ >+ >+ inherit eutils gnuconfig >+ >+ DESCRIPTION="GNU awk pattern-matching language" >+ HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" >+ SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gawk/${P}.tar.gz" >+ >+ LICENSE="GPL-2" >+ SLOT="0" >+ KEYWORDS="x86 ppc sparc mips alpha arm hppa amd64 ia64 ppc64 s390" >+ IUSE="nls build uclibc" >+ >+ DEPEND="virtual/libc >+ nls? ( sys-devel/gettext )" >+ >+ src_unpack() { >+ unpack ${A} >+ >+ # Copy filefuncs module's source over ... >+ cp -dR "${FILESDIR}/filefuncs" "${WORKDIR}/" || die "cp failed" >+ >+ cd ${S} >+ # support for dec compiler. >+ [ "${CC}" == "ccc" ] && epatch "${FILESDIR}/${PN}-3.1.2-dec-alpha-compiler.diff" >+ epatch "${FILESDIR}/patch-xmlext-313" >+ epatch "${FILESDIR}/64bitnumfile.patch" >+ gnuconfig_update >+ } >+ >+ src_compile() { >+ local myconf= >+ use nls || myconf="${myconf} --disable-nls" >+ [ -z "${CBUILD}" ] || myconf="${myconf} --build=${CBUILD}" >+ >+ einfo "Building gawk ..." >+ ./configure --prefix=/usr \ >+ --libexecdir=/usr/lib/awk \ >+ --mandir=/usr/share/man \ >+ --infodir=/usr/share/info \ >+ --host=${CHOST} \ >+ ${myconf} \ >+ || die >+ >+ emake || die "emake failed" >+ >+ einfo "Building filefuncs module ..." >+ cd ${WORKDIR}/filefuncs >+ emake AWKINCDIR=${S} || die "filefuncs emake failed" >+ } >+ >+ src_install() { >+ local x= >+ >+ einfo "Installing gawk ..." >+ make prefix=${D}/usr \ >+ bindir=${D}/bin \ >+ mandir=${D}/usr/share/man \ >+ infodir=${D}/usr/share/info \ >+ libexecdir=${D}/usr/lib/awk \ >+ install || die "install failed" >+ >+ einfo "Installing filefuncs module ..." >+ cd ${WORKDIR}/filefuncs >+ make DESTDIR=${D} \ >+ AWKINCDIR=${S} \ >+ install || die "filefuncs install failed" >+ >+ dodir /usr/bin >+ # In some rare cases, (p)gawk gets installed as (p)gawk- and not >+ # (p)gawk-${PV} .. Also make sure that /bin/(p)gawk is a symlink >+ # to /bin/(p)gawk-${PV}. >+ for x in gawk pgawk igawk >+ do >+ local binpath="/bin" >+ >+ case ${x} in >+ igawk|pgawk) >+ binpath="/usr/bin" >+ ;; >+ esac >+ >+ if [ -f "${D}/bin/${x}" -a ! -f "${D}/bin/${x}-${PV}" ] >+ then >+ mv -f ${D}/bin/${x} ${D}/${binpath}/${x}-${PV} >+ elif [ -f "${D}/bin/${x}-" -a ! -f "${D}/bin/${x}-${PV}" ] >+ then >+ mv -f ${D}/bin/${x}- ${D}/${binpath}/${x}-${PV} >+ elif [ "${binpath}" = "/usr/bin" -a -f "${D}/bin/${x}-${PV}" ] >+ then >+ mv -f ${D}/bin/${x}-${PV} ${D}/${binpath}/${x}-${PV} >+ fi >+ >+ rm -f ${D}/bin/${x} >+ dosym ${x}-${PV} ${binpath}/${x} >+ [ "${binpath}" = "/usr/bin" ] && dosym ../usr/bin/${x}-${PV} /bin/${x} >+ done >+ >+ rm -f ${D}/bin/awk >+ dosym gawk-${PV} /bin/awk >+ # Compat symlinks >+ dodir /usr/bin >+ dosym ../../bin/gawk-${PV} /usr/bin/awk >+ dosym ../../bin/gawk-${PV} /usr/bin/gawk >+ >+ # Install headers >+ insinto /usr/include/awk >+ for x in ${S}/*.h >+ do >+ # We do not want 'acconfig.h' in there ... >+ if [ -f "${x}" -a "${x/acconfig\.h/}" = "${x}" ] >+ then >+ doins ${x} >+ fi >+ done >+ >+ if ! use build >+ then >+ cd ${S} >+ dosym gawk.1.gz /usr/share/man/man1/awk.1.gz >+ dodoc AUTHORS ChangeLog FUTURES LIMITATIONS NEWS PROBLEMS POSIX.STD README >+ docinto README_d >+ dodoc README_d/* >+ docinto awklib >+ dodoc awklib/ChangeLog >+ docinto pc >+ dodoc pc/ChangeLog >+ docinto posix >+ dodoc posix/ChangeLog >+ else >+ rm -rf ${D}/usr/share >+ fi >+ }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 57857
: 35884