IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 9470


Ignore:
Timestamp:
Oct 10, 2006, 1:20:45 PM (20 years ago)
Author:
eugene
Message:

added -seconds, -reftime and -var options to date.c

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.basic/date.c

    r7917 r9470  
    33int date (int argc, char **argv) {
    44 
    5   int N;
     5  int N, SECONDS, REFTIME;
    66  struct timeval now;
    7   char *tstring;
     7  char *tstring, *varName;
    88
    9   if ((argc != 1) && (argc != 2)) {
    10     gprint (GP_ERR, "USAGE: date [variable]\n");
     9  SECONDS = FALSE;
     10  if ((N = get_argument (argc, argv, "-seconds"))) {
     11    remove_argument (N, &argc, argv);
     12    SECONDS = TRUE;
     13  } else {
     14    ALLOCATE (tstring, char, 32);
     15  }
     16
     17  REFTIME = 0;
     18  if ((N = get_argument (argc, argv, "-reftime"))) {
     19    remove_argument (N, &argc, argv);
     20    REFTIME = atoi (argv[N]);
     21    remove_argument (N, &argc, argv);
     22  }
     23
     24  varName = NULL;
     25  if ((N = get_argument (argc, argv, "-var"))) {
     26    remove_argument (N, &argc, argv);
     27    varName = strcreate (argv[N]);
     28    remove_argument (N, &argc, argv);
     29  }
     30
     31  if (argc != 1) {
     32    gprint (GP_ERR, "USAGE: date [-var variable] [-seconds] [-reftime seconds]\n");
    1133    return (FALSE);
    1234  }
    1335
    1436  gettimeofday (&now, NULL);
    15   tstring = ctime (&now.tv_sec);
    16   N = strlen (tstring) - 1;
    17   tstring[N] = 0;
     37  if (SECONDS) {
     38    if (varName) {
     39      set_int_variable (varName, now.tv_sec - REFTIME);
     40    } else {
     41      gprint (GP_ERR, "%d\n", now.tv_sec - REFTIME);
     42    }
     43  } else {
     44    ctime_r (&now.tv_sec, tstring);
     45    N = strlen (tstring) - 1;
     46    tstring[N] = 0;
    1847
    19   if (argc == 1) {
    20     gprint (GP_ERR, "%s\n", tstring);
    21   } else {
    22     set_str_variable (argv[1], tstring);
     48    if (varName) {
     49      set_str_variable (argv[1], tstring);
     50    } else {
     51      gprint (GP_ERR, "%s\n", tstring);
     52    }
     53    free (tstring);
    2354  }
    24 
    2555  return (TRUE);
    2656}
Note: See TracChangeset for help on using the changeset viewer.