| verzia 1.3, 2002/02/12 00:34:24 |
verzia 1.4, 2002/06/24 18:18:08 |
|
|
| /* |
|
| * $Id$ |
|
| */ |
|
| #include <stdio.h> |
#include <stdio.h> |
| #include <errno.h> |
#include <errno.h> |
| #include <stdlib.h> |
#include <stdlib.h> |
| Riadok 32 char*strdel(char*s){ |
|
| Riadok 29 char*strdel(char*s){ |
|
| } |
} |
| #endif // #ifndef __strdel |
#endif // #ifndef __strdel |
| |
|
| char* discolor(char *s) { |
char *discolor(char *s) |
| |
{ |
| register int i = 0; |
register int i = 0; |
| |
|
| while (s[i] != '\0'){ |
while (s[i] != '\0'){ |
| Riadok 45 char* discolor(char *s) { |
|
| Riadok 43 char* discolor(char *s) { |
|
| else |
else |
| i++; |
i++; |
| } |
} |
| |
|
| return s; |
return s; |
| } |
} |
| |
|
| int discolor_data(char *s, int size) { |
int discolor_data(char *s, int size) |
| |
{ |
| register int i; |
register int i; |
| |
|
| for (i = 0; i < size + 1; ) { |
for (i = 0; i < size + 1; ) { |
| Riadok 62 int discolor_data(char *s, int size) { |
|
| Riadok 62 int discolor_data(char *s, int size) { |
|
| memmove(s + i, s + i + 1, size - i - 1); |
memmove(s + i, s + i + 1, size - i - 1); |
| size--; |
size--; |
| } |
} |
| */ |
*/ |
| register char*tmp_s; |
register char*tmp_s; |
| |
|
| tmp_s = memchr(s + i, 'm', size - i); |
tmp_s = memchr(s + i, 'm', size - i); |
| Riadok 72 int discolor_data(char *s, int size) { |
|
| Riadok 72 int discolor_data(char *s, int size) { |
|
| |
|
| size -= (tmp_s + 1) - (s + i); |
size -= (tmp_s + 1) - (s + i); |
| } |
} |
| else |
else { |
| i++; |
i++; |
| |
} |
| } |
} |
| else |
else { |
| i++; |
i++; |
| |
} |
| } |
} |
| |
|
| return size; |
return size; |
| Riadok 85 int discolor_data(char *s, int size) { |
|
| Riadok 87 int discolor_data(char *s, int size) { |
|
| #endif |
#endif |
| |
|
| |
|
| int main(int argc, char**argv) { |
int main(int argc, char**argv) |
| |
{ |
| fd_set rfds; |
fd_set rfds; |
| struct timeval tv; |
struct timeval tv; |
| |
char *buf = NULL; |
| register int retval, datasize, written, f_ending_eoln; |
register int retval, datasize, written, f_ending_eoln; |
| |
|
| register int timeout = 0, bufsize = 0; |
register int timeout = 0, bufsize = 0; |
| |
|
| char*buf = NULL; |
|
| |
|
| if (argc > 1) { |
if (argc > 1) { |
| register int cur = 1; |
register int cur = 1; |
| |
|
| Riadok 108 int main(int argc, char**argv) { |
|
| Riadok 109 int main(int argc, char**argv) { |
|
| "All rights reserved."); |
"All rights reserved."); |
| printf("\n\nUsage: tbuffer\n" |
printf("\n\nUsage: tbuffer\n" |
| " [ -h | --help ]\n" |
" [ -h | --help ]\n" |
| " [ -t | --timeout <msec> ]\n" |
" [ -t | --timeout <msec> ]\n" |
| " [ -b | --bufsize <bytes> ]\n"); |
" [ -b | --bufsize <bytes> ]\n"); |
| |
|
| return 1; |
return 1; |
| Riadok 145 int main(int argc, char**argv) { |
|
| Riadok 146 int main(int argc, char**argv) { |
|
| } |
} |
| } |
} |
| |
|
| if (bufsize > 1) |
if (bufsize > 1) |
| fprintf(stderr, "tbuffer: using choosen buffer size of %d bytes\n", |
fprintf(stderr, "tbuffer: using choosen buffer size of %d bytes\n", |
| bufsize); |
bufsize); |
| else { |
else { |
| Riadok 154 int main(int argc, char**argv) { |
|
| Riadok 155 int main(int argc, char**argv) { |
|
| bufsize); |
bufsize); |
| } |
} |
| |
|
| if (timeout != 0) |
if (timeout != 0) |
| fprintf(stderr, "tbuffer: using choosen timeout %d miliseconds\n", |
fprintf(stderr, "tbuffer: using choosen timeout %d miliseconds\n", |
| timeout); |
timeout); |
| else { |
else { |
| Riadok 187 int main(int argc, char**argv) { |
|
| Riadok 188 int main(int argc, char**argv) { |
|
| |
|
| switch (retval) { |
switch (retval) { |
| |
|
| /* Error. */ |
/* Error */ |
| case -1: |
case -1: |
| fprintf(stderr, "tbuffer: select() failure: %s\n", |
fprintf(stderr, "tbuffer: select() failure: %s\n", |
| strerror(errno)); |
strerror(errno)); |
| exit(1); |
exit(1); |
| break; |
break; |
| |
|
| /* Timeout expired. */ |
/* Timeout expired */ |
| case 0: |
case 0: |
| if (f_ending_eoln == 0) { |
if (f_ending_eoln == 0) { |
| f_ending_eoln = 1; |
f_ending_eoln = 1; |
| Riadok 202 int main(int argc, char**argv) { |
|
| Riadok 203 int main(int argc, char**argv) { |
|
| //switch (write(1, "<]\n[>", 5)) { |
//switch (write(1, "<]\n[>", 5)) { |
| switch (write(1, "\n", 1)) { |
switch (write(1, "\n", 1)) { |
| |
|
| /* Error. */ |
/* Error */ |
| case -1: |
case -1: |
| fprintf(stderr, |
fprintf(stderr, "tbuffer: write() failure: %s", |
| "tbuffer: write() failure: %s", |
|
| strerror(errno)); |
strerror(errno)); |
| exit(1); |
exit(1); |
| break; |
break; |
| |
|
| /* unknow situation */ |
/* unknow situation */ |
| case 0: |
case 0: |
| fprintf(stderr, |
fprintf(stderr, "tbuffer: write() = 0, " |
| "tbuffer: write() = 0, " |
|
| "all OK, terminating...\n"); |
"all OK, terminating...\n"); |
| exit(0); |
exit(0); |
| break; |
break; |
| Riadok 224 int main(int argc, char**argv) { |
|
| Riadok 223 int main(int argc, char**argv) { |
|
| } |
} |
| break; |
break; |
| |
|
| default: |
default: |
| /* This should be 1. |
/* This should be 1. |
| * It means number of changed descriptors in select(). |
* It means number of changed descriptors in select(). |
| */ |
*/ |
| |
|
| /* Read data to descriptor 0. */ |
/* Read data to descriptor 0. */ |
| /* ssize_t read(int fd, void *buf, size_t count); */ |
/* ssize_t read(int fd, void *buf, size_t count); */ |
| /* |
/* |
| * We must use bufsize - 1 cause we need last character |
* We must use bufsize - 1 cause we need last character |
| * to append '\0' and make normal NUL terminated string. |
* to append '\0' and make normal NUL terminated string. |
| */ |
*/ |
| datasize = read(0, buf, bufsize - 1); |
datasize = read(0, buf, bufsize - 1); |
| switch (datasize) { |
switch (datasize) { |
| |
|
| /* Error. */ |
/* Error */ |
| case -1: |
case -1: |
| fprintf(stderr, |
fprintf(stderr, "tbuffer: read() failure: %s\n", |
| "tbuffer: read() failure: %s\n", |
|
| strerror(errno)); |
strerror(errno)); |
| exit(1); |
exit(1); |
| break; |
break; |
| |
|
| /* unknown situation */ |
/* unknown situation */ |
| case 0: |
case 0: |
| fprintf(stderr, |
fprintf(stderr, "tbuffer: read() = 0, " |
| "tbuffer: read() = 0, " |
|
| "all OK, terminating...\n"); |
"all OK, terminating...\n"); |
| exit(0); |
exit(0); |
| break; |
break; |
| Riadok 266 int main(int argc, char**argv) { |
|
| Riadok 263 int main(int argc, char**argv) { |
|
| } |
} |
| #endif |
#endif |
| |
|
| /* Write data to descriptor 1. */ |
/* Write data to descriptor 1 */ |
| written = write(1, buf, datasize); |
written = write(1, buf, datasize); |
| |
|
| if (written != datasize) { |
if (written != datasize) { |
| Riadok 279 int main(int argc, char**argv) { |
|
| Riadok 276 int main(int argc, char**argv) { |
|
| |
|
| switch (written) { |
switch (written) { |
| |
|
| /* Error. */ |
/* Error */ |
| case -1: |
case -1: |
| fprintf(stderr, |
fprintf(stderr, |
| "tbuffer: write() failure : %s\n", |
"tbuffer: write() failure: %s\n", |
| strerror(errno)); |
strerror(errno)); |
| exit(1); |
exit(1); |
| break; |
break; |
| |
|
| /* unknown situation */ |
/* unknown situation */ |
| case 0: |
case 0: |
| fprintf(stderr, |
fprintf(stderr, "tbuffer: write() = 0, " |
| "tbuffer: write() = 0, " |
|
| "all OK, terminating...\n"); |
"all OK, terminating...\n"); |
| exit(0); |
exit(0); |
| break; |
break; |
| Riadok 334 int main(int argc, char**argv) { |
|
| Riadok 330 int main(int argc, char**argv) { |
|
| f_ending_eoln = 0; |
f_ending_eoln = 0; |
| } |
} |
| /* // Toto tu nechceme |
/* // Toto tu nechceme |
| else |
else |
| f_ending_eoln = 0; |
f_ending_eoln = 0; |
| */ |
*/ |
| #if DEBUG |
#if DEBUG |
| strcpy(tmpbuf, "\033[01;34mtbuffer-debug:" |
strcpy(tmpbuf, "\033[01;34mtbuffer-debug:" |
| "\033[0m [BEG]"); |
"\033[0m [BEG]"); |
| Riadok 355 int main(int argc, char**argv) { |
|
| Riadok 351 int main(int argc, char**argv) { |
|
| }; /* switch(write()) */ |
}; /* switch(write()) */ |
| |
|
| break; |
break; |
| }; /* switch(read()) */ |
}; /* switch(read()) */ |
| |
|
| break; |
break; |
| }; /* switch (select()) */ |
}; /* switch (select()) */ |
| |
} |
| |
|
| |
return 0; |
| } |
} |
| |
|
| return 0; |
|
| } |
|