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

Reply via email to