static void parse_args( int argc, char *argv[] ) { int ret, optc; static struct option long_options[] = { {"debug", 2, NULL, 'd'}, {"foreground", 0, NULL, 'f'}, {"help", 0, NULL, 'h'}, {"kill", 2, NULL, 'k'}, {"persistent", 2, NULL, 'p'}, {"version", 0, NULL, 'v'}, {"wait", 0, NULL, 'w'}, { NULL, 0, NULL, 0} }; server_argv0 = argv[0]; while ((optc = getopt_long( argc, argv, "d::fhk::p::vw", long_options, NULL )) != -1) { switch(optc) { case 'd': if (optarg && isdigit(*optarg)) debug_level = atoi( optarg ); else debug_level++; break; case 'f': foreground = 1; break; case 'h': usage(); exit(0); break; case 'k': if (optarg && isdigit(*optarg)) ret = kill_lock_owner( atoi( optarg ) ); else ret = kill_lock_owner(-1); exit( !ret ); case 'p': if (optarg && isdigit(*optarg)) master_socket_timeout = (timeout_t)atoi( optarg ) * -TICKS_PER_SEC; else master_socket_timeout = TIMEOUT_INFINITE; break; case 'v': fprintf( stderr, "%s\n", wine_get_build_id()); exit(0); case 'w': wait_for_lock(); exit(0); default: usage(); exit(1); } } }
static void parse_args( int argc, char *argv[] ) { int i, ret; server_argv0 = argv[0]; for (i = 1; i < argc; i++) { if (argv[i][0] == '-') { switch(argv[i][1]) { case 'd': if (isdigit(argv[i][2])) debug_level = atoi( argv[i] + 2 ); else debug_level++; break; case 'f': foreground = 1; break; case 'h': usage(); exit(0); break; case 'k': if (isdigit(argv[i][2])) ret = kill_lock_owner( atoi(argv[i] + 2) ); else ret = kill_lock_owner(-1); exit( !ret ); case 'p': if (isdigit(argv[i][2])) master_socket_timeout = atoi( argv[i] + 2 ); else master_socket_timeout = -1; break; case 'v': fprintf( stderr, "%s\n", PACKAGE_STRING ); exit(0); case 'w': wait_for_lock(); exit(0); default: fprintf( stderr, "wineserver: unknown option '%s'\n", argv[i] ); usage(); exit(1); } } else { fprintf( stderr, "wineserver: unknown argument '%s'.\n", argv[i] ); usage(); exit(1); } } }