run through indent
This commit is contained in:
		@@ -65,51 +65,51 @@
 | 
				
			|||||||
   This function have special algorithm.
 | 
					   This function have special algorithm.
 | 
				
			||||||
   Don`t use fork and include to main!
 | 
					   Don`t use fork and include to main!
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
static int
 | 
					static int xargs_exec(char *const *args)
 | 
				
			||||||
xargs_exec (char *const *args)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	pid_t p;
 | 
						pid_t p;
 | 
				
			||||||
	volatile int exec_errno = 0;	/* shared vfork stack */
 | 
						volatile int exec_errno = 0;	/* shared vfork stack */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ((p = vfork ()) >= 0) {
 | 
						if ((p = vfork()) >= 0) {
 | 
				
			||||||
		if (p == 0) {
 | 
							if (p == 0) {
 | 
				
			||||||
			/* vfork -- child */
 | 
								/* vfork -- child */
 | 
				
			||||||
	  execvp (args[0], args);
 | 
								execvp(args[0], args);
 | 
				
			||||||
			exec_errno = errno;	/* set error to shared stack */
 | 
								exec_errno = errno;	/* set error to shared stack */
 | 
				
			||||||
	  _exit (1);
 | 
								_exit(1);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			/* vfork -- parent */
 | 
								/* vfork -- parent */
 | 
				
			||||||
			int status;
 | 
								int status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  while (wait (&status) == (pid_t) - 1)
 | 
								while (wait(&status) == (pid_t) - 1)
 | 
				
			||||||
				if (errno != EINTR)
 | 
									if (errno != EINTR)
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
			if (exec_errno) {
 | 
								if (exec_errno) {
 | 
				
			||||||
				errno = exec_errno;
 | 
									errno = exec_errno;
 | 
				
			||||||
		bb_perror_msg ("%s", args[0]);
 | 
									bb_perror_msg("%s", args[0]);
 | 
				
			||||||
				return exec_errno == ENOENT ? 127 : 126;
 | 
									return exec_errno == ENOENT ? 127 : 126;
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
		if (WEXITSTATUS (status) == 255) {
 | 
									if (WEXITSTATUS(status) == 255) {
 | 
				
			||||||
		  bb_error_msg ("%s: exited with status 255; aborting", args[0]);
 | 
										bb_error_msg("%s: exited with status 255; aborting",
 | 
				
			||||||
 | 
													 args[0]);
 | 
				
			||||||
					return 124;
 | 
										return 124;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
		if (WIFSTOPPED (status)) {
 | 
									if (WIFSTOPPED(status)) {
 | 
				
			||||||
		  bb_error_msg ("%s: stopped by signal %d", args[0],
 | 
										bb_error_msg("%s: stopped by signal %d", args[0],
 | 
				
			||||||
						WSTOPSIG (status));
 | 
													 WSTOPSIG(status));
 | 
				
			||||||
					return 125;
 | 
										return 125;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
		if (WIFSIGNALED (status)) {
 | 
									if (WIFSIGNALED(status)) {
 | 
				
			||||||
		  bb_error_msg ("%s: terminated by signal %d", args[0],
 | 
										bb_error_msg("%s: terminated by signal %d", args[0],
 | 
				
			||||||
						WTERMSIG (status));
 | 
													 WTERMSIG(status));
 | 
				
			||||||
					return 125;
 | 
										return 125;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
		if (WEXITSTATUS (status) != 0)
 | 
									if (WEXITSTATUS(status) != 0)
 | 
				
			||||||
					return 123;
 | 
										return 123;
 | 
				
			||||||
				return 0;
 | 
									return 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
	bb_perror_msg_and_die ("vfork");
 | 
							bb_perror_msg_and_die("vfork");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -127,8 +127,8 @@ static int eof_stdin_detected;
 | 
				
			|||||||
		    || (c) == '\f' || (c) == '\v')
 | 
							    || (c) == '\f' || (c) == '\v')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_QUOTES
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_QUOTES
 | 
				
			||||||
static xlist_t *
 | 
					static xlist_t *process_stdin(xlist_t * list_arg, const char *eof_str,
 | 
				
			||||||
process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
												  size_t mc, char *buf)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#define NORM      0
 | 
					#define NORM      0
 | 
				
			||||||
#define QUOTE     1
 | 
					#define QUOTE     1
 | 
				
			||||||
@@ -145,21 +145,21 @@ process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
	xlist_t *cur;
 | 
						xlist_t *cur;
 | 
				
			||||||
	xlist_t *prev;
 | 
						xlist_t *prev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for(prev = cur = list_arg; cur; cur = cur->link) {
 | 
						for (prev = cur = list_arg; cur; cur = cur->link) {
 | 
				
			||||||
		line_l += cur->lenght;	/* previous allocated */
 | 
							line_l += cur->lenght;	/* previous allocated */
 | 
				
			||||||
    if(prev != cur)
 | 
							if (prev != cur)
 | 
				
			||||||
			prev = prev->link;
 | 
								prev = prev->link;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  while(!eof_stdin_detected) {
 | 
						while (!eof_stdin_detected) {
 | 
				
			||||||
		c = getchar();
 | 
							c = getchar();
 | 
				
			||||||
	if(c == EOF) {
 | 
							if (c == EOF) {
 | 
				
			||||||
			eof_stdin_detected++;
 | 
								eof_stdin_detected++;
 | 
				
			||||||
	    if(s)
 | 
								if (s)
 | 
				
			||||||
				goto unexpected_eof;
 | 
									goto unexpected_eof;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	if(eof_str_detected)
 | 
							if (eof_str_detected)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		if (state == BACKSLASH) {
 | 
							if (state == BACKSLASH) {
 | 
				
			||||||
			state = NORM;
 | 
								state = NORM;
 | 
				
			||||||
@@ -171,10 +171,11 @@ process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				goto set;
 | 
									goto set;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
	} else /* if(state == NORM) */ {
 | 
							} else {		/* if(state == NORM) */
 | 
				
			||||||
	    if (ISSPACE (c)) {
 | 
					
 | 
				
			||||||
 | 
								if (ISSPACE(c)) {
 | 
				
			||||||
				if (s) {
 | 
									if (s) {
 | 
				
			||||||
unexpected_eof:
 | 
									  unexpected_eof:
 | 
				
			||||||
					state = SPACE;
 | 
										state = SPACE;
 | 
				
			||||||
					c = 0;
 | 
										c = 0;
 | 
				
			||||||
					goto set;
 | 
										goto set;
 | 
				
			||||||
@@ -188,36 +189,36 @@ unexpected_eof:
 | 
				
			|||||||
					q = c;
 | 
										q = c;
 | 
				
			||||||
					state = QUOTE;
 | 
										state = QUOTE;
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
set:
 | 
									  set:
 | 
				
			||||||
		    if( (p-buf) >= mc)
 | 
										if ((p - buf) >= mc)
 | 
				
			||||||
			    bb_error_msg_and_die ("argument line too long");
 | 
											bb_error_msg_and_die("argument line too long");
 | 
				
			||||||
					*p++ = c;
 | 
										*p++ = c;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (state == SPACE) {	/* word's delimiter or EOF detected */
 | 
							if (state == SPACE) {	/* word's delimiter or EOF detected */
 | 
				
			||||||
			if (q)
 | 
								if (q)
 | 
				
			||||||
	    bb_error_msg_and_die ("unmatched %s quote",
 | 
									bb_error_msg_and_die("unmatched %s quote",
 | 
				
			||||||
									 q == '\'' ? "single" : "double");
 | 
														 q == '\'' ? "single" : "double");
 | 
				
			||||||
			/* word loaded */
 | 
								/* word loaded */
 | 
				
			||||||
	  if(eof_str) {
 | 
								if (eof_str) {
 | 
				
			||||||
				eof_str_detected = strcmp(s, eof_str) == 0;
 | 
									eof_str_detected = strcmp(s, eof_str) == 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
	  if(!eof_str_detected) {
 | 
								if (!eof_str_detected) {
 | 
				
			||||||
	    size_t lenght = (p-buf);
 | 
									size_t lenght = (p - buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
									cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
				
			||||||
				cur->data = memcpy(cur + 1, s, lenght);
 | 
									cur->data = memcpy(cur + 1, s, lenght);
 | 
				
			||||||
				cur->lenght = lenght;
 | 
									cur->lenght = lenght;
 | 
				
			||||||
				cur->link = NULL;
 | 
									cur->link = NULL;
 | 
				
			||||||
	    if(prev == NULL) {
 | 
									if (prev == NULL) {
 | 
				
			||||||
					list_arg = cur;
 | 
										list_arg = cur;
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					prev->link = cur;
 | 
										prev->link = cur;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				prev = cur;
 | 
									prev = cur;
 | 
				
			||||||
				line_l += lenght;
 | 
									line_l += lenght;
 | 
				
			||||||
	    if(line_l > mc) {
 | 
									if (line_l > mc) {
 | 
				
			||||||
					/* stop memory usage :-) */
 | 
										/* stop memory usage :-) */
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
@@ -230,8 +231,8 @@ set:
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
/* The variant is unsupport single, double quotes and backslash */
 | 
					/* The variant is unsupport single, double quotes and backslash */
 | 
				
			||||||
static xlist_t *
 | 
					static xlist_t *process_stdin(xlist_t * list_arg, const char *eof_str,
 | 
				
			||||||
process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
												  size_t mc, char *buf)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int c;				/* current char */
 | 
						int c;				/* current char */
 | 
				
			||||||
@@ -242,49 +243,49 @@ process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
	xlist_t *cur;
 | 
						xlist_t *cur;
 | 
				
			||||||
	xlist_t *prev;
 | 
						xlist_t *prev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for(prev = cur = list_arg; cur; cur = cur->link) {
 | 
						for (prev = cur = list_arg; cur; cur = cur->link) {
 | 
				
			||||||
		line_l += cur->lenght;	/* previous allocated */
 | 
							line_l += cur->lenght;	/* previous allocated */
 | 
				
			||||||
    if(prev != cur)
 | 
							if (prev != cur)
 | 
				
			||||||
			prev = prev->link;
 | 
								prev = prev->link;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  while(!eof_stdin_detected) {
 | 
						while (!eof_stdin_detected) {
 | 
				
			||||||
		c = getchar();
 | 
							c = getchar();
 | 
				
			||||||
	if(c == EOF) {
 | 
							if (c == EOF) {
 | 
				
			||||||
			eof_stdin_detected++;
 | 
								eof_stdin_detected++;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	if(eof_str_detected)
 | 
							if (eof_str_detected)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
	if (c == EOF || ISSPACE (c)) {
 | 
							if (c == EOF || ISSPACE(c)) {
 | 
				
			||||||
	    if(s == NULL)
 | 
								if (s == NULL)
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			c = EOF;
 | 
								c = EOF;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (s == NULL)
 | 
							if (s == NULL)
 | 
				
			||||||
			s = p = buf;
 | 
								s = p = buf;
 | 
				
			||||||
	if( (p-buf) >= mc)
 | 
							if ((p - buf) >= mc)
 | 
				
			||||||
	    bb_error_msg_and_die ("argument line too long");
 | 
								bb_error_msg_and_die("argument line too long");
 | 
				
			||||||
		*p++ = c == EOF ? 0 : c;
 | 
							*p++ = c == EOF ? 0 : c;
 | 
				
			||||||
		if (c == EOF) {	/* word's delimiter or EOF detected */
 | 
							if (c == EOF) {	/* word's delimiter or EOF detected */
 | 
				
			||||||
			/* word loaded */
 | 
								/* word loaded */
 | 
				
			||||||
	    if(eof_str) {
 | 
								if (eof_str) {
 | 
				
			||||||
				eof_str_detected = strcmp(s, eof_str) == 0;
 | 
									eof_str_detected = strcmp(s, eof_str) == 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
	    if(!eof_str_detected) {
 | 
								if (!eof_str_detected) {
 | 
				
			||||||
		size_t lenght = (p-buf);
 | 
									size_t lenght = (p - buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
									cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
				
			||||||
				cur->data = memcpy(cur + 1, s, lenght);
 | 
									cur->data = memcpy(cur + 1, s, lenght);
 | 
				
			||||||
				cur->lenght = lenght;
 | 
									cur->lenght = lenght;
 | 
				
			||||||
				cur->link = NULL;
 | 
									cur->link = NULL;
 | 
				
			||||||
		if(prev == NULL) {
 | 
									if (prev == NULL) {
 | 
				
			||||||
					list_arg = cur;
 | 
										list_arg = cur;
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					prev->link = cur;
 | 
										prev->link = cur;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				prev = cur;
 | 
									prev = cur;
 | 
				
			||||||
				line_l += lenght;
 | 
									line_l += lenght;
 | 
				
			||||||
		if(line_l > mc) {
 | 
									if (line_l > mc) {
 | 
				
			||||||
					/* stop memory usage :-) */
 | 
										/* stop memory usage :-) */
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
@@ -301,28 +302,28 @@ process_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
/* Prompt the user for a response, and
 | 
					/* Prompt the user for a response, and
 | 
				
			||||||
   if the user responds affirmatively, return true;
 | 
					   if the user responds affirmatively, return true;
 | 
				
			||||||
   otherwise, return false. Used "/dev/tty", not stdin. */
 | 
					   otherwise, return false. Used "/dev/tty", not stdin. */
 | 
				
			||||||
static int
 | 
					static int xargs_ask_confirmation(void)
 | 
				
			||||||
xargs_ask_confirmation (void)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static FILE *tty_stream;
 | 
						static FILE *tty_stream;
 | 
				
			||||||
	int c, savec;
 | 
						int c, savec;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!tty_stream) {
 | 
						if (!tty_stream) {
 | 
				
			||||||
      tty_stream = fopen ("/dev/tty", "r");
 | 
							tty_stream = fopen("/dev/tty", "r");
 | 
				
			||||||
		if (!tty_stream)
 | 
							if (!tty_stream)
 | 
				
			||||||
	bb_perror_msg_and_die ("/dev/tty");
 | 
								bb_perror_msg_and_die("/dev/tty");
 | 
				
			||||||
		/* pranoidal security by vodz */
 | 
							/* pranoidal security by vodz */
 | 
				
			||||||
		fcntl(fileno(tty_stream), F_SETFD, FD_CLOEXEC);
 | 
							fcntl(fileno(tty_stream), F_SETFD, FD_CLOEXEC);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
  fputs (" ?...", stderr);
 | 
						fputs(" ?...", stderr);
 | 
				
			||||||
  fflush (stderr);
 | 
						fflush(stderr);
 | 
				
			||||||
  c = savec = getc (tty_stream);
 | 
						c = savec = getc(tty_stream);
 | 
				
			||||||
	while (c != EOF && c != '\n')
 | 
						while (c != EOF && c != '\n')
 | 
				
			||||||
    c = getc (tty_stream);
 | 
							c = getc(tty_stream);
 | 
				
			||||||
	if (savec == 'y' || savec == 'Y')
 | 
						if (savec == 'y' || savec == 'Y')
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# define OPT_INC_P 1
 | 
					# define OPT_INC_P 1
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
# define OPT_INC_P 0
 | 
					# define OPT_INC_P 0
 | 
				
			||||||
@@ -336,8 +337,8 @@ xargs_ask_confirmation (void)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
				
			||||||
static xlist_t *
 | 
					static xlist_t *process0_stdin(xlist_t * list_arg, const char *eof_str,
 | 
				
			||||||
process0_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
												   size_t mc, char *buf)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int c;				/* current char */
 | 
						int c;				/* current char */
 | 
				
			||||||
	char *s = NULL;		/* start word */
 | 
						char *s = NULL;		/* start word */
 | 
				
			||||||
@@ -346,41 +347,41 @@ process0_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
	xlist_t *cur;
 | 
						xlist_t *cur;
 | 
				
			||||||
	xlist_t *prev;
 | 
						xlist_t *prev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for(prev = cur = list_arg; cur; cur = cur->link) {
 | 
						for (prev = cur = list_arg; cur; cur = cur->link) {
 | 
				
			||||||
		line_l += cur->lenght;	/* previous allocated */
 | 
							line_l += cur->lenght;	/* previous allocated */
 | 
				
			||||||
    if(prev != cur)
 | 
							if (prev != cur)
 | 
				
			||||||
			prev = prev->link;
 | 
								prev = prev->link;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  while(!eof_stdin_detected) {
 | 
						while (!eof_stdin_detected) {
 | 
				
			||||||
		c = getchar();
 | 
							c = getchar();
 | 
				
			||||||
	if(c == EOF) {
 | 
							if (c == EOF) {
 | 
				
			||||||
			eof_stdin_detected++;
 | 
								eof_stdin_detected++;
 | 
				
			||||||
	    if(s == NULL)
 | 
								if (s == NULL)
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			c = 0;
 | 
								c = 0;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (s == NULL)
 | 
							if (s == NULL)
 | 
				
			||||||
			s = p = buf;
 | 
								s = p = buf;
 | 
				
			||||||
	if( (p-buf) >= mc)
 | 
							if ((p - buf) >= mc)
 | 
				
			||||||
	    bb_error_msg_and_die ("argument line too long");
 | 
								bb_error_msg_and_die("argument line too long");
 | 
				
			||||||
		*p++ = c;
 | 
							*p++ = c;
 | 
				
			||||||
		if (c == 0) {	/* word's delimiter or EOF detected */
 | 
							if (c == 0) {	/* word's delimiter or EOF detected */
 | 
				
			||||||
			/* word loaded */
 | 
								/* word loaded */
 | 
				
			||||||
		size_t lenght = (p-buf);
 | 
								size_t lenght = (p - buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
								cur = xmalloc(sizeof(xlist_t) + lenght);
 | 
				
			||||||
			cur->data = memcpy(cur + 1, s, lenght);
 | 
								cur->data = memcpy(cur + 1, s, lenght);
 | 
				
			||||||
			cur->lenght = lenght;
 | 
								cur->lenght = lenght;
 | 
				
			||||||
			cur->link = NULL;
 | 
								cur->link = NULL;
 | 
				
			||||||
		if(prev == NULL) {
 | 
								if (prev == NULL) {
 | 
				
			||||||
				list_arg = cur;
 | 
									list_arg = cur;
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				prev->link = cur;
 | 
									prev->link = cur;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			prev = cur;
 | 
								prev = cur;
 | 
				
			||||||
			line_l += lenght;
 | 
								line_l += lenght;
 | 
				
			||||||
		if(line_l > mc) {
 | 
								if (line_l > mc) {
 | 
				
			||||||
				/* stop memory usage :-) */
 | 
									/* stop memory usage :-) */
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -389,6 +390,7 @@ process0_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return list_arg;
 | 
						return list_arg;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# define READ_ARGS(l, e, nmc, mc) (*read_args)(l, e, nmc, mc)
 | 
					# define READ_ARGS(l, e, nmc, mc) (*read_args)(l, e, nmc, mc)
 | 
				
			||||||
# define OPT_INC_0 1	/* future use */
 | 
					# define OPT_INC_0 1	/* future use */
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@@ -413,8 +415,7 @@ process0_stdin (xlist_t *list_arg, const char *eof_str, size_t mc, char *buf)
 | 
				
			|||||||
#define OPT_NEXT_OTHER  (1<<(5+OPT_INC_P+OPT_INC_X+OPT_INC_0))
 | 
					#define OPT_NEXT_OTHER  (1<<(5+OPT_INC_P+OPT_INC_X+OPT_INC_0))
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int xargs_main(int argc, char **argv)
 | 
				
			||||||
xargs_main (int argc, char **argv)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char **args;
 | 
						char **args;
 | 
				
			||||||
	int i, a, n;
 | 
						int i, a, n;
 | 
				
			||||||
@@ -428,15 +429,17 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
	const char *eof_str = "_";
 | 
						const char *eof_str = "_";
 | 
				
			||||||
	unsigned long opt;
 | 
						unsigned long opt;
 | 
				
			||||||
	size_t n_max_chars;
 | 
						size_t n_max_chars;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
				
			||||||
  xlist_t * (*read_args) (xlist_t *, const char *, size_t, char *) = process_stdin;
 | 
						xlist_t *(*read_args) (xlist_t *, const char *, size_t, char *) =
 | 
				
			||||||
 | 
							process_stdin;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
 | 
				
			||||||
	bb_opt_complementaly = "pt";
 | 
						bb_opt_complementaly = "pt";
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  opt = bb_getopt_ulflags (argc, argv, "+trn:s:e::"
 | 
						opt = bb_getopt_ulflags(argc, argv, "+trn:s:e::"
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
 | 
				
			||||||
							"p"
 | 
												"p"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -461,9 +464,9 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
		orig_arg_max = LONG_MAX;
 | 
							orig_arg_max = LONG_MAX;
 | 
				
			||||||
	orig_arg_max -= 2048;	/* POSIX.2 requires subtracting 2048.  */
 | 
						orig_arg_max -= 2048;	/* POSIX.2 requires subtracting 2048.  */
 | 
				
			||||||
	if ((opt & OPT_UPTO_SIZE)) {
 | 
						if ((opt & OPT_UPTO_SIZE)) {
 | 
				
			||||||
	n_max_chars = bb_xgetularg10_bnd (max_chars, 1, orig_arg_max);
 | 
							n_max_chars = bb_xgetularg10_bnd(max_chars, 1, orig_arg_max);
 | 
				
			||||||
		for (i = 0; i < a; i++) {
 | 
							for (i = 0; i < a; i++) {
 | 
				
			||||||
	  n_chars += strlen (*argv) + 1;
 | 
								n_chars += strlen(*argv) + 1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (n_max_chars < n_chars) {
 | 
							if (n_max_chars < n_chars) {
 | 
				
			||||||
			bb_error_msg_and_die
 | 
								bb_error_msg_and_die
 | 
				
			||||||
@@ -482,13 +485,13 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
	max_chars = xmalloc(n_max_chars);
 | 
						max_chars = xmalloc(n_max_chars);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((opt & OPT_UPTO_NUMBER)) {
 | 
						if ((opt & OPT_UPTO_NUMBER)) {
 | 
				
			||||||
	n_max_arg = bb_xgetularg10_bnd (max_args, 1, INT_MAX);
 | 
							n_max_arg = bb_xgetularg10_bnd(max_args, 1, INT_MAX);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		n_max_arg = n_max_chars;
 | 
							n_max_arg = n_max_chars;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 | 
				
			||||||
  if(opt & OPT_ZEROTERM)
 | 
						if (opt & OPT_ZEROTERM)
 | 
				
			||||||
		read_args = process0_stdin;
 | 
							read_args = process0_stdin;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -498,13 +501,13 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
		n = 0;
 | 
							n = 0;
 | 
				
			||||||
		n_chars = 0;
 | 
							n_chars = 0;
 | 
				
			||||||
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
 | 
					#ifdef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
 | 
				
			||||||
	for (cur = list; cur; ) {
 | 
							for (cur = list; cur;) {
 | 
				
			||||||
			n_chars += cur->lenght;
 | 
								n_chars += cur->lenght;
 | 
				
			||||||
			n++;
 | 
								n++;
 | 
				
			||||||
			cur = cur->link;
 | 
								cur = cur->link;
 | 
				
			||||||
			if (n_chars > n_max_chars || (n == n_max_arg && cur)) {
 | 
								if (n_chars > n_max_chars || (n == n_max_arg && cur)) {
 | 
				
			||||||
				if (opt & OPT_TERMINATE)
 | 
									if (opt & OPT_TERMINATE)
 | 
				
			||||||
		      bb_error_msg_and_die ("argument list too long");
 | 
										bb_error_msg_and_die("argument list too long");
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -520,7 +523,7 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		/* allocating pointers for execvp:
 | 
							/* allocating pointers for execvp:
 | 
				
			||||||
		   a*arg, n*arg from stdin, NULL */
 | 
							   a*arg, n*arg from stdin, NULL */
 | 
				
			||||||
	args = xcalloc (n + a + 1, sizeof (char *));
 | 
							args = xcalloc(n + a + 1, sizeof(char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Store the command to be executed
 | 
							/* Store the command to be executed
 | 
				
			||||||
		   (taken from the command line) */
 | 
							   (taken from the command line) */
 | 
				
			||||||
@@ -532,26 +535,26 @@ xargs_main (int argc, char **argv)
 | 
				
			|||||||
			n--;
 | 
								n--;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((opt & (OPT_INTERACTIVE|OPT_VERBOSE))) {
 | 
							if ((opt & (OPT_INTERACTIVE | OPT_VERBOSE))) {
 | 
				
			||||||
			for (i = 0; args[i]; i++) {
 | 
								for (i = 0; args[i]; i++) {
 | 
				
			||||||
				if (i)
 | 
									if (i)
 | 
				
			||||||
			fputc (' ', stderr);
 | 
										fputc(' ', stderr);
 | 
				
			||||||
		  fputs (args[i], stderr);
 | 
									fputs(args[i], stderr);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		if((opt & OPT_INTERACTIVE) == 0)
 | 
								if ((opt & OPT_INTERACTIVE) == 0)
 | 
				
			||||||
		    fputc ('\n', stderr);
 | 
									fputc('\n', stderr);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	if ((opt & OPT_INTERACTIVE) == 0 || xargs_ask_confirmation () != 0) {
 | 
							if ((opt & OPT_INTERACTIVE) == 0 || xargs_ask_confirmation() != 0) {
 | 
				
			||||||
		child_error = xargs_exec (args);
 | 
								child_error = xargs_exec(args);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* clean up */
 | 
							/* clean up */
 | 
				
			||||||
		for (i = a; args[i]; i++) {
 | 
							for (i = a; args[i]; i++) {
 | 
				
			||||||
			cur = list;
 | 
								cur = list;
 | 
				
			||||||
			list = list->link;
 | 
								list = list->link;
 | 
				
			||||||
		free (cur);
 | 
								free(cur);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	free (args);
 | 
							free(args);
 | 
				
			||||||
		if (child_error > 0 && child_error != 123) {
 | 
							if (child_error > 0 && child_error != 123) {
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -569,7 +572,9 @@ const char *bb_applet_name = "debug stuff usage";
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void bb_show_usage(void)
 | 
					void bb_show_usage(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  fprintf(stderr, "Usage: %s [-p] [-r] [-t] -[x] [-n max_arg] [-s max_chars]\n", bb_applet_name);
 | 
						fprintf(stderr,
 | 
				
			||||||
 | 
								"Usage: %s [-p] [-r] [-t] -[x] [-n max_arg] [-s max_chars]\n",
 | 
				
			||||||
 | 
								bb_applet_name);
 | 
				
			||||||
	exit(1);
 | 
						exit(1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user