diff -r 3024d1ef1140 src/cmd/seq.c
--- a/src/cmd/seq.c Wed Sep 30 11:01:45 2009 -0700
+++ b/src/cmd/seq.c Sat Feb 27 16:11:56 2010 -0800
@@ -47,6 +47,39 @@
format = fmt;
}
+extern int __ifmt(Fmt*); // _ifmt on Plan 9
+
+static int
+doifmt(Fmt *f, ...)
+{
+ int rv;
+ va_list argsav;
+
+ f->flags |= FmtVLong;
+ va_copy(argsav, f->args);
+ va_end(f->args);
+ va_start(f->args, f);
+ rv = __ifmt(f);
+ va_end(f->args);
+ va_copy(f->args, argsav);
+ va_end(argsav);
+ return rv;
+}
+
+static int
+ifmt(Fmt *f)
+{
+ int rv;
+ static int running;
+
+ if(running)
+ return __ifmt(f);
+ running = 1;
+ rv = doifmt(f, (vlong)va_arg(f->args, double));
+ running = 0;
+ return rv;
+}
+
void
main(int argc, char *argv[]){
int j, n;
@@ -79,7 +112,11 @@
fprint(2, "seq: zero increment\n");
exits("zero increment");
}
- if(!format)
+ if(format){
+ fmtinstall('d', ifmt);
+ fmtinstall('o', ifmt);
+ fmtinstall('x', ifmt);
+ }else
buildfmt();
if(incr > 0){
for(val = min; val <= max; val += incr){