On Fri, Jan 18, 2008 at 08:38:47PM -0800, Steven Bradshaw wrote:
>On Jan 18, 2008 12:41 AM, Bernhard Fischer <[EMAIL PROTECTED]> wrote:
>> On Wed, Jan 16, 2008 at 10:02:10PM -0800, Steve Bradshaw wrote:
>...
>> >
>> >diff -ur busybox-1.8.2.orig/miscutils/microcom.c
>> >busybox-1.8.2.new/miscutils/microcom.c
>> >--- busybox-1.8.2.orig/miscutils/microcom.c 2007-11-09
>> >17:40:53.000000000 -0800
>> >+++ busybox-1.8.2.new/miscutils/microcom.c 2008-01-16
>> >18:44:44.715294000 -0800
>> >@@ -9,19 +9,30 @@
>> > */
>> > #include "libbb.h"
>> >
>> >+static volatile int gotSig;
>>
>> Should this be in globals?
>
>I'm not sure what you mean. It's only used
>in this file. Are you suggesting it should be
>put in a lib func?
I ment struct globals, but this applet uses common_bufsiz, so no (IIRC),
disregard this.
>> > while (1) {
>> > int i;
>> > safe_poll(pfd, 2, -1);
>> > for (i = 0; i < 2; ++i) {
>> >+ if (gotSig)
>> >+ goto cleanup_and_exit;
>> > if (pfd[i].revents & POLLIN) {
>> >- len = read(pfd[i].fd, bb_common_bufsiz1,
>> >COMMON_BUFSIZE);
>> >- if (len > 0) {
>> >- if (!i && 24 == bb_common_bufsiz1[0])
>> >- goto done; // ^X exits
>> >- write(pfd[1-i].fd,
>> >bb_common_bufsiz1, len);
>> >+ char *buf = bb_common_bufsiz1;
>> >+ if ((len = read(pfd[i].fd, buf,
>> >COMMON_BUFSIZE)) <= 0)
>> >+ goto cleanup_and_exit;
>> >+ if (!i) { // Process stdin:
>> >+ again:
>> >+ if (24 == buf[0]) // ^X exits
>> >+ goto cleanup_and_exit;
>> >+ if (0 == buf[0]) { // ^@ sends Break
>> >+ tcsendbreak(outfd[i], 0);
>> >+ if (--len <= 0)
>> >+ continue;
>> >+ buf++;
>> >+ goto again; // next byte
>> >+ }
>> > }
>>
>> Can you reuse some libbb func for (parts of) the block above?
>
>I don't think so, but I'm not very familiar with what's available.
>Any idea's?
See include/libbb.h, there are several read/write helpers (and
combinations thereof)
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox