On Friday 06 July 2007 12:45, Miroslaw Dach wrote:
> Hi All,
>
> My observation is that the symptom I described before happens let
> say once per 200 times.
>
> Maybe it is somehow related to the terminal under windows which I
> currently use.
I tend to agree with Paul Fox <[EMAIL PROTECTED]>, who pointed out
that you may have several processes reading your input, and somtimes
that "other process" eats the line, not ash.
> > Can you add debugging outputs in ash.c in cmdloop function, like
> > bb_error_msg("I am before parsecmd()"); bb_error_msg("I am after
> > parsecmd()");
> > bb_error_msg("I am before evaltree()"); etc, and get more info about
> > this weird behavior?
Idf you will do what I described above, you can prove (or disprove)
Paul's idea (if you type a commnd and dont see "I am after parsecmd()"
appearing, your input definitely did not reach ash.)
> > static int
> > cmdloop(int top)
> > {
> > union node *n;
> > struct stackmark smark;
> > int inter;
> > int numeof = 0;
> >
> > TRACE(("cmdloop(%d) called\n", top));
> > for (;;) {
> > int skip;
> >
> > setstackmark(&smark);
> > #if JOBS
> > if (jobctl)
> > showjobs(stderr, SHOW_CHANGED);
> > #endif
> > inter = 0;
> > if (iflag && top) {
> > inter++;
> > #if ENABLE_ASH_MAIL
> > chkmail();
> > #endif
> > }
> > n = parsecmd(inter);
> > /* showtree(n); DEBUG */
> > if (n == NEOF) {
> > if (!top || numeof >= 50)
> > break;
> > if (!stoppedjobs()) {
> > if (!Iflag)
> > break;
> > out2str("\nUse \"exit\" to leave shell.\n");
> > }
> > numeof++;
> > } else if (nflag == 0) {
> > job_warning = (job_warning == 2) ? 1 : 0;
> > numeof = 0;
> > evaltree(n, 0);
> > }
> > popstackmark(&smark);
> > skip = evalskip;
> >
> > if (skip) {
> > evalskip = 0;
> > return skip & SKIPEVAL;
> > }
> > }
> > return 0;
> > }
> >
--
vda
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox