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 | |
parent | 92547d2873b357b3d6ea21edff646a66f1d22368 (diff) | |
download | samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.tar.gz samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.tar.bz2 samba-6dd60008c4bebf42795d4a030b3724ce610bbeeb.zip |
s3:add split_tokens, a cmdline tool to test next_token_talloc()
Michael
-rw-r--r-- | source3/Makefile.in | 14 | ||||
-rw-r--r-- | source3/utils/split_tokens.c | 78 |
2 files changed, 92 insertions, 0 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index 2a627f7209..b1f1658c68 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1344,6 +1344,12 @@ DBWRAP_TORTURE_OBJ = utils/dbwrap_torture.o \ $(LIBSAMBA_OBJ) \ $(POPT_LIB_OBJ) +SPLIT_TOKENS_OBJ = utils/split_tokens.o \ + $(PARAM_OBJ) \ + $(LIB_NONSMBD_OBJ) \ + $(POPT_LIB_OBJ) \ + $(LIBSAMBA_OBJ) + ###################################################################### # now the rules... ###################################################################### @@ -2927,6 +2933,14 @@ bin/dbwrap_torture@EXEEXT@: $(DBWRAP_TORTURE_OBJ) $(LIBTALLOC) $(LIBTDB) install-dbwrap_torture:: bin/dbwrap_torture@EXEEXT@ @$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $< +bin/split_tokens@EXEEXT@: $(BINARY_PREREQS) $(SPLIT_TOKENS_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTDB) + @echo "Linking $@" + @$(CC) -o $@ $(SPLIT_TOKENS_OBJ) \ + $(LDFLAGS) $(DYNEEXP) \ + $(LIBS) $(POPT_LIBS) \ + $(LDAP_LIBS) \ + $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) + install:: installservers installbin @INSTALL_CIFSMOUNT@ @INSTALL_CIFSUMOUNT@ @INSTALL_CIFSUPCALL@ installman \ installscripts installdat installmodules @SWAT_INSTALL_TARGETS@ \ @INSTALL_PAM_MODULES@ installlibs installmo 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...] <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; +} + |