* [9fans] rc: token buffer too short @ 2007-12-01 17:43 Pietro Gagliardi 2007-12-01 19:09 ` Martin Neubauer 0 siblings, 1 reply; 6+ messages in thread From: Pietro Gagliardi @ 2007-12-01 17:43 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Run /n/sources/contrib/pietro/eg (a work-in-progress troff preprocessor for graphs of equations). You get the error described above on a line that contains simply "else". What happened? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [9fans] rc: token buffer too short 2007-12-01 17:43 [9fans] rc: token buffer too short Pietro Gagliardi @ 2007-12-01 19:09 ` Martin Neubauer 2007-12-11 13:32 ` roger peppe 0 siblings, 1 reply; 6+ messages in thread From: Martin Neubauer @ 2007-12-01 19:09 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Apparrently in quoted strings each character (rune, actually) constitutes one token. The lexical scanner only holds NTOK (==8192) tokens at a time and sam and wc convince me you have a 8555 byte string you pass to awk. You should probably put the awk stuff into a separate file eg.awk and just do `awk -f eg.awk $*' in eg (cf. chem(1) ). You might have to fiddle with where you put things, but that seems to be the easiest way out. Martin * Pietro Gagliardi (pietro10@mac.com) wrote: > Run /n/sources/contrib/pietro/eg (a work-in-progress troff > preprocessor for graphs of equations). You get the error described > above on a line that contains simply "else". What happened? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [9fans] rc: token buffer too short 2007-12-01 19:09 ` Martin Neubauer @ 2007-12-11 13:32 ` roger peppe 2007-12-11 19:46 ` Pietro Gagliardi 0 siblings, 1 reply; 6+ messages in thread From: roger peppe @ 2007-12-11 13:32 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs a reason to use here files? :-) On Dec 1, 2007 7:09 PM, Martin Neubauer <m.ne@gmx.net> wrote: > Apparrently in quoted strings each character (rune, actually) constitutes > one token. The lexical scanner only holds NTOK (==8192) tokens at a time and > sam and wc convince me you have a 8555 byte string you pass to awk. You > should probably put the awk stuff into a separate file eg.awk and just do > `awk -f eg.awk $*' in eg (cf. chem(1) ). You might have to fiddle with where > you put things, but that seems to be the easiest way out. > > Martin > > > * Pietro Gagliardi (pietro10@mac.com) wrote: > > Run /n/sources/contrib/pietro/eg (a work-in-progress troff > > preprocessor for graphs of equations). You get the error described > > above on a line that contains simply "else". What happened? > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [9fans] rc: token buffer too short 2007-12-11 13:32 ` roger peppe @ 2007-12-11 19:46 ` Pietro Gagliardi 2007-12-12 10:14 ` Douglas A. Gwyn 2007-12-12 11:04 ` roger peppe 0 siblings, 2 replies; 6+ messages in thread From: Pietro Gagliardi @ 2007-12-11 19:46 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Not in this case, no. The format of awk is awk 'program' files awk -f prgm files What I could do instead is u=/tmp/$0$pid$apid$0 cat > $u <<\END program END awk -f $u $* rm $u but I'd rather not go that way to avoid possible collisions. Here's another problem. The error check function cats to [1=2]. However, instead of going to standard output, it makes a file [1=2] and writes the message there. How do I fix this? On Dec 11, 2007, at 8:32 AM, roger peppe wrote: > a reason to use here files? :-) > > On Dec 1, 2007 7:09 PM, Martin Neubauer <m.ne@gmx.net> wrote: >> Apparrently in quoted strings each character (rune, actually) >> constitutes >> one token. The lexical scanner only holds NTOK (==8192) tokens at >> a time and >> sam and wc convince me you have a 8555 byte string you pass to >> awk. You >> should probably put the awk stuff into a separate file eg.awk and >> just do >> `awk -f eg.awk $*' in eg (cf. chem(1) ). You might have to fiddle >> with where >> you put things, but that seems to be the easiest way out. >> >> Martin >> >> >> * Pietro Gagliardi (pietro10@mac.com) wrote: >>> Run /n/sources/contrib/pietro/eg (a work-in-progress troff >>> preprocessor for graphs of equations). You get the error described >>> above on a line that contains simply "else". What happened? >> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [9fans] rc: token buffer too short 2007-12-11 19:46 ` Pietro Gagliardi @ 2007-12-12 10:14 ` Douglas A. Gwyn 2007-12-12 11:04 ` roger peppe 1 sibling, 0 replies; 6+ messages in thread From: Douglas A. Gwyn @ 2007-12-12 10:14 UTC (permalink / raw) To: 9fans Pietro Gagliardi wrote: > What I could do instead is > u=/tmp/$0$pid$apid$0 > ... > but I'd rather not go that way to avoid possible collisions. Seems that there could be a filesystem that hands out unique names. Another similar approach would be for the open of a new special file to create a unique temp file, which would vanish upon final close, and have the app share/clone the file descriptor, which could be dup2()ed (or whatever Plan9 equivalent is) to stdout, stdin, etc., for the various processes in your script. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [9fans] rc: token buffer too short 2007-12-11 19:46 ` Pietro Gagliardi 2007-12-12 10:14 ` Douglas A. Gwyn @ 2007-12-12 11:04 ` roger peppe 1 sibling, 0 replies; 6+ messages in thread From: roger peppe @ 2007-12-12 11:04 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On Dec 11, 2007 7:46 PM, Pietro Gagliardi <pietro10@mac.com> wrote: > Not in this case, no. The format of awk is > > awk 'program' files > awk -f prgm files > > What I could do instead is > > u=/tmp/$0$pid$apid$0 > cat > $u <<\END > program > END > awk -f $u $* > rm $u > > but I'd rather not go that way to avoid possible collisions. actually, you could use a here file and a named pipe: awk -f <{cat << 'EOF'} $* program EOF i do think that a quoted argument should be able to take an arbitrary amount of text though. > Here's another problem. The error check function cats to [1=2]. > However, instead of going to standard output, it makes a file [1=2] > and writes the message there. How do I fix this? awk uses ape/sh to run its commands, so you can fix it by using >&2 as under unix. On Dec 12, 2007 10:14 AM, Douglas A. Gwyn <DAGwyn@null.net> wrote: > Another similar approach would be for the open of a new special > file to create a unique temp file, which would vanish upon final > close, and have the app share/clone the file descriptor, which > could be dup2()ed (or whatever Plan9 equivalent is) to stdout, > stdin, etc., for the various processes in your script. that's similar to the named-pipe approach, except that you can't seek on named pipes. i often find myself mounting a new instance of ramfs, thus getting rid of the problem in most cases (the exception being if you don't want to fork the namespace). ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-12-12 11:04 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-12-01 17:43 [9fans] rc: token buffer too short Pietro Gagliardi 2007-12-01 19:09 ` Martin Neubauer 2007-12-11 13:32 ` roger peppe 2007-12-11 19:46 ` Pietro Gagliardi 2007-12-12 10:14 ` Douglas A. Gwyn 2007-12-12 11:04 ` roger peppe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).