On Fri, Sep 01, 2006 at 01:06:06PM -0700, Julian Elischer wrote: > Oliver Fromme wrote: > > >Julian Elischer wrote: > >> Oliver Fromme wrote: > >> > John Baldwin wrote: > >> > > Oliver Fromme wrote: > >> > > > There's another possibility, which doesn't require a new > >> > > > option letter at all. You could add a new escape sequence > >> > > > to the format string, e.g. "%*". Whenever date(1) is > >> > > > called with a format string containing that sequence, it > >> > > > goes into filter mode and replaces the sequence with the > >> > > > current line. That would also enable you to be more > >> > > > flexible with the placement of the timestamps. > >> > > > For example: > >> > > > > >> > > > $ printf 'foo\nbar\nbaz\n' | date +'%H:%M:%S %*' > >> > > > 16:39:58 foo > >> > > > 16:39:58 bar > >> > > > 16:39:58 baz > >> > > > >> > > I prefer this of all the suggestions so far. > >> > > >> > It's not very difficult, so I created a patch which does > >> > exactly that (includes an addition for the manpage, too). > >> > I've submitted it as bin/102609: > >> > > >> > http://www.freebsd.org/cgi/query-pr.cgi?pr=102609 > >> > >> A couple of comments: > >> > >> you don't need to run strftime for each line if the time hasn't changed. > >> (My original patch checks this) > > > >Good idea. I'll update the patch. > > > >> What is the effective maximum line length for a single fgetln? > > > >It's unlimited. fgetln() allocates sufficient amount of > >memory dynamically, that's why I used it instead of fgets(). > >It avoids reinventing the wheel. > > > > > > NOTHING is unlimitted. > what happens with a 3GB sequence of characters with no newlines? $ man fgetln [ ... ] The fgetln() function may also fail and set errno for any of the errors specified for the routines fflush(3), malloc(3), read(2), stat(2), or realloc(3). [...] Looking at realloc, it sounds like you'll either get a 3GB string or NULL and ENOMEM in errno. -- Ted Faber http://www.isi.edu/~faber PGP: http://www.isi.edu/~faber/pubkeys.asc Unexpected attachment on this mail? See http://www.isi.edu/~faber/FAQ.html#SIG
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:59 UTC