IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 8610


Ignore:
Timestamp:
Aug 25, 2006, 2:32:39 PM (20 years ago)
Author:
jhoblitt
Message:

add gcc format attributes to psStringAppend(), psStringPrepend(), p_psDBRunQuery(), & p_psDBRunQueryPrepared()
fix all of the format params errors found by the new attributes

Location:
trunk/psLib/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/db/psDB.c

    r8602 r8610  
    1212 *  @author Joshua Hoblitt
    1313 *
    14  *  @version $Revision: 1.86 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2006-08-25 22:02:40 $
     14 *  @version $Revision: 1.87 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2006-08-26 00:32:39 $
    1616 *
    1717 *  Copyright (C) 2005-2006  Joshua Hoblitt, University of Hawaii
     
    12521252        } else if (item->type == PS_DATA_STRING) {
    12531253            // + column name + _ + varchar( + length + )
    1254             psStringAppend(&query, "%s VARCHAR(%s)", item->name, item->data.V);
     1254            psStringAppend(&query, "%s VARCHAR(%s)", item->name, (char *)item->data.V);
    12551255        } else {
    12561256            psError(PS_ERR_BAD_PARAMETER_TYPE, true,
     
    12891289        for (int i = 0; i < psArrayLength(pKeys); i++) {
    12901290            if (i < 1) {
    1291                 psStringAppend(&query, "%s", pKeys->data[i]);
     1291                psStringAppend(&query, "%s", (char *)pKeys->data[i]);
    12921292            } else {
    1293                 psStringAppend(&query, ", %s", pKeys->data[i]);
     1293                psStringAppend(&query, ", %s", (char *)pKeys->data[i]);
    12941294            }
    12951295        }
     
    16421642                // very large TEXT columns that really shouldn't be
    16431643                // used in a where clause...
    1644                 psStringAppend(&query, "%s LIKE '%s'", item->name, item->data.V);
     1644                psStringAppend(&query, "%s LIKE '%s'", item->name, (char *)item->data.V);
    16451645            } else {
    1646                 psStringAppend(&query, "%s = '%s'", item->name, item->data.V);
     1646                psStringAppend(&query, "%s = '%s'", item->name, (char *)item->data.V);
    16471647            }
    16481648        }
  • trunk/psLib/src/db/psDB.h

    r8336 r8610  
    1010 *  @author Joshua Hoblitt
    1111 *
    12  *  @version $Revision: 1.24 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-08-15 02:28:13 $
     12 *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-08-26 00:32:39 $
    1414 *
    1515 *  Copyright 2005 Joshua Hoblitt, University of Hawaii
     
    9090 * @return bool:    true on success
    9191 */
     92#ifdef __GNUC__
    9293bool p_psDBRunQuery(
    9394    psDB *dbh,                         ///< Database handle
    9495    const char *format,                ///< SQL string to execute
    9596    ...                                ///< Arguments for name formatting and metadata item data.
    96 );
     97) __attribute__((format(printf, 2, 3)));
     98
     99#else // __GNUC__
     100bool p_psDBRunQuery(
     101    psDB *dbh,                         ///< Database handle
     102    const char *format,                ///< SQL string to execute
     103    ...                                ///< Arguments for name formatting and metadata item data.
     104);
     105#endif // __GNUC__
    97106
    98107/** Executes a SQL query as a prepared statement
     
    104113 * @return long:    the number of database rows affected
    105114 */
     115#ifdef __GNUC__
    106116long p_psDBRunQueryPrepared(
    107117    psDB *dbh,                          ///< Database handle
     
    109119    const char *format,                 ///< SQL string to execute
    110120    ...
    111 );
     121) __attribute__((format(printf, 3, 4)));
     122#else // __GNUC__
     123long p_psDBRunQueryPrepared(
     124    psDB *dbh,                          ///< Database handle
     125    const psArray *rowSet,              ///< row data as psArray of psMetadata
     126    const char *format,                 ///< SQL string to execute
     127    ...
     128);
     129#endif // __GNUC__
    112130
    113131/** Fetches the result of a SQL query
  • trunk/psLib/src/sys/psString.h

    r8607 r8610  
    1414 *  @author David Robbins, MHPCC
    1515 *
    16  *  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
    17  *  @date $Date: 2006-08-25 22:42:37 $
     16 *  @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
     17 *  @date $Date: 2006-08-26 00:32:39 $
    1818 *
    1919 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    9595 * @return ssize_t:     The length of the new string (excluding '\0')
    9696 */
     97#ifdef __GNUC__
    9798ssize_t psStringAppend(
    9899    char **dest,                        ///< existing string
    99100    const char *format,                 ///< format to append
    100101    ...                                 ///< format arguments
    101 );
     102) __attribute__((format(printf, 2, 3)));
     103#else // __GNUC__
     104ssize_t psStringAppend(
     105    char **dest,                        ///< existing string
     106    const char *format,                 ///< format to append
     107    ...                                 ///< format arguments
     108);
     109#endif // __GNUC__
    102110
    103111/** Appends a format onto a string
     
    121129 * @return ssize_t:     The length of the new string (excluding '\0')
    122130 */
     131#ifdef __GNUC__
    123132ssize_t psStringPrepend(
    124133    char **dest,                        ///< existing string
    125134    const char *format,                 ///< format to append
    126135    ...                                 ///< format arguments
    127 );
     136) __attribute__((format(printf, 2, 3)));
     137# else // __GNUC__
     138    ssize_t psStringPrepend(
     139        char **dest,                        ///< existing string
     140        const char *format,                 ///< format to append
     141        ...                                 ///< format arguments
     142    );
     143#endif // __GNUC__
    128144
    129145/** Prepends a format onto a string
  • trunk/psLib/src/types/psMetadataConfig.c

    r8410 r8610  
    1010*  @author Eric Van Alst, MHPCC
    1111*
    12 *  @version $Revision: 1.73 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2006-08-17 15:39:24 $
     12*  @version $Revision: 1.74 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2006-08-26 00:32:39 $
    1414*
    1515*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    2020#include <ctype.h>
    2121#include <limits.h>
     22#include <inttypes.h>
    2223
    2324#include "psAbort.h"
     
    5758/** Maximum size of a string */
    5859#define MAX_STRING_LENGTH 1024
    59 #define MAXSTR 2256
    6060
    6161
     
    12791279    #define FORMAT_PRIMITIVE_METADATAITEM(type, dataformat) \
    12801280    psStringAppend(&content, "%-15s  %-8s", item->name, #type); \
    1281     psStringAppend(&content, "  " #dataformat, item->data.type); \
     1281    psStringAppend(&content, "  " dataformat, item->data.type); \
    12821282    if ( strncmp(item->comment,"",2) ) { \
    12831283        psStringAppend(&content, " #%s\n", item->comment); \
     
    13151315        break;
    13161316    case PS_DATA_S8:
    1317         FORMAT_PRIMITIVE_METADATAITEM(S8, %d);
     1317        FORMAT_PRIMITIVE_METADATAITEM(S8, "%d");
    13181318        break;
    13191319    case PS_DATA_S16:
    1320         FORMAT_PRIMITIVE_METADATAITEM(S16, %d);
     1320        FORMAT_PRIMITIVE_METADATAITEM(S16, "%d");
    13211321        break;
    13221322    case PS_DATA_S32:
    1323         FORMAT_PRIMITIVE_METADATAITEM(S32, %d);
     1323        FORMAT_PRIMITIVE_METADATAITEM(S32, "%d");
    13241324        break;
    13251325    case PS_DATA_S64:
    1326         FORMAT_PRIMITIVE_METADATAITEM(S32, %ld);
     1326        FORMAT_PRIMITIVE_METADATAITEM(S64, "%"PRId64);
    13271327        break;
    13281328    case PS_DATA_U8:
    1329         FORMAT_PRIMITIVE_METADATAITEM(U8, %u);
     1329        FORMAT_PRIMITIVE_METADATAITEM(U8, "%u");
    13301330        break;
    13311331    case PS_DATA_U16:
    1332         FORMAT_PRIMITIVE_METADATAITEM(U16, %u);
     1332        FORMAT_PRIMITIVE_METADATAITEM(U16, "%u");
    13331333        break;
    13341334    case PS_DATA_U32:
    1335         FORMAT_PRIMITIVE_METADATAITEM(U32, %u);
     1335        FORMAT_PRIMITIVE_METADATAITEM(U32, "%u");
    13361336        break;
    13371337    case PS_DATA_U64:
    1338         FORMAT_PRIMITIVE_METADATAITEM(U64, %lu);
     1338        FORMAT_PRIMITIVE_METADATAITEM(U64, "%"PRIu64);
    13391339        break;
    13401340    case PS_DATA_F32:
    1341         FORMAT_PRIMITIVE_METADATAITEM(F32, %.7g);
     1341        FORMAT_PRIMITIVE_METADATAITEM(F32, "%.7g");
    13421342        break;
    13431343    case PS_DATA_F64:
    1344         FORMAT_PRIMITIVE_METADATAITEM(F64, %.15g);
     1344        FORMAT_PRIMITIVE_METADATAITEM(F64, "%.15g");
    13451345        break;
    13461346    case PS_DATA_STRING:
     
    14251425            psStringAppend(&content, "U64 ");
    14261426            for (int i = 0; i < vector->n; i++) {
    1427                 psStringAppend(&content, "%lu ", vector->data.U64[i]);
     1427                psStringAppend(&content, "%" PRIu64 " ", vector->data.U64[i]);
    14281428            }
    14291429            break;
     
    14491449            psStringAppend(&content, "S64 ");
    14501450            for (int i = 0; i < vector->n; i++) {
    1451                 psStringAppend(&content, "%ld ", vector->data.S64[i]);
     1451                psStringAppend(&content, "%" PRId64 " ", vector->data.S64[i]);
    14521452            }
    14531453            break;
    14541454        case PS_DATA_F32:
    1455             psStringAppend(&content, "F32 ", MAXSTR);
     1455            psStringAppend(&content, "F32 ");
    14561456            for (int i = 0; i < vector->n; i++) {
    14571457                psStringAppend(&content, "%.7g ", vector->data.F32[i]);
     
    14591459            break;
    14601460        case PS_DATA_F64:
    1461             psStringAppend(&content, "F64 ", MAXSTR);
     1461            psStringAppend(&content, "F64 ");
    14621462            for (int i = 0; i < vector->n; i++) {
    14631463                psStringAppend(&content, "%.15g", vector->data.F64[i]);
Note: See TracChangeset for help on using the changeset viewer.