On 13 Apr 2010, at 08:48, Hizel Ildar wrote:
> My patch:
>
> foo# diff -ruN dc.c.orig dc.c
> --- dc.c.orig 2010-04-13 10:33:22.000000000 +0400
> +++ dc.c 2010-04-13 11:44:18.000000000 +0400
> @@ -87,12 +87,16 @@
> while ((ch = getopt_long(argc, argv, "e:f:Vx", long_options, NULL)) !=
> -1) {
> switch (ch) {
> case 'e':
> + if(!preproc_done)
> + init_bmachine(extended_regs);
> src_setstring(&src, optarg);
> reset_bmachine(&src);
> eval();
> preproc_done = true;
> break;
> case 'f':
> + if(!preproc_done)
> + init_bmachine(extended_regs);
> procfile(optarg);
> preproc_done = true;
> break;
> @@ -114,7 +118,9 @@
> argc -= optind;
> argv += optind;
>
> - init_bmachine(extended_regs);
> + if (!preproc_done)
> + init_bmachine(extended_regs);
> +
> setlinebuf(stdout);
> setlinebuf(stderr);
>
>
> test:
>
> foo# dc -f /tmp/test
> 3
> foo# dc -e "6 2/p"
> 3
> foo# dc -e "6 2/p" -f /tmp/test
> 3
> 3
> foo# dc -e "6 2/p" -f /tmp/test /tmp/test
> 3
> 3
> 3
This looks sane to me.
Regards,
--
Rui Paulo
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"