Exemplo n.º 1
0
QCString Definition::briefDescription(bool abbr) const 
{ 
  //printf("%s::briefDescription(%d)='%s'\n",name().data(),abbr,m_impl->brief?m_impl->brief->doc.data():"<none>");
  return m_impl->brief ? 
         (abbr ? abbreviate(m_impl->brief->doc,displayName()) : m_impl->brief->doc) :
         QCString(""); 
}
Exemplo n.º 2
0
/* Convert a value to its shortest possible form */
static void genfield(
    char **buf,     /* where to stuff the short value */
    char *current,      /* current value */
    char *(*namefunc)(int), /* called to generate names of items */
    ...)            /* NULL-terminated list of hardcoded items */
{
    char    str[40];    /* abbreviated value */
    char    *value;
    int i,len, found;
    va_list ap;

    /* generate the abbreviated version of the string */
    strcpy(str, abbreviate(current));

    /* compare to other values, to see how short we can make this */
    va_start(ap, namefunc);
    i = 0;
    value = namefunc ? (*namefunc)(i) : NULL;
    if (!value)
    {
        namefunc = NULL;
        value = va_arg(ap, char *);
    }
Exemplo n.º 3
0
QString MLNetwork::httpGetText(const QString& url)
{
    if (MLUtil::inGuiThread()) {
        return get_http_text_curl(url);
    }
    QTime timer;
    timer.start();
    QString fname = get_temp_fname();
    QNetworkAccessManager manager; // better make it a singleton
    QNetworkReply* reply = manager.get(QNetworkRequest(QUrl(url)));
    QEventLoop loop;
    QString ret;
    QObject::connect(reply, &QNetworkReply::readyRead, [&]() {
        ret+=reply->readAll();
    });
    QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();
    printf("RECEIVED TEXT (%d ms, %d bytes) from GET %s\n", timer.elapsed(), ret.count(), url.toLatin1().data());
    QString str = abbreviate(ret, 200, 200);
    printf("%s\n", (str.toLatin1().data()));

    TaskManager::TaskProgressMonitor::globalInstance()->incrementQuantity("bytes_downloaded", ret.count());
    return ret;
}
Exemplo n.º 4
0
int					/* O - Exit code */
main(int  argc,				/* I - Number of command-line args */
     char *argv[])			/* I - Command-line arguments */
{
  int			i;		/* Looping var */
  cups_array_t		*po;		/* .po file */
  _cups_message_t	*msg;		/* Current message */
  cups_array_t		*idfmts,	/* Format strings in msgid */
			*strfmts;	/* Format strings in msgstr */
  char			*idfmt,		/* Current msgid format string */
			*strfmt;	/* Current msgstr format string */
  int			fmtidx;		/* Format index */
  int			status,		/* Exit status */
			pass,		/* Pass/fail status */
			untranslated;	/* Untranslated messages */
  char			idbuf[80],	/* Abbreviated msgid */
			strbuf[80];	/* Abbreviated msgstr */


  if (argc < 2)
  {
    puts("Usage: checkpo filename.po [... filenameN.po]");
    return (1);
  }

 /*
  * Check every .po file on the command-line...
  */

  for (i = 1, status = 0; i < argc; i ++)
  {
   /*
    * Use the CUPS .po loader to get the message strings...
    */

    if ((po = _cupsMessageLoad(argv[i], 1)) == NULL)
    {
      perror(argv[i]);
      return (1);
    }

    if (i > 1)
      putchar('\n');
    printf("%s: ", argv[i]);
    fflush(stdout);

   /*
    * Scan every message for a % string and then match them up with
    * the corresponding string in the translation...
    */

    pass         = 1;
    untranslated = 0;

    for (msg = (_cups_message_t *)cupsArrayFirst(po);
         msg;
	 msg = (_cups_message_t *)cupsArrayNext(po))
    {
     /*
      * Make sure filter message prefixes are not translated...
      */

      if (!strncmp(msg->id, "ALERT:", 6) || !strncmp(msg->id, "CRIT:", 5) ||
          !strncmp(msg->id, "DEBUG:", 6) || !strncmp(msg->id, "DEBUG2:", 7) ||
          !strncmp(msg->id, "EMERG:", 6) || !strncmp(msg->id, "ERROR:", 6) ||
          !strncmp(msg->id, "INFO:", 5) || !strncmp(msg->id, "NOTICE:", 7) ||
          !strncmp(msg->id, "WARNING:", 8))
      {
        if (pass)
	{
	  pass = 0;
	  puts("FAIL");
	}

	printf("    Bad prefix on filter message \"%s\"\n",
	       abbreviate(msg->id, idbuf, sizeof(idbuf)));
      }

      idfmt = msg->id + strlen(msg->id) - 1;
      if (idfmt >= msg->id && *idfmt == '\n')
      {
        if (pass)
	{
	  pass = 0;
	  puts("FAIL");
	}

	printf("    Trailing newline in message \"%s\"\n",
	       abbreviate(msg->id, idbuf, sizeof(idbuf)));
      }

      for (; idfmt >= msg->id; idfmt --)
        if (!isspace(*idfmt & 255))
	  break;

      if (idfmt >= msg->id && *idfmt == '!')
      {
        if (pass)
	{
	  pass = 0;
	  puts("FAIL");
	}

	printf("    Exclamation in message \"%s\"\n",
	       abbreviate(msg->id, idbuf, sizeof(idbuf)));
      }

      if ((idfmt - 2) >= msg->id && !strncmp(idfmt - 2, "...", 3))
      {
        if (pass)
	{
	  pass = 0;
	  puts("FAIL");
	}

	printf("    Ellipsis in message \"%s\"\n",
	       abbreviate(msg->id, idbuf, sizeof(idbuf)));
      }


      if (!msg->str || !msg->str[0])
      {
        untranslated ++;
	continue;
      }
      else if (strchr(msg->id, '%'))
      {
        idfmts  = collect_formats(msg->id);
	strfmts = collect_formats(msg->str);
	fmtidx  = 0;

        for (strfmt = (char *)cupsArrayFirst(strfmts);
	     strfmt;
	     strfmt = (char *)cupsArrayNext(strfmts))
	{
	  if (isdigit(strfmt[1] & 255) && strfmt[2] == '$')
	  {
	   /*
	    * Handle positioned format stuff...
	    */

            fmtidx = strfmt[1] - '1';
            strfmt += 3;
	    if ((idfmt = (char *)cupsArrayIndex(idfmts, fmtidx)) != NULL)
	      idfmt ++;
	  }
	  else
	  {
	   /*
	    * Compare against the current format...
	    */

	    idfmt = (char *)cupsArrayIndex(idfmts, fmtidx);
          }

	  fmtidx ++;

	  if (!idfmt || strcmp(strfmt, idfmt))
	    break;
	}

        if (cupsArrayCount(strfmts) != cupsArrayCount(idfmts) || strfmt)
	{
	  if (pass)
	  {
	    pass = 0;
	    puts("FAIL");
	  }

	  printf("    Bad translation string \"%s\"\n        for \"%s\"\n",
	         abbreviate(msg->str, strbuf, sizeof(strbuf)),
		 abbreviate(msg->id, idbuf, sizeof(idbuf)));
          fputs("    Translation formats:", stdout);
	  for (strfmt = (char *)cupsArrayFirst(strfmts);
	       strfmt;
	       strfmt = (char *)cupsArrayNext(strfmts))
	    printf(" %s", strfmt);
          fputs("\n    Original formats:", stdout);
	  for (idfmt = (char *)cupsArrayFirst(idfmts);
	       idfmt;
	       idfmt = (char *)cupsArrayNext(idfmts))
	    printf(" %s", idfmt);
          putchar('\n');
          putchar('\n');
	}

	free_formats(idfmts);
	free_formats(strfmts);
      }

     /*
      * Only allow \\, \n, \r, \t, \", and \### character escapes...
      */

      for (strfmt = msg->str; *strfmt; strfmt ++)
        if (*strfmt == '\\' &&
	    strfmt[1] != '\\' && strfmt[1] != 'n' && strfmt[1] != 'r' &&
	    strfmt[1] != 't' && strfmt[1] != '\"' && !isdigit(strfmt[1] & 255))
	{
	  if (pass)
	  {
	    pass = 0;
	    puts("FAIL");
	  }

	  printf("    Bad escape \\%c in filter message \"%s\"\n"
	         "      for \"%s\"\n", strfmt[1],
		 abbreviate(msg->str, strbuf, sizeof(strbuf)),
		 abbreviate(msg->id, idbuf, sizeof(idbuf)));
          break;
        }
    }

    if (pass)
    {
      if ((untranslated * 10) >= cupsArrayCount(po) &&
          strcmp(argv[i], "cups.pot"))
      {
       /*
        * Only allow 10% of messages to be untranslated before we fail...
	*/

        pass = 0;
        puts("FAIL");
	printf("    Too many untranslated messages (%d of %d)\n",
	       untranslated, cupsArrayCount(po));
      }
      else if (untranslated > 0)
        printf("PASS (%d of %d untranslated)\n", untranslated,
	       cupsArrayCount(po));
      else
        puts("PASS");
    }

    if (!pass)
      status = 1;

    _cupsMessageFree(po);
  }

  return (status);
}
Exemplo n.º 5
0
static void tbl_npsa ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_npsa                                                             *
 *                                                                      *
 * This function creates the Predictive Service Areas table files.	*
 *                                                                      *
 * tbl_npsa ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * S. Jacobs/NCEP	 4/10   	Initial coding                  *
 * X. Guo/CWS            4/12           Increase variables(code,shrnam) *
 *                                      size                            *
 ***********************************************************************/
{
    shp_record *currec;
    /*
     * The array size is from the specification.
     */
    char code[20], name[81], shrnam[52];
    int rec, ifld, len, ier;
    float clat, clon;
    int iclat, iclon;
    char *tblnam = NPSATBL;
    FILE *tblfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( tblnam, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", tblnam );
        exit ( -1 );
    }

    for ( currec = shprec, rec = 0; rec < numrec;
        rec++, currec = currec->nxtrec ) {

        for ( ifld = 0; ifld < currec->numfld; ifld++ ) {
            if ( strncmp ( currec->fields[ifld].name, "NAT_CODE",
	        strlen("NAT_CODE") ) == 0 ) {
		strcpy ( code, currec->fields[ifld].data );
		cst_lstr ( code, &len, &ier );
		code[len] = '\0';
            } else if ( strncmp ( currec->fields[ifld].name, "PSA_NAME",
	        strlen("PSA_NAME") ) == 0 ) {
		strcpy ( name, currec->fields[ifld].data );
		cst_lstr ( name, &len, &ier );
		name[len] = '\0';
		cst_rspc ( name, &ier );
		abbreviate ( name, 50, shrnam, &ier );
	    }
	}

	if ( strlen(shrnam) == 0 ) {
	    strcpy ( shrnam, code );
	}

	shp_gctr ( currec, &clon, &clat, &ier );
        iclat = (int)(ROUNDUP(clat)*100.);
        iclon = (int)(ROUNDUP(clon)*100.);

        fprintf ( tblfp, 
          "%-8.8s %6.6d %-32.32s -- US %5d %6d %5d %2d\n",
          code, 999999, shrnam, iclat, iclon, 0, 0 );
    }

    cfl_clos ( tblfp, &ier );
}
Exemplo n.º 6
0
static void tbl_rfcb ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_rfcb                                                             *
 *                                                                      *
 * This function creates the river forecast center basin table file.	* 
 *                                                                      *
 * tbl_rfcb ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * R. Tian/SAIC          4/04   	Initial coding                  *
 ***********************************************************************/
{
    shp_record *currec;
    /*
     * The array size is from the River Forecast Center Basin
     * specification.
     */
    char basid[9], basnam[65], shrnam[33], cwanam[13], rfcid[6];
    int iclat, iclon;
    int rec, ifld, len, ier;
    float shplat, shplon;
    char *tblnam = RIVERBASINTBL;
    FILE *tblfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( tblnam, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", tblnam );
        exit ( -1 );
    }

    for ( currec = shprec, rec = 0; rec < numrec;
        rec++, currec = currec->nxtrec ) {

        for ( ifld = 0; ifld < currec->numfld; ifld++ ) {
            if ( strncmp ( currec->fields[ifld].name, "ID",
	        strlen ( "ID" ) ) == 0 ) {
	        strcpy ( basid, currec->fields[ifld].data );
		cst_lstr ( basid, &len, &ier );
		basid[len] = '\0';
            } else if ( strncmp ( currec->fields[ifld].name, "NAME",
	        strlen ( "NAME" ) ) == 0 ) {
		strcpy ( basnam, currec->fields[ifld].data );
		cst_lstr ( basnam, &len, &ier );
		basnam[len] = '\0';
		cst_rspc ( basnam, &ier );
		abbreviate ( basnam, 32, shrnam, &ier );
	    } else if ( strncmp ( currec->fields[ifld].name, "CWA",
	        strlen ( "CWA" ) ) == 0 ) {
	        strcpy ( cwanam, currec->fields[ifld].data );
		cst_lstr ( cwanam, &len, &ier );
	        cwanam[len] = '\0';
	    } else if ( strncmp ( currec->fields[ifld].name, "LAT",
                strlen("LAT") ) == 0 ) {
                shplat = atof ( currec->fields[ifld].data );
	    } else if ( strncmp ( currec->fields[ifld].name, "LON",
                strlen("LON") ) == 0 ) {
                shplon = atof ( currec->fields[ifld].data );
            } else if ( strncmp ( currec->fields[ifld].name, "RFC",
	        strlen("RFC") ) == 0 ) {
		strcpy ( rfcid, currec->fields[ifld].data );
		cst_lstr ( rfcid, &len, &ier );
		rfcid[len] = '\0';
	    }
	}

        iclat = (int)(ROUNDUP(shplat)*100.);
        iclon = (int)(ROUNDUP(shplon)*100.);
        if ( iclat == 0 && iclon == 0 ) {
            iclat = (int)(ROUNDUP(currec->cenlat)*100.);
            iclon = (int)(ROUNDUP(currec->cenlon)*100.);
        }

        fprintf ( tblfp, 
          "%-6.6s   %6s %-32.32s -- US %5d %6d %5d %2d %-3.3s\n",
          basid, rfcid, shrnam, iclat, iclon, 0, 0, cwanam );
    }

    cfl_clos ( tblfp, &ier );
}
Exemplo n.º 7
0
static void tbl_zone ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_zone                                                             *
 *                                                                      *
 * This function creates the public forecast zone and fire weather zone	*
 * station table files.							*
 *                                                                      *
 * tbl_zone ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * R. Tian/SAIC          3/04   	Initial coding                  *
 ***********************************************************************/
{
    shp_record *currec;
    /*
     * The array size is from the Public Forecast Zones attributes 
     * specification.
     */
    char zonenm[255], shrnam[33], cwanam[4], stabbr[3];
    int ifips, izone, istno, iclat, iclon;
    int rec, ifld, len, ier;
    float shplat, shplon;
    char *tblnam = PFZTBL;
    FILE *tblfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( tblnam, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", tblnam );
        exit ( -1 );
    }

    for ( currec = shprec, rec = 0; rec < numrec;
        rec++, currec = currec->nxtrec ) {

        for ( ifld = 0; ifld < currec->numfld; ifld++ ) {
            if ( strcmp ( currec->fields[ifld].name, "STATE" ) == 0 ) {
	        strcpy ( stabbr, currec->fields[ifld].data );
            } else if ( strncmp ( currec->fields[ifld].name, "ZONE",
	        strlen ( "ZONE" ) ) == 0 ) {
		izone = strtol ( currec->fields[ifld].data, NULL, 10 );
	    } else if ( strncmp ( currec->fields[ifld].name, "CWA",
	        strlen ( "CWA" ) ) == 0 ) {
	        strncpy ( cwanam, currec->fields[ifld].data, 3 );
	        cwanam[3] = '\0';
	    } else if ( strncmp ( currec->fields[ifld].name, "LAT",
                strlen("LAT") ) == 0 ) {
                shplat = atof ( currec->fields[ifld].data );
	    } else if ( strncmp ( currec->fields[ifld].name, "LON",
                strlen("LON") ) == 0 ) {
                shplon = atof ( currec->fields[ifld].data );
            } else if ( strncmp ( currec->fields[ifld].name, "NAME",
	        strlen("NAME") ) == 0 ) {
		strcpy ( zonenm, currec->fields[ifld].data );
		cst_lstr ( zonenm, &len, &ier );
		zonenm[len] = '\0';
		cst_rspc ( zonenm, &ier );
		abbreviate ( zonenm, 32, shrnam, &ier );
	    }
	}

        for ( istno = 0; istno < NUMSTNO; istno++ ) {
            if ( strncmp ( stateno[istno], stabbr, 2 ) == 0 ) {
                break;
            }
        }
        ifips = istno * 10000 + izone * 10;
        iclat = (int)(ROUNDUP(shplat)*100.);
        iclon = (int)(ROUNDUP(shplon)*100.);
        if ( iclat == 0 && iclon == 0 ) {
            iclat = (int)(ROUNDUP(currec->cenlat)*100.);
            iclon = (int)(ROUNDUP(currec->cenlon)*100.);
        }

        fprintf ( tblfp, 
          "%2.2sZ%3.3d   %6d %-32.32s %2.2s US %5d %6d %5d %2d %-3.3s\n",
          stabbr, izone, ifips, shrnam, stabbr, iclat, iclon, 0, 0, cwanam );
    }

    cfl_clos ( tblfp, &ier );
}
Exemplo n.º 8
0
static void tbl_mzcn ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_mzcn                                                             *
 *                                                                      *
 * This function creates the combined county and marine station tables.	*
 *                                                                      *
 * tbl_mzcn ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * R. Tian/SAIC          3/04   Initial coding                  	*
 * S. Jacobs/NCEP	 3/11	Changed header keys for determining	*
 * 				the type of file - county or marine	*
 * X.Guo/CWS             9/11   Increased fulname size and chnaged      *
 *                              SHAPE_LENG to COUNTYNAME                *
 ***********************************************************************/
{
    shp_record *currec;
    /*
     * The array size is from the Costal Marine Zones and AWIPS Counties
     * attributes specification.
     */
    char fulnam[500], shrnam[33], cwanam[10], stabbr[3];
    int ifips, istno, izone, ilat, ilon;
    int irec, jfld, kfld, pos, len, ier;
    char *stntbl = MZCNTYTBL, *namtbl = MZCNTYNAMTBL; 
    float shplat, shplon;
    FILE *tblfp, *namfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( stntbl, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", stntbl );
        exit ( -1 );
    }
    namfp = cfl_wopn ( namtbl, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", namtbl );
        exit ( -1 );
    }

    for ( currec = shprec, irec = 0; irec < numrec;
        irec++, currec = currec->nxtrec ) {

        for ( jfld = 0; jfld < currec->numfld; jfld++ ) {
            if ( strncmp ( currec->fields[jfld].name, "COUNTYNAME",
                strlen("COUNTYNAME") ) == 0 ) {
                /*
                 * County.
                 */
                for ( kfld = 0; kfld < currec->numfld; kfld++ ) {
                    if ( strncmp ( currec->fields[kfld].name, 
		        "COUNTYNAME", strlen("COUNTYNAME") ) == 0 ) {
                        strcpy ( fulnam, currec->fields[kfld].data );
			cst_lstr ( fulnam, &len, &ier );
			fulnam[len] = '\0';
                        cst_rspc ( fulnam, &ier );
                        abbreviate ( fulnam, 32, shrnam, &ier );

                        /*
                         * Remove "City_of_" from county name
                         */
                        cst_rmst ( shrnam, "City_of_", &pos,
                                   shrnam, &ier );

                        /*
                         * Remove "Lower_Keys_in_" from county name
                         */
                        cst_rmst ( shrnam, "Lower_Keys_in_", &pos,
                                   shrnam, &ier );

                        /*
                         * Remove "Outer_Banks_" from county name
                         */
                        cst_rmst ( shrnam, "Outer_Banks_", &pos,
                                   shrnam, &ier );

                        /*
                         * Remove "Mainland_" from county name
                         */
                        cst_rmst ( shrnam, "Mainland_", &pos,
                                   shrnam, &ier );
                    } else if ( strncmp ( currec->fields[kfld].name, 
		        "STATE", strlen ( "STATE" ) ) == 0 ) {
                        strcpy ( stabbr, currec->fields[kfld].data );
                    } else if ( strncmp ( currec->fields[kfld].name, 
		        "CWA", strlen ( "CWA" ) ) == 0 ) {
                        strcpy ( cwanam, currec->fields[kfld].data );
			cst_lstr ( cwanam, &len, &ier );
			cwanam[len] = '\0';
                    } else if ( strncmp ( currec->fields[kfld].name, 
		        "FIPS", strlen("FIPS") ) == 0 ) {
                        ifips = atoi ( currec->fields[kfld].data );
	            } else if ( strncmp ( currec->fields[kfld].name, 
		        "LAT", strlen("LAT") ) == 0 ) {
                        shplat = atof ( currec->fields[kfld].data );
	            } else if ( strncmp ( currec->fields[kfld].name, 
		        "LON", strlen("LON") ) == 0 ) {
                        shplon = atof ( currec->fields[kfld].data );
                    }
                }
                if ( strlen ( shrnam ) == (size_t)0 || strlen ( stabbr ) == (size_t)0 ) {
                    continue;
                }
	        if ( ERMISS ( currec->cenlat ) || 
		     ERMISS ( currec->cenlon ) ) {
	            ilat = (int)(ROUNDUP(shplat)*100.);
	            ilon = (int)(ROUNDUP(shplon)*100.);
	        } else {
	            ilat = (int)(ROUNDUP(currec->cenlat)*100.);
	            ilon = (int)(ROUNDUP(currec->cenlon)*100.);
	        }

                fprintf ( tblfp,
            "%2.2sC%3.3d   %6d %-32.32s %2.2s US %5d %6d %5d %2d %-3.3s\n",
                stabbr, ifips%1000, ifips, shrnam, stabbr,
                 ilat, ilon, 0, 0, cwanam );
            } else if ( strncmp ( currec->fields[jfld].name, "NAME",
                strlen("NAME") ) == 0 ) {
                /*
                 * Marine.
                 */
                for ( kfld = 0; kfld < currec->numfld; kfld++ ) {
                    if ( strncmp ( currec->fields[kfld].name, "ID",
                        strlen("ID") ) == 0 ) {
                        strcpy ( shrnam, currec->fields[kfld].data );
                        strncpy ( stabbr, currec->fields[kfld].data, 2 );
                        stabbr[2] = '\0';
                        izone = atoi ( currec->fields[kfld].data + 3 );
                        for ( istno = 0; istno < NUMSTNO; istno++ ) {
                            if ( strncmp ( stateno[istno], stabbr, 2 ) 
			        == 0 ) {
                                break;
                            }
                        }
                        ifips = istno * 10000 + izone * 10;
                    } else if ( strncmp ( currec->fields[kfld].name, 
		        "WFO", strlen ( "WFO" ) ) == 0 ) {
                        strcpy ( cwanam, currec->fields[kfld].data );
                    } else if ( strncmp ( currec->fields[kfld].name, 
		        "NAME", strlen ( "NAME" ) ) == 0 ) {
                        strcpy ( fulnam, currec->fields[kfld].data );
			cst_lstr ( fulnam, &len, &ier );
			fulnam[len] = '\0';
                        cst_rspc ( fulnam, &ier );
	            } else if ( strncmp ( currec->fields[kfld].name, 
		        "LAT", strlen("LAT") ) == 0 ) {
                        shplat = atof ( currec->fields[kfld].data );
	            } else if ( strncmp ( currec->fields[kfld].name, 
		        "LON", strlen("LON") ) == 0 ) {
                        shplon = atof ( currec->fields[kfld].data );
                    }
                } 

	        if ( ERMISS ( currec->cenlat ) || 
		     ERMISS ( currec->cenlon ) ) {
	            ilat = (int)(ROUNDUP(shplat)*100.);
	            ilon = (int)(ROUNDUP(shplon)*100.);
	        } else {
	            ilat = (int)(ROUNDUP(currec->cenlat)*100.);
	            ilon = (int)(ROUNDUP(currec->cenlon)*100.);
	        }

                fprintf ( tblfp,
                 "%6.6s   %6d %-32.32s %2.2s US %5d %6d %5d %2d %-3.3s\n",
                 shrnam, ifips, shrnam, stabbr, ilat, ilon, 0, 0, cwanam );
                fprintf (namfp, "%s %s\n", shrnam, fulnam );
            }
        }
    }

    cfl_clos ( tblfp, &ier );
    cfl_clos ( namfp, &ier );
}
Exemplo n.º 9
0
static void tbl_mari ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_mari                                                             *
 *                                                                      *
 * This function creates the marine station table files.               	*
 *                                                                      *
 * tbl_mari ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * R. Tian/SAIC          3/04   	Initial coding                  *
 ***********************************************************************/
{
    shp_record *currec;
    /*
     * The array size is from the Costal Marine Zones attributes
     * specification.
     */
    char id[7], fulnam[251], shrnam[33], wfonam[4], stabbr[3];
    int ifips, istno, izone, ilat, ilon;
    int irec, jfld, len, ier;
    char *tblnam = MARINETBL;
    float shplat, shplon;
    FILE *tblfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( tblnam, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", tblnam );
        exit ( -1 );
    }

    for ( currec = shprec, irec = 0; irec < numrec;
        irec++, currec = currec->nxtrec ) {
        for ( jfld = 0; jfld < currec->numfld; jfld++ ) {
            if ( strncmp ( currec->fields[jfld].name, "ID",
                strlen("ID") ) == 0 ) {
		strncpy ( id, currec->fields[jfld].data, 6 );
		id[6] = '\0';
                strncpy ( stabbr, currec->fields[jfld].data, 2 );
                stabbr[2] = '\0';
                izone = atoi ( currec->fields[jfld].data + 3 );
                for ( istno = 0; istno < NUMSTNO; istno++ ) {
                    if ( strncmp ( stateno[istno], stabbr, 2 ) == 0 ) {
                        break;
                    }
                }
                ifips = istno * 10000 + izone * 10;
            } else if ( strncmp ( currec->fields[jfld].name, "WFO",
                strlen ( "WFO" ) ) == 0 ) {
                strncpy ( wfonam, currec->fields[jfld].data, 3 );
		wfonam[3] = '\0';
            } else if ( strncmp ( currec->fields[jfld].name, "NAME",
                strlen ( "NAME" ) ) == 0 ) {
                strcpy ( fulnam, currec->fields[jfld].data );
		cst_lstr ( fulnam, &len, &ier );
		fulnam[len] = '\0';
                cst_rspc ( fulnam, &ier );
		abbreviate ( fulnam, 32, shrnam, &ier );
	    } else if ( strncmp ( currec->fields[jfld].name, "LAT",
                strlen("LAT") ) == 0 ) {
                shplat = atof ( currec->fields[jfld].data );
	    } else if ( strncmp ( currec->fields[jfld].name, "LON",
                strlen("LON") ) == 0 ) {
                shplon = atof ( currec->fields[jfld].data );
            }
        }

	if ( ERMISS ( currec->cenlat ) || 
	    ERMISS ( currec->cenlon ) ) {
	    ilat = (int)(ROUNDUP(shplat)*100.);
	    ilon = (int)(ROUNDUP(shplon)*100.);
	} else {
	    ilat = (int)(ROUNDUP(currec->cenlat)*100.);
	    ilon = (int)(ROUNDUP(currec->cenlon)*100.);
	}

        fprintf ( tblfp,
            "%6.6s   %6d %-32.32s -- US %5d %6d %5d %2d %-3.3s\n",
            id, ifips, shrnam, ilat, ilon, 0, 0, wfonam );
    }

    cfl_clos ( tblfp, &ier );
}
Exemplo n.º 10
0
static void tbl_cnty ( shp_record *shprec, int numrec, int *iret )
/************************************************************************
 * tbl_cnty                                                             *
 *                                                                      *
 * This function creates the county station table files.               	*
 *                                                                      *
 * tbl_cnty ( shprec, numrec, iret )                            	*
 *                                                                      *
 * Input parameters:                                                    *
 *      *shprec         shp_record  	Shape record list		*
 *	numrec		int		Total number of records		*
 *                                                                      *
 * Output parameters:                                                   *
 *      *iret           int             Return code                     *
 *                                        0 = Normal                    *
 **                                                                     *
 * Log:                                                                 *
 * R. Tian/SAIC          3/04   	Initial coding                  *
 ***********************************************************************/
{
    shp_record *currec;
    char ctynam[25], shrnam[33], cwanam[10], stabbr[3];
    int ifips, ilat, ilon;
    int irec, jfld, pos, len, ier;
    float shplat, shplon;
    char *ctytbl = COUNTYTBL, *namtbl = COUNTYNAMTBL;
    FILE *tblfp, *namfp;
/*---------------------------------------------------------------------*/
    *iret = 0;

    tblfp = cfl_wopn ( ctytbl, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", ctytbl );
        exit ( -1 );
    }
    namfp = cfl_wopn ( namtbl, &ier );
    if ( ier != 0 ) {
        fprintf ( stderr, "File %s open failed.\n", namtbl );
        exit ( -1 );
    }

    for ( currec = shprec, irec = 0; irec < numrec;
        irec++, currec = currec->nxtrec ) {
        for ( jfld = 0; jfld < currec->numfld; jfld++ ) {
            if ( strncmp ( currec->fields[jfld].name, "COUNTYNAME",
                strlen("COUNTYNAME") ) == 0 ) {
                strcpy ( ctynam, currec->fields[jfld].data );
		cst_lstr ( ctynam, &len, &ier );
		ctynam[len] = '\0';
		cst_rspc ( ctynam, &ier );
		abbreviate ( ctynam, 32, shrnam, &ier );

		/*
		 * Remove "City_of_" from county name
		 */
	        cst_rmst ( shrnam, "City_of_", &pos, shrnam, &ier );

		/*
		 * Remove "Lower_Keys_in_" from county name
		 */
	        cst_rmst ( shrnam, "Lower_Keys_in_", &pos, shrnam, &ier );

		/*
		 * Remove "Outer_Banks_" from county name
		 */
	        cst_rmst ( shrnam, "Outer_Banks_", &pos, shrnam, &ier );

		/*
		 * Remove "Mainland_" from county name
		 */
	        cst_rmst ( shrnam, "Mainland_", &pos, shrnam, &ier );
            } else if ( strncmp ( currec->fields[jfld].name, "STATE",
	        strlen ( "STATE" ) ) == 0 ) {
	        strcpy ( stabbr, currec->fields[jfld].data );
	    } else if ( strncmp ( currec->fields[jfld].name, "CWA",
	        strlen ( "CWA" ) ) == 0 ) {
	        strcpy ( cwanam, currec->fields[jfld].data );
		cst_lstr ( cwanam, &len, &ier );
		cwanam[len] = '\0';
	    } else if ( strncmp ( currec->fields[jfld].name, "FIPS",
                strlen("FIPS") ) == 0 ) {
                ifips = atoi ( currec->fields[jfld].data );
	    } else if ( strncmp ( currec->fields[jfld].name, "LAT",
                strlen("LAT") ) == 0 ) {
                shplat = atof ( currec->fields[jfld].data );
	    } else if ( strncmp ( currec->fields[jfld].name, "LON",
                strlen("LON") ) == 0 ) {
                shplon = atof ( currec->fields[jfld].data );
            }
	}
	if ( strlen ( shrnam ) == (size_t)0 || strlen ( stabbr ) == (size_t)0 ) {
	    continue;
	}

	if ( ERMISS ( currec->cenlat ) || ERMISS ( currec->cenlon ) ) {
	    ilat = (int)(ROUNDUP(shplat)*100.);
	    ilon = (int)(ROUNDUP(shplon)*100.);
	} else {
	    ilat = (int)(ROUNDUP(currec->cenlat)*100.);
	    ilon = (int)(ROUNDUP(currec->cenlon)*100.);
	}

        fprintf ( tblfp, 
          "%2.2sC%3.3d   %6d %-32.32s %2.2s US %5d %6d %5d %2d %-3.3s\n",
          stabbr, ifips%1000, ifips, shrnam, stabbr,
          ilat, ilon, 0, 0, cwanam );
        fprintf ( namfp, 
	  "%-8.8s %6d %-32.32s %2.2s US %5d %6d %5d %2d %-3.3s\n",
	  shrnam, ifips, shrnam, stabbr, ilat, ilon, 0, 0, cwanam );
    }

    cfl_clos ( tblfp, &ier );
    cfl_clos ( namfp, &ier );
}