Exemplo n.º 1
0
 AzParam(int argc, const char *argv[], 
         bool inp_doCheck=true, 
         char file_mark='@', 
         char inp_dlm=',', 
         char inp_kwval_dlm='=',
         char cmt='#') : sp_used_kw(100, 30)
 {
   doCheck = inp_doCheck; 
   dlm = inp_dlm; 
   kwval_dlm = inp_kwval_dlm; 
   concat_args(argc, argv, &s_param, file_mark, dlm, cmt); 
   param = s_param.c_str(); 
 }
Exemplo n.º 2
0
int
main (int argc, char *argv[])
{
    int r;
    struct tm tm;
    time_t result;
    time_t now;
    time_t *nowp = NULL;
    char *argstr;
    int round = PARSE_TIME_NO_ROUND;
    char buf[1024];
    const char *format = DEFAULT_FORMAT;
    struct option options[] = {
	{ "help",	no_argument,		NULL,	'h' },
	{ "^",		no_argument,		NULL,	'u' },
	{ "^^",		no_argument,		NULL,	'U' },
	{ "_",		no_argument,		NULL,	'd' },
	{ "format",	required_argument,	NULL,	'f' },
	{ "ref",	required_argument,	NULL,	'r' },
	{ NULL, 0, NULL, 0 },
    };

    for (;;) {
	int c;

	c = getopt_long (argc, argv, "huUdf:r:", options, NULL);
	if (c == -1)
	    break;

	switch (c) {
	case 'f':
	    /* output format */
	    format = optarg;
	    break;
	case 'u':
	    round = PARSE_TIME_ROUND_UP_INCLUSIVE;
	    break;
	case 'U':
	    round = PARSE_TIME_ROUND_UP;
	    break;
	case 'd':
	    round = PARSE_TIME_ROUND_DOWN;
	    break;
	case 'r':
	    /* specify now in seconds since epoch */
	    now = (time_t) strtol (optarg, NULL, 10);
	    if (now >= (time_t) 0)
		nowp = &now;
	    break;
	case 'h':
	case '?':
	default:
	    usage (argv[0]);
	    return 1;
	}
    }

    if (optind == argc)
	return parse_stdin (stdin, nowp, round, format);

    argstr = concat_args (optind, argc, argv);
    if (!argstr)
	return 1;

    r = parse_time_string (argstr, &result, nowp, round);

    free (argstr);

    if (r) {
	const char *errstr = parse_time_strerror (r);
	if (errstr)
	    fprintf (stderr, "ERROR: %s\n", errstr);
	else
	    fprintf (stderr, "ERROR: %d\n", r);

	return r;
    }

    if (!localtime_r (&result, &tm))
	return 1;

    strftime (buf, sizeof (buf), format, &tm);
    printf ("%s\n", buf);

    return 0;
}