From 6dd60008c4bebf42795d4a030b3724ce610bbeeb Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 1 Dec 2009 00:53:03 +0100 Subject: s3:add split_tokens, a cmdline tool to test next_token_talloc() Michael --- source3/utils/split_tokens.c | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 source3/utils/split_tokens.c (limited to 'source3/utils') diff --git a/source3/utils/split_tokens.c b/source3/utils/split_tokens.c new file mode 100644 index 0000000000..ac4f7268e9 --- /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...] "); + + 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; +} + -- cgit