1 /* guidgen.c - Tool to create GUIDs
2 * Copyright (C) 2001 g10 Code GmbH
4 * This file is part of GPGME.
6 * GPGME is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * GPGME is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
36 enum cmd_and_opt_values { aNull = 0,
42 static ARGPARSE_OPTS opts[] = {
44 { 301, NULL, 0, "@Options:\n " },
46 { oVerbose, "verbose", 0, "verbose" },
54 static void create_guid (void);
57 my_strusage( int level )
61 case 11: p = "guidgen";
63 case 13: p = VERSION; break;
64 /*case 17: p = PRINTABLE_OS_NAME; break;*/
66 "Please report bugs to <gpgme-bugs@gnupg.org>.\n";
70 "Usage: guidgen [options] (-h for help)";
73 "Syntax: guidgen [options]\n"
84 main (int argc, char **argv )
88 set_strusage( my_strusage );
89 /*log_set_name ("gpa"); not yet implemented in logging.c */
94 while( arg_parse( &pargs, opts) ) {
95 switch( pargs.r_opt ) {
96 case oVerbose: opt.verbose++; break;
98 default : pargs.err = 2; break;
107 for (n = atoi (argv[0]); n > 0; n-- )
120 if ( CoCreateGuid (id) ) {
121 fprintf (stderr,"failed to create GUID\n");
124 printf( "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
125 id->Data1, id->Data2, id->Data3,
126 id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3],
127 id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] );