[Toybox] [PATCH] New toy - printenv

Georgi Chorbadzhiyski gf at unixsol.org
Mon Feb 27 16:31:21 PST 2012


In the attached file you'll find implementation of printenv command.

What is the correct way (if there is one currently) to add long options.
According to printenv man page -0 is alias to --null. Currently printenv.c
supports only -0.

-- 
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
-------------- next part --------------
/* vi: set sw=4 ts=4:
 *
 * printenv.c - Print environment variables.
 *
 * Copyright 2012 Georgi Chorbadzhiyski <georgi at unixsol.org>
 *

USE_PRINTENV(NEWTOY(printenv, "0", TOYFLAG_USR|TOYFLAG_BIN))

config PRINTENV
	bool "printenv"
	default y
	help
	  usage: printenv [-0] [env_var...]
	  Print enviroment variables.

	  -0	Use \0 as environment delimiter instead of \n
*/

#include "toys.h"

extern char **environ;

void printenv_main(void)
{
	char **env;
	char delim = '\n';

	if (toys.optflags)
		delim = '\0';

	if (!toys.optargs[0]) {
		for (env = environ; *env; env++)
			xprintf("%s%c", *env, delim);
	} else {
		char **var = toys.optargs;
		for (var = toys.optargs; *var; var++) {
			int len = strlen(*var);
			for (env = environ; *env; env++) {
				if (strncmp(*env, *var, len) == 0)
					xprintf("%s%c", *env + len + 1, delim);
			}
		}
	}
}


More information about the Toybox mailing list