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 + 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 -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 + #endif + + + #include + + + /* ----------------- 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 **** + } + + + - + /* = */ + 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 + }