IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 41484


Ignore:
Timestamp:
Feb 3, 2021, 2:37:31 PM (5 years ago)
Author:
eugene
Message:

add limits to ftable so it does not print a crazy number of lines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/tools/src/ftable.c

    r39533 r41484  
    1414int main (int argc, char **argv) {
    1515
    16   off_t Nx, Ny, Nbytes, Nread, Row;
    17   int N, Nextend, Column, ListExtname, Layout;
    18   char *Extname, *Colname, ttype[80];
     16  off_t Nx, Ny, Nbytes, Nread;
     17  int N;
     18  char ttype[80];
    1919  FTable table;
    2020  Header header;
     
    3333  }
    3434
    35   Nextend = 0;
     35  int Nextend = 0;
    3636  if ((N = get_argument (argc, argv, "-x"))) {
    3737    remove_argument (N, &argc, argv);
     
    4040  }
    4141
    42   Extname = (char *) NULL;
     42  char *Extname = NULL;
    4343  if ((N = get_argument (argc, argv, "-n"))) {
    4444    if (Nextend) usage ();
     
    4848  }
    4949
    50   Row = 0;
     50  off_t Row = -1;
    5151  if ((N = get_argument (argc, argv, "-row"))) {
    5252    remove_argument (N, &argc, argv);
    53     Row = atof (argv[N]);
    54     remove_argument (N, &argc, argv);
    55   }
    56 
    57   Column = 0;
     53    Row = atoi (argv[N]);
     54    remove_argument (N, &argc, argv);
     55  }
     56
     57  off_t RowStart = 0;
     58  if ((N = get_argument (argc, argv, "-row-start"))) {
     59    remove_argument (N, &argc, argv);
     60    RowStart = atoi (argv[N]);
     61    remove_argument (N, &argc, argv);
     62  }
     63
     64  off_t RowStop = 20;
     65  if ((N = get_argument (argc, argv, "-row-stop"))) {
     66    remove_argument (N, &argc, argv);
     67    RowStop = atoi (argv[N]);
     68    remove_argument (N, &argc, argv);
     69  }
     70
     71  int Column = 0;
    5872  if ((N = get_argument (argc, argv, "-ncolumn"))) {
    5973    remove_argument (N, &argc, argv);
    60     Column = atof (argv[N]);
    61     remove_argument (N, &argc, argv);
    62   }
    63 
    64   Colname = 0;
     74    Column = atoi (argv[N]);
     75    remove_argument (N, &argc, argv);
     76  }
     77
     78  char *Colname = 0;
    6579  if ((N = get_argument (argc, argv, "-column"))) {
    6680    if (Column) usage ();
     
    7084  }
    7185
    72   ListExtname = FALSE;
     86  int ListExtname = FALSE;
    7387  if ((N = get_argument (argc, argv, "-list"))) {
    7488    remove_argument (N, &argc, argv);
     
    7690  }
    7791
    78   Layout = FALSE;
     92  int Layout = FALSE;
    7993  if ((N = get_argument (argc, argv, "-layout"))) {
    8094    remove_argument (N, &argc, argv);
     
    113127
    114128  /* print a row */
    115   if (Row) {
     129  if (Row > -1) {
    116130    if (!print_table_rows (&table, Row, 1)) {
    117131      fprintf (stderr, "failed to print row\n");
     
    120134  }
    121135
    122   /* print complete table */
    123   if (!print_table_rows (&table, 0, Ny)) {
     136  /* print rows of table */
     137  if (!print_table_rows (&table, RowStart, RowStop)) {
    124138    fprintf (stderr, "failed to print table\n");
    125139  }   
     140  fprintf (stdout, "# %d of %d total rows (%d to %d)\n", (int) (RowStop - RowStart), (int) Ny, (int) RowStart, (int) RowStop);
    126141  exit (0);
    127142}
     
    198213        if (!strcmp (types[i], "char")) {
    199214          memcpy (line, &row[byte], Nvals[i]*Nbyte[i]);
     215          line[Nvals[i]*Nbyte[i]] = 0;
    200216          fprintf (stdout, "%s ", line);
    201217          found = TRUE;
     
    264280void usage () {
    265281    fprintf (stderr, "USAGE: [-h] [-N N] (table.fits)\n");
    266     fprintf (stderr, " -x N:       operate on extension N (0 is default)\n");
    267     fprintf (stderr, " -n EXTNAME: operate on named extension (incompatible with -x)\n");
    268     fprintf (stderr, " -row N:     print row number N\n");
    269     fprintf (stderr, " -column n:  print column named n\n");
    270     fprintf (stderr, " -ncolumn N: print column number N\n");
    271     fprintf (stderr, " -list:      print extension names\n");
    272     fprintf (stderr, " -layout:    describe extension\n");
    273     fprintf (stderr, " -uncompress: uncompress file (requires output argument)\n");
     282    fprintf (stderr, " -x N:         operate on extension N (0 is default)\n");
     283    fprintf (stderr, " -n EXTNAME:   operate on named extension (incompatible with -x)\n");
     284    fprintf (stderr, " -row N:       print row number N\n");
     285    fprintf (stderr, " -row-start N: start at row number N\n");
     286    fprintf (stderr, " -row-stop N:  stop at row number N\n");
     287    fprintf (stderr, " -column n:    print column named n\n");
     288    fprintf (stderr, " -ncolumn N:   print column number N\n");
     289    fprintf (stderr, " -list:        print extension names\n");
     290    fprintf (stderr, " -layout:      describe extension\n");
     291    fprintf (stderr, " -uncompress:  uncompress file (requires output argument)\n");
    274292    exit (2);
    275293}
Note: See TracChangeset for help on using the changeset viewer.