diff options
author | Michael Adam <obnox@samba.org> | 2009-12-01 00:53:03 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-12-01 00:55:53 +0100 |
commit | 6dd60008c4bebf42795d4a030b3724ce610bbeeb (patch) | |
tree | 7b71beb34580c2b23c4415aa09e8072f62d1ab3f /source3/utils/split_tokens.c | |
parent | 92547d2873b357b3d6ea21edff646a66f1d22368 (diff) | |
download | samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.tar.gz samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.tar.xz samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.zip |
s3:add split_tokens, a cmdline tool to test next_token_talloc()
Michael
Diffstat (limited to 'source3/utils/split_tokens.c')
-rw-r--r-- | source3/utils/split_tokens.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/source3/utils/split_tokens.c b/source3/utils/split_tokens.c new file mode 100644 index 00000000000..ac4f7268e97 --- /dev/null +++ b/source3/utils/split_tokens.c @@ -0,0 +1,78 @@ +/* + Unix SMB/CIFS implementation. + test program for the next_token() function + + Copyright (C) 2009 Michael Adam + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + * Diagnostic output for "next_token()". + */ + +#include "includes.h" + +extern bool AllowDebugChange; + +int main(int argc, const char *argv[]) +{ + const char *config_file = get_dyn_CONFIGFILE(); + const char *sequence = ""; + poptContext pc; + char *buff; + TALLOC_CTX *ctx = talloc_stackframe(); + + struct poptOption long_options[] = { + POPT_AUTOHELP + POPT_COMMON_VERSION + POPT_TABLEEND + }; + + load_case_tables(); + + pc = poptGetContext(NULL, argc, argv, long_options, + POPT_CONTEXT_KEEP_FIRST); + poptSetOtherOptionHelp(pc, "[OPTION...] <sequence-string>"); + + while(poptGetNextOpt(pc) != -1); + + setup_logging(poptGetArg(pc), true); + + sequence = poptGetArg(pc); + + if (sequence == NULL) { + fprintf(stderr, "ERROR: missing sequence string\n"); + return 1; + } + + dbf = x_stderr; + DEBUGLEVEL = 0; + AllowDebugChange = false; + + if (!lp_load(config_file,false,true,false,true)) { + fprintf(stderr,"Error loading services.\n"); + return 1; + } + + while(next_token_talloc(ctx, &sequence, &buff, NULL)) { + printf("[%s]\n", buff); + } + + talloc_free(ctx); + + return 0; +} + |