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(""); }
/* 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 *); }
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; }
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); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }