dtinfo subdirectory DtMmdb
authorUlrich Wilkens <mail@uwilkens.de>
Wed, 28 Aug 2013 17:16:37 +0000 (19:16 +0200)
committerJon Trulson <jon@radscan.com>
Fri, 30 Aug 2013 01:41:27 +0000 (19:41 -0600)
159 files changed:
cde/programs/dtinfo/DtMmdb/HardCopy/FPset.h
cde/programs/dtinfo/DtMmdb/HardCopy/HardCopyFP.C
cde/programs/dtinfo/DtMmdb/HardCopy/HardCopyFP.h
cde/programs/dtinfo/DtMmdb/HardCopy/autoNumber.C
cde/programs/dtinfo/DtMmdb/HardCopy/autoNumber.h
cde/programs/dtinfo/DtMmdb/HardCopy/autoNumberFP.C
cde/programs/dtinfo/DtMmdb/Imakefile
cde/programs/dtinfo/DtMmdb/StyleSheet/AttributeList.h
cde/programs/dtinfo/DtMmdb/StyleSheet/BitVector.C
cde/programs/dtinfo/DtMmdb/StyleSheet/BitVector.h
cde/programs/dtinfo/DtMmdb/StyleSheet/DocParser.C
cde/programs/dtinfo/DtMmdb/StyleSheet/DocParser.h
cde/programs/dtinfo/DtMmdb/StyleSheet/Element.h
cde/programs/dtinfo/DtMmdb/StyleSheet/Expression.h
cde/programs/dtinfo/DtMmdb/StyleSheet/Feature.h
cde/programs/dtinfo/DtMmdb/StyleSheet/FeatureSet.C
cde/programs/dtinfo/DtMmdb/StyleSheet/FeatureValue.C
cde/programs/dtinfo/DtMmdb/StyleSheet/FeatureValue.h
cde/programs/dtinfo/DtMmdb/StyleSheet/PathQualifier.C
cde/programs/dtinfo/DtMmdb/StyleSheet/PathQualifier.h
cde/programs/dtinfo/DtMmdb/StyleSheet/PathTable.C
cde/programs/dtinfo/DtMmdb/StyleSheet/PathTable.h
cde/programs/dtinfo/DtMmdb/StyleSheet/Renderer.h
cde/programs/dtinfo/DtMmdb/StyleSheet/Resolver.h
cde/programs/dtinfo/DtMmdb/StyleSheet/SSPath.h
cde/programs/dtinfo/DtMmdb/StyleSheet/defParser.C
cde/programs/dtinfo/DtMmdb/StyleSheet/defToken.C
cde/programs/dtinfo/DtMmdb/StyleSheet/style.C
cde/programs/dtinfo/DtMmdb/StyleSheet/tokenStyle.C
cde/programs/dtinfo/DtMmdb/api/base.C
cde/programs/dtinfo/DtMmdb/api/base.h
cde/programs/dtinfo/DtMmdb/api/info_base.C
cde/programs/dtinfo/DtMmdb/api/info_lib.C
cde/programs/dtinfo/DtMmdb/api/info_lib.h
cde/programs/dtinfo/DtMmdb/api/server.C
cde/programs/dtinfo/DtMmdb/api/smart_ptr.C
cde/programs/dtinfo/DtMmdb/btree/mmdb_btree.C
cde/programs/dtinfo/DtMmdb/btree_berkeley/bt_close.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/bt_open.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/bt_put.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/bt_split.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/bt_utils.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/cdefs.h
cde/programs/dtinfo/DtMmdb/btree_berkeley/compat.h
cde/programs/dtinfo/DtMmdb/btree_berkeley/db.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/mktemp.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/mpool.c
cde/programs/dtinfo/DtMmdb/btree_berkeley/snprintf.c
cde/programs/dtinfo/DtMmdb/compression/code.h
cde/programs/dtinfo/DtMmdb/compression/huffman.C
cde/programs/dtinfo/DtMmdb/compression/huffman.h
cde/programs/dtinfo/DtMmdb/compression/ps.C
cde/programs/dtinfo/DtMmdb/compression/sgml.C
cde/programs/dtinfo/DtMmdb/compression/trie.C
cde/programs/dtinfo/DtMmdb/compression/trie.h
cde/programs/dtinfo/DtMmdb/compression/zip.C
cde/programs/dtinfo/DtMmdb/diskhash/bucket_array.h
cde/programs/dtinfo/DtMmdb/diskhash/disk_bucket.h
cde/programs/dtinfo/DtMmdb/diskhash/disk_hash.C
cde/programs/dtinfo/DtMmdb/diskhash/disk_hash.h
cde/programs/dtinfo/DtMmdb/dstr/bset.C
cde/programs/dtinfo/DtMmdb/dstr/dlist.h
cde/programs/dtinfo/DtMmdb/dstr/heap.C
cde/programs/dtinfo/DtMmdb/dstr/slist.h
cde/programs/dtinfo/DtMmdb/dstr/token_stack.C
cde/programs/dtinfo/DtMmdb/dti_cc/CC_Dlist.C
cde/programs/dtinfo/DtMmdb/dti_cc/CC_Slist.C
cde/programs/dtinfo/DtMmdb/dti_cc/CC_Slist.h
cde/programs/dtinfo/DtMmdb/dti_cc/CC_String.h
cde/programs/dtinfo/DtMmdb/dti_cc/CC_Tokenizer.C
cde/programs/dtinfo/DtMmdb/dti_cc/cc_hdict.C
cde/programs/dtinfo/DtMmdb/dti_cc/cc_hdict.h
cde/programs/dtinfo/DtMmdb/dti_cc/cc_povec.h
cde/programs/dtinfo/DtMmdb/dti_cc/cc_pvect.C
cde/programs/dtinfo/DtMmdb/dti_cc/types.h
cde/programs/dtinfo/DtMmdb/dti_excs/Exception.C
cde/programs/dtinfo/DtMmdb/dti_excs/Exceptions.C
cde/programs/dtinfo/DtMmdb/dti_excs/Exceptions.hh
cde/programs/dtinfo/DtMmdb/dti_excs/Jump_Environment.C
cde/programs/dtinfo/DtMmdb/dynhash/data_t.C
cde/programs/dtinfo/DtMmdb/dynhash/data_t.h
cde/programs/dtinfo/DtMmdb/dynhash/imp_die.h
cde/programs/dtinfo/DtMmdb/hmphf/buckets.C
cde/programs/dtinfo/DtMmdb/hmphf/buckets.h
cde/programs/dtinfo/DtMmdb/hmphf/mphf_funcs.C
cde/programs/dtinfo/DtMmdb/hmphf/params.C
cde/programs/dtinfo/DtMmdb/index/dyn_memory_index.C
cde/programs/dtinfo/DtMmdb/index/fast_mphf.C
cde/programs/dtinfo/DtMmdb/index/index.C
cde/programs/dtinfo/DtMmdb/index/inv_lists.C
cde/programs/dtinfo/DtMmdb/mgrs/misc.C
cde/programs/dtinfo/DtMmdb/mgrs/template_mgr.C
cde/programs/dtinfo/DtMmdb/misc/unique_id.c
cde/programs/dtinfo/DtMmdb/object/composite.C
cde/programs/dtinfo/DtMmdb/object/compressed_pstring.h
cde/programs/dtinfo/DtMmdb/object/cset.C
cde/programs/dtinfo/DtMmdb/object/dl_list.C
cde/programs/dtinfo/DtMmdb/object/handler.h
cde/programs/dtinfo/DtMmdb/object/long_pstring.C
cde/programs/dtinfo/DtMmdb/object/oid_list.C
cde/programs/dtinfo/DtMmdb/object/oid_list.h
cde/programs/dtinfo/DtMmdb/object/oid_t.C
cde/programs/dtinfo/DtMmdb/object/oid_t.h
cde/programs/dtinfo/DtMmdb/object/pstring.C
cde/programs/dtinfo/DtMmdb/object/root.h
cde/programs/dtinfo/DtMmdb/object/short_list.C
cde/programs/dtinfo/DtMmdb/object/tuple.C
cde/programs/dtinfo/DtMmdb/oliasdb/asciiIn_filters.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_book_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_common.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_dlp_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_graphic_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_infolib.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_locator_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_section_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_stylesheet_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/c_api_toc_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/collectionIterator.h
cde/programs/dtinfo/DtMmdb/oliasdb/graphic_hd.C
cde/programs/dtinfo/DtMmdb/oliasdb/graphic_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/mark_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/mmdb.C
cde/programs/dtinfo/DtMmdb/oliasdb/node_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/olias_funcs.C
cde/programs/dtinfo/DtMmdb/oliasdb/olias_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/stylesheet_test.C
cde/programs/dtinfo/DtMmdb/oliasdb/user_base.C
cde/programs/dtinfo/DtMmdb/schema/container_desc.C
cde/programs/dtinfo/DtMmdb/schema/index_desc.C
cde/programs/dtinfo/DtMmdb/schema/object_dict.C
cde/programs/dtinfo/DtMmdb/schema/object_dict.h
cde/programs/dtinfo/DtMmdb/schema/sheet.C
cde/programs/dtinfo/DtMmdb/schema/store_desc.C
cde/programs/dtinfo/DtMmdb/schema/token.C
cde/programs/dtinfo/DtMmdb/storage/abs_storage.C
cde/programs/dtinfo/DtMmdb/storage/chunks_index.h
cde/programs/dtinfo/DtMmdb/storage/lru.C
cde/programs/dtinfo/DtMmdb/storage/page.C
cde/programs/dtinfo/DtMmdb/storage/page.h
cde/programs/dtinfo/DtMmdb/storage/page_cache.C
cde/programs/dtinfo/DtMmdb/storage/page_storage.C
cde/programs/dtinfo/DtMmdb/storage/page_storage.h
cde/programs/dtinfo/DtMmdb/storage/spointer.h
cde/programs/dtinfo/DtMmdb/storage/store_test.C
cde/programs/dtinfo/DtMmdb/storage/unixf_storage.C
cde/programs/dtinfo/DtMmdb/utility/atoi_fast.C
cde/programs/dtinfo/DtMmdb/utility/atoi_pearson.C
cde/programs/dtinfo/DtMmdb/utility/atoi_pearson.h
cde/programs/dtinfo/DtMmdb/utility/atomic_lock.C
cde/programs/dtinfo/DtMmdb/utility/buffer.C
cde/programs/dtinfo/DtMmdb/utility/c_ios.h
cde/programs/dtinfo/DtMmdb/utility/c_streambuf.h
cde/programs/dtinfo/DtMmdb/utility/filebuf.C
cde/programs/dtinfo/DtMmdb/utility/funcs.C
cde/programs/dtinfo/DtMmdb/utility/macro.h
cde/programs/dtinfo/DtMmdb/utility/rw_lock.C
cde/programs/dtinfo/DtMmdb/utility/stream.C
cde/programs/dtinfo/DtMmdb/utility/types.h

index e7a8437385a7f1f49f86203b25f640965cabb990..42fe3fe0ab4cf747a818132fc95941ab38f76d7c 100644 (file)
@@ -55,12 +55,12 @@ public:
   featureProcessorPtr* ptrs;
   int count;
 
+  const char* f_QuaddingString;
+
   const Element* f_element;
   const FeatureSet* f_local;
   const FeatureSet* f_complete;
   const FeatureSet* f_parent;
-
-  const char* f_QuaddingString;
 };
 
 #endif
index 61d490a63fb4b4f116f49024eafb183ac3d510c0..b3354f2f4b0846347b8d791e3a9006ecce7c28e3 100644 (file)
@@ -34,16 +34,20 @@ char* loutFeatureProcessor::empty_string()
 char* 
 loutFeatureProcessor::prepend(const char* header, const char* body)
 {
-   char* x = new char[strlen(header)+strlen(body)+1];
-   strcpy(x, header);
-   strcat(x, body);
+   int hlen = strlen(header);
+   int blen = strlen(body);
+
+   char* x = new char[hlen + blen + 1];
+
+   *((char *) memcpy (x, header, hlen) + hlen) = '\0';
+   *((char *) memcpy (x + hlen, body, blen) + blen) = '\0';
    return x;
 }
 
 void 
 loutFeatureProcessor::handleData(const char *data, unsigned int size, ostream& out)
 {
-   for (int i=0; i<size; i++ )
+   for (unsigned int i=0; i<size; i++ )
      out << data[i];
 }
 
@@ -135,15 +139,13 @@ loutFeatureProcessor::dimensionToCharPtr(const FeatureValue* f,
 
    if ( dimensionToFloat(y, unitOfY, f, u) ) {
 
-        FeatureValueDimension::Unit unit;
-
         if ( u != FeatureValueDimension::NONE ) {
           unitOfY = u;
        }
 
         switch ( unitOfY ) {
           case FeatureValueDimension::INCH:
-            sprintf(dBuf, "%.2fi", y);
+            snprintf(dBuf, sizeof(dBuf), "%.2fi", y);
             break;
 
           case FeatureValueDimension::PICA:
@@ -151,11 +153,11 @@ loutFeatureProcessor::dimensionToCharPtr(const FeatureValue* f,
             break;
 
          case FeatureValueDimension::POINT:
-            sprintf(dBuf, "%.2fp", y);
+            snprintf(dBuf, sizeof(dBuf), "%.2fp", y);
             break;
 
          case FeatureValueDimension::CM:
-            sprintf(dBuf, "%.2fc", y);
+            snprintf(dBuf, sizeof(dBuf), "%.2fc", y);
             break;
 
          case FeatureValueDimension::PIXEL:
index e51fc79d0c8c10b8c22a0bbf13749196b91ab510..369e4768873d7e7bc6d3d1341abcb1261c55de7b 100644 (file)
@@ -122,7 +122,7 @@ protected:
    
 public:
    loutFeatureProcessor(loutFeatureProcessor& x) : 
-    f_change(x.f_change), featureProcessor(x) {};
+    featureProcessor(x), f_change(x.f_change) {};
 
    loutFeatureProcessor(const char* name) : 
      featureProcessor(name), f_change(false) {};
index d0b808461f3710006e6e7955a47d64449d93d2bd..cae4b1f9b1eb1e16f7c6cdcae94b35d0e4ca3d3b 100644 (file)
@@ -139,9 +139,11 @@ const char*
 autoNumberNumeric::getValue()
 {
    char* ptr = f_buf.get_base();
+   int ptrlen = f_buf.buf_sz();
 
    if (f_values.entries())
-     sprintf(ptr, "%s", form("%s%d%s", f_prefix, f_values.top(), f_postfix));
+     snprintf(ptr, ptrlen, "%s",
+               form("%s%d%s", f_prefix, f_values.top(), f_postfix));
    else
      *ptr = 0;
 
@@ -154,7 +156,7 @@ autoNumberNumeric::getValue()
 
 autoNumberCased::autoNumberCased(const char* nm, autoNumberType an_t, 
                                 int delta, enum CaseType ct, const char* prefix, const char* postfix) :
-   f_case(ct), autoNumber(nm, an_t, delta, prefix, postfix)
+   autoNumber(nm, an_t, delta, prefix, postfix), f_case(ct)
 {
 }
 
@@ -204,7 +206,7 @@ int autoNumberAlphabetic::alphaToInt(const char* alpha, enum CaseType a_case)
 {
    int digits = strlen(alpha);
    int i;
-   int offset;
+   int offset = 0;
 
    switch ( a_case ) {
      case UPPER:
@@ -321,9 +323,10 @@ void autoNumberAlphabetic::setNextValue()
 const char* autoNumberAlphabetic::getValue()
 {
    char* ptr = f_buf.get_base();
+   int ptrlen = f_buf.buf_sz();
 
    if (f_values.entries())
-     sprintf(ptr, "%s", form("%s%s%s", f_prefix,
+     snprintf(ptr, ptrlen, "%s", form("%s%s%s", f_prefix,
                     intToAlpha(f_values.top(), f_case), f_postfix));
    else
      *ptr = 0;
@@ -472,6 +475,8 @@ const char* romanCardinals[4][9] =
 const char* 
 autoNumberRoman::ArabicToRoman(int x)
 {
+   unsigned int len, slen;
+
    RomanNumberBuf[0] = 0;
    if ( x > 3999 ) {
       MESSAGE(cerr, "Value too large.");
@@ -481,7 +486,7 @@ autoNumberRoman::ArabicToRoman(int x)
    char* buf = form("%d", x);
 
    int j=strlen(buf)-1;
-   for ( int i=0; i<strlen(buf); i++ ) {
+   for ( unsigned int i=0; i<strlen(buf); i++ ) {
       if ( buf[i] != '0' )
       {
         const char* romanCardinal = romanCardinals[j][buf[i]-'1'];
@@ -498,7 +503,11 @@ autoNumberRoman::ArabicToRoman(int x)
                precise_romanCardinal[k] = tolower(romanCardinal[k]);
            precise_romanCardinal[k] = 0;
         }
-         strcat(RomanNumberBuf, precise_romanCardinal);
+
+         slen = strlen(RomanNumberBuf);
+         len = MIN(strlen(precise_romanCardinal), 256 - 1 - slen);
+         *((char *) memcpy(RomanNumberBuf + slen,
+                          precise_romanCardinal, len) + len) = '\0';
       }
       j--;
    }
index 47d62d9768f537960baca50ce3de77324d8c30f8..f9189ef640f8c5f0dbbff1a212caf6592fd071b3 100644 (file)
@@ -42,7 +42,7 @@ public:
    enum autoNumberType { NUMERIC, ALPHABETIC, ROMAN };
 
    autoNumber(const char* nm, enum autoNumberType, int delta, const char* prefix, const char* postfix);
-   ~autoNumber();
+   virtual ~autoNumber();
 
    void setNumTagsSeen();
 
@@ -59,11 +59,11 @@ public:
 
 protected:
    static buffer f_buf;
+   char* f_name;
+   enum autoNumberType f_type;
    int f_delta;
    char* f_prefix;
    char* f_postfix;
-   char* f_name;
-   enum autoNumberType f_type;
 
    int f_initialValue;
    Stack<int> f_values;
@@ -179,7 +179,7 @@ class autoNumberListT : public CC_TPtrSlist<autoNumber>
 {
 public:
    autoNumberListT() {};
-   ~autoNumberListT() {};
+   virtual ~autoNumberListT() {};
    unsigned int operator==(const autoNumberListT&);
 } ;
 
index bc7d212febfa104ffce95126f97c35109899fd4e..ca20852bcde62bfa59f28fe2640ced203f9859f5 100644 (file)
@@ -284,7 +284,7 @@ autoNumberFP::defineAutoNumber(const char* nm, const FeatureValue* f)
 
    const char* gi = 0;
    autoNumberListT* anList = 0;
-   int i;
+   unsigned int i;
    for (i=0; i<controlList -> length(); i++ ) {
 
       gi = stringToCharPtr((*controlList)[i]);
index 93477866042b03876216d75d06e189f8f6c19120..bab0bf03164f29bc26583dd6bb59c87e0ba66362 100644 (file)
@@ -57,9 +57,9 @@ EXTRALIBRARYDEPS = $(DONES)
 XCOMM redefine TopLevelProject to build DtInfo with standard CDE config dir
 #undef  TopLevelProject
 #define TopLevelProject                DtInfo
-IMAKE_DEFINES = -DTopLevelProject=TopLevelProject \
-               -DProjectTmplFile='<DtInfo.tmpl>' \
-               -DProjectRulesFile='<DtInfo.rules>'
+IMAKE_DEF_DTINFO =  -DTopLevelProject=TopLevelProject \
+                   -DProjectTmplFile='<DtInfo.tmpl>' \
+                   -DProjectRulesFile='<DtInfo.rules>'
 
 MakeSubdirs($(SUBDIRS))
 ForceSubdirs($(SUBDIRS))
index d9b2460d0d3bcac6b5691634882e76ec7bbb1090..b39cced98bab599a8f500f77f2cf3947704be712 100644 (file)
@@ -38,7 +38,7 @@ class AttributeList : private CC_TPtrSlist<Attribute>
 {
 public:
   AttributeList();
-  ~AttributeList();
+  virtual ~AttributeList();
   
   void add(Attribute *);
 
index ca642f0f46c1f5dc31721fd060cb942cb28e2057..bc267f2d12a3e2244db44fa4fcbf8411d0592037 100644 (file)
@@ -51,7 +51,7 @@ void BitVector::setAllBitsTo(unsigned int initValue)
 {
    unsigned int fill = ( initValue == 0 ) ? 0x0 : ~0x0;
 
-   for ( int i=0; i<f_words; i++ )
+   for ( unsigned int i=0; i<f_words; i++ )
      f_array[i]=fill;
 }
 
@@ -70,14 +70,14 @@ void BitVector::setTo(BitVector& v)
    f_bits = v.f_bits;
    f_words = v.f_words;
 
-   for ( int i=0; i<f_words; i++ )
+   for ( unsigned int i=0; i<f_words; i++ )
      f_array[i]=v.f_array[i];
 }
 
 void BitVector::setBitTo(int i, unsigned int x)
 {
-   int wordIndex = i / WORD_SIZE;
-   int bitIndex = i % WORD_SIZE;
+   unsigned int wordIndex = i / WORD_SIZE;
+   unsigned int bitIndex = i % WORD_SIZE;
 
    if ( x == 1 ) {
       if ( wordIndex < f_words - 1 ) 
@@ -106,20 +106,20 @@ void BitVector::recordPositions(unsigned int PTPos, unsigned int BITPos)
 
 unsigned int BitVector::getBit(int i)
 {
-   int wordIndex = i / WORD_SIZE;
-   int bitIndex = i % WORD_SIZE;
+   unsigned int wordIndex = i / WORD_SIZE;
+   unsigned int bitIndex = i % WORD_SIZE;
 
    if ( wordIndex < f_words - 1 ) 
-         return BIT_TEST(f_array[wordIndex], (0x1 << bitIndex)) ? 1 : 0;
+         return BIT_TEST((int)f_array[wordIndex], (0x1 << bitIndex)) ? 1 : 0;
    else
-         return BIT_TEST(f_array[wordIndex], 
+         return BIT_TEST((int)f_array[wordIndex],
                  (0x1 << (WORD_SIZE - f_bits % WORD_SIZE + bitIndex))
                         ) ? 1 : 0;
 }
 
 BitVector& BitVector::operator &=(BitVector& b)
 {
-   for ( int i=0; i<f_words; i++ )
+   for ( unsigned int i=0; i<f_words; i++ )
      f_array[i] &= b.f_array[i];
 
    return *this;
@@ -127,7 +127,7 @@ BitVector& BitVector::operator &=(BitVector& b)
 
 BitVector& BitVector::operator ^=(BitVector& b)
 {
-   for ( int i=0; i<f_words; i++ )
+   for ( unsigned int i=0; i<f_words; i++ )
      f_array[i] ^= b.f_array[i];
 
    return *this;
@@ -135,7 +135,7 @@ BitVector& BitVector::operator ^=(BitVector& b)
 
 BitVector& BitVector::operator |=(BitVector& b)
 {
-   for ( int i=0; i<f_words; i++ )
+   for ( unsigned int i=0; i<f_words; i++ )
      f_array[i] |= b.f_array[i];
 
    return *this;
@@ -146,7 +146,7 @@ BitVector& BitVector::shiftRightOneBit()
    unsigned int msb = 0;
    unsigned int lsb = 0;
 
-   for ( int i=0; i<f_words; i++ ) {
+   for ( unsigned int i=0; i<f_words; i++ ) {
      lsb = ( BIT_TEST(f_array[i], 0x1) ) ? 0x1 : 0x0;
      f_array[i] = f_array[i] >> 1;   
      f_array[i] |= msb;
@@ -164,8 +164,8 @@ BitVector& BitVector::shiftLeftOneBit()
    unsigned int lsb = 0;
 
 
-   for ( int i=f_words-1; i>=0; i++ ) {
-     msb = ( BIT_TEST(f_array[i], wordWithMSBSet) ) ? wordWithMSBSet : 0x0;
+   for ( unsigned int i=f_words-1; i>=0; i++ ) {
+     msb = (BIT_TEST((int)f_array[i], wordWithMSBSet)) ? wordWithMSBSet : 0x0;
      f_array[i] = f_array[i] << 1;   
      f_array[i] |= lsb;
      lsb = msb;
index 2579e26de95ab7c92a5aee4768df75ee71cef086..36249691b679c78db8ccb1ea6a9989302a5a6656 100644 (file)
@@ -60,10 +60,10 @@ typedef CC_TValSlistIterator<posRecord> positionArrayIteratorT;
 ///////////////////////////////////////////////////////
 class BitVector 
 {
-   positionArrayT *f_positionArray;
    unsigned int *f_array;
    unsigned int f_bits;
    unsigned int f_words;
+   positionArrayT *f_positionArray;
 
 public:
    BitVector(int bits, unsigned int initValue);
index d3f9f59c22174e63087d5acd884ae6b0ff7f6d11..57142d1149a933610063429eae2e903eade5c449 100644 (file)
@@ -39,8 +39,8 @@
 #if defined(SC3) || defined(__osf__)
 static ostrstream& terminate(ostrstream& ost)
 {
-    char* string = ost.str();
-    *(string + ost.pcount()) = 0;
+    char* pstring = ost.str();
+    *(pstring + ost.pcount()) = '\0';
 
     return ost;
 }
@@ -53,7 +53,7 @@ DocParser::DocParser(Resolver &r)
   f_output(f_buffer, DATA_BUF_SIZ)
 #else
   f_streambuf(new stringbuf()),
-  f_output(f_streambuf)
+  f_output()
 #endif
 {
 }
@@ -81,6 +81,8 @@ DocParser::parse(istream &input)
 unsigned int
 DocParser::rawParse(istream &input)
 {
+  string data;
+
   input.unsetf(ios::skipws);
 
   f_ignoring_element = 0 ;
@@ -93,18 +95,15 @@ DocParser::rawParse(istream &input)
        Symbol name(gElemSymTab->intern(terminate(f_output).str()));
        f_output.rdbuf()->freeze(0);
 #else
-       char *data = (char *)f_streambuf->str().c_str();
+       data = f_output.str().c_str();
 
 /*
 MESSAGE(cerr, "StartTag case:");
-debug(cerr, f_streambuf->pcount());
-debug(cerr, data);
+debug(cerr, f_output.str().size());
+debug(cerr, data.c_str());
 */
 
-#if !defined(SC3) && !defined(__osf__)
-       data[f_streambuf->str().size()] = 0;
-#endif
-       Symbol name(gElemSymTab->intern(data));
+       Symbol name(gElemSymTab->intern(data.c_str()));
 #endif
        process(input, f_output, name, 1, 1);
       }
@@ -139,7 +138,7 @@ update_last_seen_child_name(Symbol*& last_seen_child_name, unsigned int& child_r
 }
 
 void
-DocParser::process(istream &input, ostream &output,
+DocParser::process(istream &input, ostringstream &output,
                   const Symbol &name,
                   unsigned int sibling_number, unsigned int this_sibling_number)
 {
@@ -151,6 +150,11 @@ DocParser::process(istream &input, ostream &output,
 
   unsigned int child = 1 ;     // sibling numbers for child elements 
 
+#if !defined(SC3) && !defined(__osf__)
+  string pstring;
+#endif
+  string data;
+
   char c ;
   while ((input >> c) && (c == '\n'));
   input.putback(c);
@@ -193,11 +197,11 @@ DocParser::process(istream &input, ostream &output,
 
            process(input, output, name, child++, child_relative_sibling_number);
 #else
-           char *data = (char *)f_streambuf->str().c_str();
-#if !defined(SC3)  && !defined(__osf__)
-           data[f_streambuf->str().size()] = 0;
-#endif
-           Symbol name(gElemSymTab->intern(data));
+           data = f_output.str().c_str();
+//#if !defined(SC3)  && !defined(__osf__)
+//         data[f_output.str().size()] = '\0';
+//#endif
+           Symbol name(gElemSymTab->intern(data.c_str()));
            update_last_seen_child_name(last_seen_child_name, 
                                 child_relative_sibling_number, name);
 
@@ -211,17 +215,17 @@ DocParser::process(istream &input, ostream &output,
 #ifdef DEBUG
          {
 #if defined(SC3) || defined(__osf__)
-           char *data = terminate(f_output).str();
+           data = terminate(f_output).str();
            f_output.rdbuf()->freeze(0);
 #else
-           char *data = (char*)f_streambuf->str().c_str();
+           data = f_output.str().c_str();
 //#ifdef _IBMR2
-#if !defined(SC3)  && !defined(__osf__)
-           data[f_streambuf->str().size()] = 0;
-#endif
+//#if !defined(SC3)  && !defined(__osf__)
+//         data[f_output.str().size()] = '\0';
+//#endif
 #endif
-           cerr << "EndTag: " << data << endl;
-           assert(gElemSymTab->intern(data) == name);
+           cerr << "EndTag: " << data.c_str() << endl;
+           assert(gElemSymTab->intern(data.c_str()) == name);
          }
 #endif
 
@@ -312,20 +316,14 @@ DocParser::process(istream &input, ostream &output,
                //  and increment the pcount, so we must make sure it gets
                //  called first
 #if defined(SC3) || defined(__osf__)
-               char *string = terminate(f_output).str();
+               char *pstring = terminate(f_output).str();
                int   size = f_output.pcount();
-               f_resolver.data(string, size);
+               f_resolver.data(pstring, size);
                f_output.rdbuf()->freeze(0);
 #else
-               char *string = (char *)f_streambuf->str().c_str();
-//#ifdef _IBMR2
-#if !defined(SC3) && !defined(__osf__)
-               string[f_streambuf->str().size()] = 0;
-               int   size = f_streambuf->str().size() ;
-#else
-               int   size = f_streambuf->pcount() - 1 ;
-#endif
-               f_resolver.data(string, size);
+               pstring = f_output.str().c_str();
+               int   size = pstring.size() + 1;
+               f_resolver.data(pstring.c_str(), size);
 #endif
              }
          }
@@ -340,25 +338,18 @@ DocParser::process(istream &input, ostream &output,
 /////////////////////////////
 // second child and beyond.
 /////////////////////////////
+             data = f_output.str().c_str();
 #if defined(SC3) || defined(__osf__)
-             char *data = f_output.str();
-             *(data + f_output.pcount()) = 0;
              f_output.rdbuf()->freeze(0);
-#else
-             char *data = (char *)f_streambuf->str().c_str();
-//#ifdef _IBMR2
-#if !defined(SC3) && !defined(__osf__)
-              data[f_streambuf->str().size()] = 0;
-#endif
 #endif
 
 /*
 MESSAGE(cerr, "StartTag case2");
 debug(cerr, data);
-debug(cerr, f_streambuf->pcount ());
+debug(cerr, f_output.str().size());
 */
 
-             Symbol name(gElemSymTab->intern(data));
+             Symbol name(gElemSymTab->intern(data.c_str()));
              update_last_seen_child_name(last_seen_child_name, 
                                 child_relative_sibling_number, name);
 
@@ -382,21 +373,15 @@ debug(cerr, f_streambuf->pcount ());
                  //  and increment the pcount, so we must make sure it gets
                  //  called first
 #if defined(SC3) || defined(__osf__)
-                 char *string = f_output.str();
+                 char *pstring = f_output.str();
                  int   size = f_output.pcount();
-                 *(string + size) = 0;
-                 f_resolver.data(string, size);
+                 *(pstring + size) = 0;
+                 f_resolver.data(pstring, size);
                  f_output.rdbuf()->freeze(0);
 #else
-                 char *string = (char *)f_streambuf->str().c_str();
-//#ifdef _IBMR2
-#if !defined(SC3) && !defined(__osf__)
-                 string[f_streambuf->str().size()] = 0;
-                 int   size = f_streambuf->str().size() ;
-#else
-                 int   size = f_streambuf->pcount() - 1 ;
-#endif
-                 f_resolver.data(string, size);
+                 pstring = f_output.str().c_str();
+                 int   size = pstring.size() + 1;
+                 f_resolver.data(pstring.c_str(), size);
 #endif
                }
            }
@@ -404,17 +389,13 @@ debug(cerr, f_streambuf->pcount ());
 #ifdef DEBUG
       {
 #if defined(SC3) || defined(__osf__)
-       char *data = terminate(f_output).str();
+       data = terminate(f_output).str();
        f_output.rdbuf()->freeze(0);
 #else
-       char *data = (char*)f_streambuf->str().c_str();
-//#ifdef _IBMR2
-#if !defined(SC3) && !defined(__osf__)
-       data[f_streambuf->str().size()] = 0;
+       data = f_output.str().c_str();
 #endif
-#endif
-       cerr << "EndTag: " << data << endl;
-       assert(gElemSymTab->intern(data) == name);
+       cerr << "EndTag: " << data.c_str() << endl;
+       assert(gElemSymTab->intern(data.c_str()) == name);
       }
 #endif
       // hit end tag, end processing
@@ -436,10 +417,13 @@ debug(cerr, f_streambuf->pcount ());
 
 
 void
-DocParser::process_attributes(istream &input, ostream &output,
+DocParser::process_attributes(istream &input, ostringstream &output,
                              AttributeList *&attrs,
                              AttributeList *&olias_attrs)
 {
+#if !defined(SC3) && !defined(__osf__)
+  string theData;
+#endif
   TagType tt ;
 
   Attribute* newAttribute = 0;
@@ -447,8 +431,6 @@ DocParser::process_attributes(istream &input, ostream &output,
   AttributeList* orig_attrs = attrs;
   AttributeList* orig_olias_attrs = olias_attrs;
 
-  char *theData = 0;
-
   mtry {
      while ((tt = read_tag(input,output)) != NoTag)
        {
@@ -456,10 +438,8 @@ DocParser::process_attributes(istream &input, ostream &output,
        {
        case StartTag:
           {
-//#ifdef _IBMR2
 #if !defined(SC3) && !defined(__osf__)
-         theData = (char *)f_streambuf->str().c_str();
-          theData[f_streambuf->str().size()] = 0;
+         theData = f_output.str().c_str();
 #endif
          if (!attrs)
            attrs = new AttributeList ;
@@ -468,13 +448,9 @@ DocParser::process_attributes(istream &input, ostream &output,
                process_attribute(input, output,
 #if defined(SC3) || defined(__osf__)
                                  gSymTab->intern(terminate(f_output).str()),
-#else
-//#ifdef _IBMR2
-#if !defined(SC3)  && !defined(__osf__)
-                                 gSymTab->intern(theData),
-#else
                                  gSymTab->intern(f_streambuf->str()),
-#endif
+#else
+                                 gSymTab->intern(theData.c_str()),
 #endif
                                          StartTag
                                 );
@@ -488,10 +464,8 @@ DocParser::process_attributes(istream &input, ostream &output,
          throw(CASTDPUTEXCEPT docParserUnexpectedTag());
          break;
        case OliasAttribute:
-//#ifdef _IBMR2
 #if !defined(SC3) && !defined(__osf__)
-         theData = (char *)f_streambuf->str().c_str();
-          theData[f_streambuf->str().size()] = 0;
+         theData = f_output.str().c_str();
 #endif
          // mirrors attribute 
          if (!olias_attrs)
@@ -501,13 +475,9 @@ DocParser::process_attributes(istream &input, ostream &output,
                process_attribute(input, output,
 #if defined(SC3) || defined(__osf__)
                                  gSymTab->intern(terminate(f_output).str()),
-#else
-//#ifdef _IBMR2
-#if !defined(SC3)  && !defined(__osf__)
-                                 gSymTab->intern(theData),
-#else
                                  gSymTab->intern(f_streambuf->str()),
-#endif
+#else
+                                 gSymTab->intern(theData.c_str()),
 #endif
                                          OliasAttribute
                                 );
@@ -540,9 +510,11 @@ DocParser::process_attributes(istream &input, ostream &output,
 }
 
 Attribute *
-DocParser::process_attribute(istream &input, ostream &output,
+DocParser::process_attribute(istream &input, ostringstream &output,
                             const Symbol &name, TagType tt)
 {
+  string data;
+
   //ON_DEBUG(cerr << "process_attribute: " << name << endl);
 
 // If the attribute is OLIAS internal, we use DocParser's 
@@ -562,14 +534,11 @@ DocParser::process_attribute(istream &input, ostream &output,
   char *data = f_output.str();
   *(data + f_output.pcount()) = 0;
   f_output.rdbuf()->freeze(0);
+  Attribute *attr = new Attribute(name, strdup(data));
 #else
-  char *data = (char *)f_streambuf->str().c_str();
-//#ifdef _IBMR2
-#if !defined(SC3)  && !defined(__osf__)
-  data[f_streambuf->str().size()] = 0;
-#endif
+  data = f_output.str().c_str();
+  Attribute *attr = new Attribute(name, strdup(data.c_str()));
 #endif
-  Attribute *attr = new Attribute(name, strdup(data));
 
   switch (read_tag(input, output))
     {
@@ -593,7 +562,7 @@ DocParser::process_attribute(istream &input, ostream &output,
 
 
 DocParser::TagType
-DocParser::read_tag(istream &input, ostream &output)
+DocParser::read_tag(istream &input, ostringstream &output)
 {
   output.seekp(streampos(0));
 
@@ -643,13 +612,14 @@ DocParser::read_tag(istream &input, ostream &output)
   // get (remainder of) tag name 
   while ((input >> c) && (c != '>'))
     output << c ;
+  output << ends;
 
   return tt ;
 }
 
 
 void
-DocParser::read_data(istream &input, ostream &output)
+DocParser::read_data(istream &input, ostringstream &output)
 {
   char c ;
 
@@ -701,6 +671,8 @@ DocParser::read_data(istream &input, ostream &output)
       output << c;
     }
 
+  output << ends;
+
   // can never run out of input while reading data, tags must be balanced
   if (input.eof())
     throw(CASTDPUEEXCEPT docParserUnexpectedEof());
index c2ba160c498efa78838da7c4d7e43e0a87908ace..1c763311020364baf9c818037b5505f95825e11b 100644 (file)
@@ -64,29 +64,29 @@ public:
   unsigned int rawParse(istream &);
 
 protected:
-  virtual void read_data(istream &, ostream &);
+  virtual void read_data(istream &, ostringstream &);
 
 private:
   
-  void         process(istream &, ostream &, const Symbol &tagname, 
+  void         process(istream &, ostringstream &, const Symbol &tagname,
                        unsigned int sibling_number,
                        unsigned int relative_sibling_number);
-  TagType      read_tag(istream &, ostream &);
-  void         process_entity(istream &, ostream &);
+  TagType      read_tag(istream &, ostringstream &);
+  void         process_entity(istream &, ostringstream &);
 
-  void         process_attributes(istream &, ostream &,
+  void         process_attributes(istream &, ostringstream &,
                                   AttributeList *&attrs,
                                   AttributeList *&olias_attrs);
-  Attribute    *process_attribute(istream &, ostream &, const Symbol &name, TagType);
+  Attribute    *process_attribute(istream &, ostringstream &, const Symbol &name, TagType);
   
 private:
   unsigned int f_ignoring_element ;
+  Resolver      &f_resolver;
 #if defined(SC3) || defined(__osf__)
   char* const  f_buffer;
   ostrstream   f_output;
 #else
   stringbuf    *f_streambuf;
-  ostream      f_output;
+  ostringstream        f_output;
 #endif
-  Resolver     &f_resolver;
 };
index 6ce8c61b5579aeacc656ac9306acfa1a3ddf3b6f..7a15241392d7f2f209624ece7c960bf7895aef4d 100644 (file)
@@ -69,17 +69,17 @@ public:
   ostream &print(ostream &) const ;
 
 private:
-  unsigned int         f_freeAttrLists;
+  Symbol               f_gi ;
   unsigned int         f_sibling_number ; // counting all children of a parent
+  AttributeList               *f_attributes;
+  AttributeList               *f_olias_attributes;
+  unsigned int         f_freeAttrLists;
   unsigned int         f_relative_sibling_number ; // counting all 
                                                    // consecutive children
                                                    // of same types of a
                                                    // parent
   int                  f_last_child;
   int                  f_relatively_last_child;
-  Symbol               f_gi ;
-  AttributeList               *f_attributes;
-  AttributeList               *f_olias_attributes;
 };
 
 inline
index 357ee204c1b35d102aba73227ec36c53c91e57af..ac7b89c52038da66a33d6f441ffa803de5d3cc1a 100644 (file)
@@ -57,7 +57,7 @@ class Expression
 public:
   Expression(TermNode *root);
   Expression(const Expression&);
-  ~Expression();
+  virtual ~Expression();
 
   virtual FeatureValue *evaluate() const;
   ostream &print(ostream &) const; 
index 67d58329d10fb68477c2e7c9ec07fae8e07eb00c..561404e57f9a716e285c999d8951bcd86d6d6fa4 100644 (file)
@@ -107,7 +107,7 @@ public:
   FeatureSet(const FeatureSet &); /* copy */
   FeatureSet(const FeatureSet &,
             const FeatureSet &); /* merge */
-  ~FeatureSet();
+  virtual ~FeatureSet();
 
   void                 add(Feature *);
   const Feature               *lookup(const Symbol *) const ;
index 53f9efa082b0738516546ce7e9634891826bc86d..0a2ca070e2a23b05baf5fea21b5272179b283268 100644 (file)
@@ -143,7 +143,7 @@ FeatureSet::print(ostream &o) const
   // cast to non-const to get iterator 
   CC_TPtrSlistIterator<Feature> next(*(CC_TPtrSlist<Feature>*)this);
   
-  int i;
+  unsigned int i;
   for (i = 0 ; i < f_print_indent_level; i++)
     o << "  " ;
 
@@ -153,7 +153,7 @@ FeatureSet::print(ostream &o) const
 
   while (++next)
     {
-      for (int i = 0 ; i < f_print_indent_level; i++)
+      for (unsigned int i = 0 ; i < f_print_indent_level; i++)
        o << "  " ;
       o << *next.key() << endl ;
     }
index d20c2f76cd803c13b9380d2ab895d8f35b4dd3cb..378fd3a0bfd5cd27735e3fbaee5a0c82f1870432 100644 (file)
@@ -2336,23 +2336,23 @@ FeatureValueDimension::doConvert(Unit unit) const
 ///////////////////////////////////////////////////
 
 FeatureValueArray::FeatureValueArray(const char* nm, int size) :
-   f_name(strdup(nm)), FeatureValue(array), pointer_vector<FeatureValue>(size, 0) 
+   FeatureValue(array), pointer_vector<FeatureValue>(size, 0), f_name(strdup(nm))
 {
 }
 
 FeatureValueArray::FeatureValueArray(const FeatureValueArray& x) :
-   f_name(strdup(x.f_name)), FeatureValue(array), 
-   pointer_vector<FeatureValue>(x.length(), 0)
+   FeatureValue(array), pointer_vector<FeatureValue>(x.length(), 0),
+   f_name(strdup(x.f_name))
 {
    mtry
     {
-      for ( int i=0; i<length(); i++ )
+      for ( unsigned int i=0; i<length(); i++ )
          (*this)[i] = x[i] -> clone();
       return;
     }
    mcatch_any()
     {
-      for ( int i=0; i<length(); i++ )
+      for ( unsigned int i=0; i<length(); i++ )
          delete (*this)[i];
       rethrow;
     }
@@ -2361,7 +2361,7 @@ FeatureValueArray::FeatureValueArray(const FeatureValueArray& x) :
 
 FeatureValueArray::~FeatureValueArray()
 {
-   for ( int i=0; i<length(); i++ )
+   for ( unsigned int i=0; i<length(); i++ )
      delete (*this)[i];
 
    delete f_name;
@@ -2374,7 +2374,7 @@ FeatureValueArray::evaluate() const
 
   mtry
     {
-      for ( int i=0; i<length(); i++ ) {
+      for ( unsigned int i=0; i<length(); i++ ) {
         (*result)[i] = (*this)[i] -> evaluate();
       }
       return result;
@@ -2392,7 +2392,7 @@ FeatureValueArray::print(ostream& out) const
 {
    out << f_name << "[\n";
 
-   for ( int i=0; i<length(); i++ ) {
+   for ( unsigned int i=0; i<length(); i++ ) {
 
      if ( (*this)[i] == 0 ) {
         MESSAGE(cerr, form("%d is a null slot", i));
index 4a185c5b6671e27d9a6ba404c3e99d0b3ea4c75c..f220f54f80bed08a5fcdf4898568a2a29406e827 100644 (file)
@@ -644,8 +644,8 @@ public:
 
 private:
   FeatureValue *f_value ;
-  Unit         f_unit ;
   float         f_cachedValue;
+  Unit         f_unit ;
 
 private:
   float convert(float y, Unit dimensionOfy, Unit dimensionOfReturn);
index b60c5ef133eb93db35ba752ce38462f49e7ca8a5..d1615236a92a0415486c9423888fb9db8a2561c9 100644 (file)
@@ -70,7 +70,7 @@ PQPosition::evaluate(const Element &element)
 {
    switch ( f_optype ) {
      case PQEqual: 
-       if ( f_position == element.sibling_number() ||
+       if ( f_position == (int) element.sibling_number() ||
             ( f_position==-1 && element.last_child() )
           )
           return PQTrue;
@@ -85,7 +85,7 @@ PQPosition::evaluate(const Element &element)
           else
             return PQFalse;
        } else
-          if ( f_position != element.sibling_number() )
+          if ( f_position != (int) element.sibling_number() )
              return PQTrue;
           else
              return PQFalse;
@@ -104,7 +104,7 @@ PQSibling::evaluate(const Element &element)
 {
    switch ( f_optype ) {
      case PQEqual: 
-       if ( f_sibling == element.relative_sibling_number() ||
+       if ( f_sibling == (int) element.relative_sibling_number() ||
             ( f_sibling ==-1 && element.relatively_last_child() )
           )
           return PQTrue;
@@ -119,7 +119,7 @@ PQSibling::evaluate(const Element &element)
           else
             return PQFalse;
        } else
-          if ( f_sibling != element.relative_sibling_number() )
+          if ( f_sibling != (int) element.relative_sibling_number() )
              return PQTrue;
           else
              return PQFalse;
index cc874dd55ed1277a717e564c054dcdfe1b78f812..d491b8d4bab1253a66e7568ce33131038da08c5d 100644 (file)
@@ -74,8 +74,8 @@ public:
   virtual PQBoolean evaluate(const Element &);
 
 private:
-  int  f_position ;
   PQEqOp       f_optype;
+  int  f_position ;
 };
 
 class PQSibling: public PQExpr
@@ -85,8 +85,8 @@ public:
   virtual PQBoolean evaluate(const Element &);
 
 private:
-  int  f_sibling;
   PQEqOp       f_optype;
+  int  f_sibling;
 };
 
 class PQAttributeSelector : public PQExpr
index 1bb10cd4add18d6842c159536683038b100bcef9..2f73d3250e946539b1efef167cfff4da943d694d 100644 (file)
@@ -41,7 +41,7 @@ EncodedPath::~EncodedPath()
 }
 
 EncodedPath::EncodedPath(SSPath* p, unsigned int asPattern) :
-   f_size(p -> entries()), f_SVectors(letterHash), f_patternSize(0),
+   f_size(p -> entries()), f_patternSize(0), f_SVectors(letterHash),
    f_wildCard(gElemSymTab -> wildCardId()), 
    f_unlimitedWildCard(gElemSymTab -> unlimitedWildCardId()),
    f_copyOfS(new BitVector(WORD_SIZE, 0))
@@ -478,7 +478,7 @@ void PathTable::initLastSymIndex()
 {
    f_lastSymIndexCount = gElemSymTab -> IdsAssigned()+1;
    f_lastSymIndex = new CC_TPtrDlist_PathFeature_Ptr_T[f_lastSymIndexCount];
-   for (int i=0; i<f_lastSymIndexCount; i++)
+   for (unsigned int i=0; i<f_lastSymIndexCount; i++)
       f_lastSymIndex[i] = new CC_TPtrDlist<PathFeature>;
       
 
index 5300b5d0421bdfeffff4f1ca16c715ccc4868488..d3846f47ca9760c992c9df62d47e62bc14151173 100644 (file)
@@ -47,15 +47,15 @@ typedef unsigned int LetterType;
 
 class EncodedPath 
 {
-   int f_patternSize;
    int f_size;
+   int f_patternSize;
    LetterType* f_array;
 
+   hashTable<LetterType, BitVector> f_SVectors;
+
    LetterType f_wildCard;
    LetterType f_unlimitedWildCard;
 
-   hashTable<LetterType, BitVector> f_SVectors;
-
    BitVector* f_copyOfS; // copy of S vector, used in match()
 
 public:
@@ -98,7 +98,7 @@ class PathFeature : public basePathFeature
 
 public:
    PathFeature(SSPath* p,FeatureSet* f,EncodedPath* e=0, unsigned int id=0): 
-      f_encodedPath(e), f_id(id), basePathFeature(p, f) {};
+      basePathFeature(p, f), f_id(id), f_encodedPath(e) {};
    ~PathFeature();
 
    EncodedPath* encodedPath() { return f_encodedPath; };
@@ -117,7 +117,7 @@ class PathFeatureList : public CC_TPtrDlist<PathFeature>
 
 public:
    PathFeatureList() {};
-   ~PathFeatureList();
+   virtual ~PathFeatureList();
 
    void appendList(PathFeatureList&);
 };
index b06de109b07bf144a6bf0b7888d6ef3e0f21c120..863aea11fbc5162aea901577d84645f7e410218c 100644 (file)
@@ -47,7 +47,7 @@ class Renderer : public Destructable
 {
 public:
   Renderer() {};
-  ~Renderer() {};
+  virtual ~Renderer() {};
 
   virtual FeatureSet *initialize() = 0;        /* return default feature set */
 
index aecbb9a03e877dea924c1015910457287d1db0e5..90df5e17d5678d2613bc1d8efb342cea8e6c94cf 100644 (file)
@@ -71,12 +71,12 @@ public:
 
 private:
   SSPath               f_path ;
-  ResolverStack                f_resolverStack;
   PathTable           &f_pathTable;
 
    // NOTE: this one could be a pointer so we can change them on the fly
   Renderer            &f_Renderer;
 
+  ResolverStack                f_resolverStack;
 };
 
 #endif /* _Resolver_h */
index eaa91e8e76157c61da90e08f75483f03cc6b69bc..39258cb51bbabf1e350777a5c009097ee7844574 100644 (file)
@@ -75,7 +75,7 @@ private:
 public:
    SSPath(char*, unsigned int assignId); // for test purpose
    SSPath();
-   ~SSPath();
+   virtual ~SSPath();
 
 // this call update f_containPathQualifier field
    void appendPathTerm(PathTerm*);
index f8c1d5d4ed0e1f81ed5b4218cc3eecad45264726..558a60ebb4c87d36434d69fa57fb7c43e82d8e62 100644 (file)
@@ -22,7 +22,7 @@
  */
 // $TOG: defParser.C /main/5 1997/12/23 11:16:25 bill $
 #ifndef lint
-static char defParsersccsid[] = "@(#)yaccpar   1.8 (Berkeley) 01/20/90";
+static const char defParsersccsid[] = "@(#)yaccpar     1.8 (Berkeley) 01/20/90";
 #endif
 #define defParserBYACC 1
 #include <stdio.h>
@@ -230,7 +230,7 @@ defParserparse()
     *defParserssp = defParserstate = 0;
 
 defParserloop:
-    if (defParsern = defParserdefred[defParserstate]) goto defParserreduce;
+    if ((defParsern = defParserdefred[defParserstate])) goto defParserreduce;
     if (defParserchar < 0)
     {
         if ((defParserchar = defParserlex()) < 0) defParserchar = 0;
index 67f618a65a07f2d6b4816198e93c233b7316d97b..15dae7df25d0604cf86d3c6e8e3b1438b368250f 100644 (file)
@@ -483,7 +483,9 @@ static int defParser_did_buffer_switch_on_eof;
 static defParser_state_type defParser_get_previous_state defParser_PROTO(( void ));
 static defParser_state_type defParser_try_NUL_trans defParser_PROTO(( defParser_state_type current_state ));
 static int defParser_get_next_buffer defParser_PROTO(( void ));
+#if 0
 static void defParserunput defParser_PROTO(( defParser_CHAR c, defParser_CHAR *buf_ptr ));
+#endif
 void defParserrestart defParser_PROTO(( FILE *input_file ));
 void defParser_switch_to_buffer defParser_PROTO(( defParser_BUFFER_STATE new_buffer ));
 void defParser_load_buffer_state defParser_PROTO(( void ));
@@ -1055,6 +1057,7 @@ register defParser_state_type defParser_current_state;
     }
 
 
+#if 0
 #ifdef defParser_USE_PROTOS
 static void defParserunput( defParser_CHAR c, register defParser_CHAR *defParser_bp )
 #else
@@ -1098,6 +1101,7 @@ register defParser_CHAR *defParser_bp;
      */
     defParser_DO_BEFORE_ACTION; /* set up defParsertext again */
     }
+#endif
 
 
 #ifdef __cplusplus
index 2605417da53ae766a7a9d3f91f9602a088368e24..deefffce255e9ebf8afb9f5941792daf1ce6e90d 100644 (file)
@@ -22,7 +22,7 @@
  */
 // $TOG: style.C /main/6 1998/04/17 11:51:49 mgreess $
 #ifndef lint
-static char stylesccsid[] = "@(#)yaccpar       1.8 (Berkeley) 01/20/90";
+static const char stylesccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/90";
 #endif
 #define styleBYACC 1
 #include <stdio.h>
@@ -70,7 +70,7 @@ const char* toUpperCase(unsigned char* string)
 {
    static char buffer[512];
    int j=0;
-   for ( int i=0; i<strlen((const char*)string); i++ ) 
+   for ( unsigned int i=0; i<strlen((const char*)string); i++ )
    {
                 if (islower(string[i]))
                   buffer[j] = toupper(string[i]) ;
@@ -488,7 +488,7 @@ styleparse()
     *stylessp = stylestate = 0;
 
 styleloop:
-    if (stylen = styledefred[stylestate]) goto stylereduce;
+    if ((stylen = styledefred[stylestate])) goto stylereduce;
     if (stylechar < 0)
     {
         if ((stylechar = stylelex()) < 0) stylechar = 0;
@@ -1123,7 +1123,7 @@ case 63:
           /* char handling better too? */
            if ( gGI_CASE_SENSITIVE == false )
              {
-               for (int i=0; i<strlen((const char*)stylevsp[0].charPtrData); i++)
+               for (unsigned int i=0; i<strlen((const char*)stylevsp[0].charPtrData); i++)
                  if ( islower(stylevsp[0].charPtrData[i]) )
                    stylevsp[0].charPtrData[i] = toupper(stylevsp[0].charPtrData[i]);
              }
@@ -1135,21 +1135,33 @@ case 64:
 break;
 case 65:
 {
-           int l = strlen((char*)stylevsp[-3].charPtrData) + strlen((char*)stylevsp[0].charPtrData) + 2;
+           int l3 = strlen((char*)stylevsp[-3].charPtrData);
+           int l0 = strlen((char*)stylevsp[0].charPtrData);
+           int l = l3 + l0 + 2;
            styleval.charPtrData=new unsigned char[l];
-           strcpy((char*)styleval.charPtrData, (char*)stylevsp[-3].charPtrData);
-           strcat((char*)styleval.charPtrData, ".");
-           strcat((char*)styleval.charPtrData, (char*)stylevsp[0].charPtrData);
+
+           *((char *) memcpy((char*)styleval.charPtrData,
+                            (char*)stylevsp[-3].charPtrData, l3) + l3) = '\0';
+           *((char *) memcpy((char*)(styleval.charPtrData + l3),
+                            ".", 1) + 1) = '\0';
+           *((char *) memcpy((char*)(styleval.charPtrData + l3 + 1),
+                            (char*)stylevsp[0].charPtrData, l0) + l0) = '\0';
+
            delete stylevsp[-3].charPtrData;
            delete stylevsp[0].charPtrData;
        }
 break;
 case 66:
 {
-           int l = strlen((char*)stylevsp[-1].charPtrData) + 2;
+           int l1 = strlen((char*)stylevsp[-1].charPtrData);
+           int l = l1 + 2;
            styleval.charPtrData=new unsigned char[l];
-           strcpy((char*)styleval.charPtrData, (char*)stylevsp[-1].charPtrData);
-           strcat((char*)styleval.charPtrData, ".");
+
+           *((char *) memcpy((char*)styleval.charPtrData,
+                            (char*)stylevsp[-1].charPtrData, l1) + l1) = '\0';
+           *((char *) memcpy((char*)styleval.charPtrData + l1,
+                            ".", 1) + 1) = '\0';
+
            delete stylevsp[-1].charPtrData;
        }
 break;
@@ -1160,7 +1172,7 @@ case 67:
 break;
 case 68:
 {
-          int i;
+          unsigned int i;
 
           for (i=0; i<strlen((const char*)stylevsp[0].charPtrData); i++) {
 
index 93ec6137d10664b14696cea6dae3ce7ece2702b2..8ffd44166aed396100767074aba96ab7a6ca9e5f 100644 (file)
@@ -586,7 +586,9 @@ static int style_did_buffer_switch_on_eof;
 static style_state_type style_get_previous_state style_PROTO(( void ));
 static style_state_type style_try_NUL_trans style_PROTO(( style_state_type current_state ));
 static int style_get_next_buffer style_PROTO(( void ));
+#if 0
 static void styleunput style_PROTO(( style_CHAR c, style_CHAR *buf_ptr ));
+#endif
 void stylerestart style_PROTO(( FILE *input_file ));
 void style_switch_to_buffer style_PROTO(( style_BUFFER_STATE new_buffer ));
 void style_load_buffer_state style_PROTO(( void ));
@@ -1305,6 +1307,7 @@ register style_state_type style_current_state;
     }
 
 
+#if 0
 #ifdef style_USE_PROTOS
 static void styleunput( style_CHAR c, register style_CHAR *style_bp )
 #else
@@ -1348,6 +1351,7 @@ register style_CHAR *style_bp;
      */
     style_DO_BEFORE_ACTION; /* set up styletext again */
     }
+#endif
 
 
 #ifdef __cplusplus
index e4fc08896535e008d7dbd85979ff28766b12022f..29a9e9daac45982e113b2eb3733f8292b9872f87 100644 (file)
@@ -70,23 +70,27 @@ base::base(object_dict* obj_dict,
    num_cset_ptrs(0), num_list_ptrs(0),
    f_obj_dict(obj_dict)
 {
+   int len = MIN(strlen(base_dir), PATHSIZ - 1);
    if ( base_dir )
-      strcpy(base_path, base_dir);
+      *((char *) memcpy (base_path, base_dir, len) + len) = '\0';
    else
       base_path[0] = 0;
 
+   len = MIN(strlen(base_nm), PATHSIZ - 1);
    if ( base_nm )
-      strcpy(base_name, base_nm);
+      *((char *) memcpy (base_name, base_nm, len) + len) = '\0';
    else
       base_name[0] = 0;
 
+   len = MIN(strlen(base_ds), PATHSIZ - 1);
    if ( base_ds )
-      strcpy(base_desc, base_ds);
+      *((char *) memcpy (base_desc, base_ds, len) + len) = '\0';
    else
       base_desc[0] = 0;
 
+   len = MIN(strlen(base_uid_str), UIDSIZ - 1);
    if ( base_uid_str )
-      strcpy(base_uid, base_uid_str);
+      *((char *) memcpy (base_uid, base_uid_str, len) + len) = '\0';
    else
       base_uid[0] = 0;
 
index 60f08b1010d0f1e4c76b95197078621496460d41..66210ac247b9aa3bca956a88cbcc7e8ef61e6a3f 100644 (file)
@@ -88,18 +88,17 @@ public:
 
 protected:
 
-   object_dict* f_obj_dict;
-
-
    char base_path[PATHSIZ];
    char base_name[PATHSIZ];
    char base_desc[PATHSIZ];
    char base_uid[UIDSIZ];
 
-   int num_cset_ptrs;
-   int num_list_ptrs;
    char** info_base_set_names;
    char** info_base_list_names;
+   int num_cset_ptrs;
+   int num_list_ptrs;
+
+   object_dict* f_obj_dict;
 };
 
 typedef base* basePtr;
index 490cf6636d7608e6762c87b8d983656baff09a93..ff503a47d0fd150293047687b0ec5ac911703a58 100644 (file)
@@ -72,8 +72,9 @@ debug(cerr, base_dir);
 debug(cerr, base_nm);
 debug(cerr, base_ds);
 */
+   int len = MIN(strlen(base_locale), PATHSIZ - 1);
    if (base_locale)
-     strcpy(info_base_locale, base_locale);
+     *((char *) memcpy (info_base_locale, base_locale, len) + len) = '\0';
    else
      *info_base_locale = 0;
 
@@ -131,7 +132,6 @@ info_base::~info_base()
 
 int info_base::get_set_pos(const char* set_nm)
 {
-   char* nm = 0;
    for ( int i=0; i<num_cset_ptrs; i++ ) {
       if ( strcmp(set_nm,  info_base_set_names[i]) == 0 ) 
          return i;
@@ -221,7 +221,7 @@ Iterator* info_base::first(char* col_nm, c_code_t code)
    handler* x = get_set(col_nm);
 
    if ( x == 0 ) {
-      handler* x = get_list(col_nm);
+      x = get_list(col_nm);
    }
 
    if ( x == 0 ) {
@@ -299,7 +299,7 @@ int stdin_sgml_data_getchar(unsigned char* buf, int max_sz)
 
    chars_to_read = MIN(max_sz, remain_chars);
 
-   if ( fread((char*)buf, 1, chars_to_read, stdin) != chars_to_read ) {
+   if ( (int)fread((char*)buf, 1, chars_to_read, stdin) != chars_to_read ) {
       throw(stringException("sgml_data_getchar(): fread() failed"));
    }
 
index 69940cdeee216d5b58f0b28b4f6aeb1b436a51a2..3b5fdc7405fe26900b84c34cc32209375f92a1cc 100644 (file)
@@ -79,6 +79,8 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
 //debug(cerr, info_lib_dir);
 //debug(cerr, infoLibName);
 
+   int len;
+
    f_obj_dict = new object_dict;
 
    if ( info_lib_dir == 0 ) {
@@ -91,8 +93,10 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
                            )
            );
 
-   strcpy(info_lib_path, info_lib_dir);
-   strcpy(info_lib_name, infoLibName);
+   len = MIN(strlen(info_lib_dir), PATHSIZ -1);
+   *((char *) memcpy (info_lib_path, info_lib_dir, len) + len) = '\0';
+   len = MIN(strlen(infoLibName), PATHSIZ -1);
+   *((char *) memcpy (info_lib_name, infoLibName, len) + len) = '\0';
 
    fstream *map_in = 0;
 
@@ -163,9 +167,10 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
              strcmp("C.ISO-8859-1", base_locale) == 0))
          {
 
-            strcpy(db_path_name, 
-                   form("%s/%s", info_lib_dir, base_name)
-                  );
+            len = MIN(strlen(info_lib_dir) + strlen(base_name) +1, PATHSIZ -1);
+            *((char *) memcpy (db_path_name,
+                              form("%s/%s", info_lib_dir, base_name),
+                              len) + len) = '\0';
  
             mm_version mmv_code(MAJOR, MINOR);
             mm_version mmv_base_data(2, 1);
@@ -363,10 +368,17 @@ info_lib::define_info_base( char* base_name, char* base_desc,
    char new_db_path[PATHSIZ]; 
    char f_name[PATHSIZ]; 
    char base_uid[UIDSIZ]; 
+   int len;
+   const char* uid;
 
-   strcpy(new_db_path, form("%s/%s", info_lib_path, base_name));
+   len = MIN(strlen(info_lib_path) + strlen(base_name) + 1, PATHSIZ -1);
+   *((char *) memcpy (new_db_path,
+                     form("%s/%s", info_lib_path, base_name),
+                     len) + len) = '\0';
 
-   strcpy(base_uid, unique_id());
+   uid = unique_id();
+   len = MIN(strlen(uid), UIDSIZ -1);
+   *((char *) memcpy(base_uid, uid, len) + len) = '\0';
 
    g_mode_8_3 = 1;
 
@@ -387,15 +399,24 @@ info_lib::define_info_base( char* base_name, char* base_desc,
 // remove any old files 
 //////////////////////////
 
-      strcpy(f_name, form("%s.%s", base_name, DATA_FILE_SUFFIX));
+      len = MIN(strlen(base_name) + strlen(DATA_FILE_SUFFIX) +1, PATHSIZ -1);
+      *((char *) memcpy(f_name,
+                       form("%s.%s", base_name, DATA_FILE_SUFFIX),
+                       len) + len) = '\0';
       if ( exist_file(f_name, new_db_path) == true )
          del_file(f_name, new_db_path);
 
-      strcpy(f_name, form("%s.%s", base_name, INDEX_FILE_SUFFIX));
+      len = MIN(strlen(base_name) + strlen(INDEX_FILE_SUFFIX) + 1, PATHSIZ -1);
+      *((char *) memcpy(f_name,
+                       form("%s.%s", base_name, INDEX_FILE_SUFFIX),
+                       len) + len) = '\0';
       if ( exist_file(f_name, new_db_path) == true )
          del_file(f_name, new_db_path);
 
-      strcpy(f_name, form("%s.%s", base_name, SCHEMA_FILE_SUFFIX));
+      len = MIN(strlen(base_name) + strlen(SCHEMA_FILE_SUFFIX) +1, PATHSIZ -1);
+      *((char *) memcpy(f_name,
+                       form("%s.%s", base_name, SCHEMA_FILE_SUFFIX),
+                       len) + len) = '\0';
       if ( exist_file(f_name, new_db_path) == true )
          del_file(f_name, new_db_path);
 
index 10616eb6ee22cd1c6cf97ec76b7e0fc574710cc8..f380575af913d53fb2b24dd5168ad1dc306399d7 100644 (file)
@@ -132,8 +132,8 @@ protected:
 
    int   f_bad_base_array_size;
    int   f_bad_info_bases;
-   char** f_bad_info_base_paths;
    char** f_bad_info_base_names;
+   char** f_bad_info_base_paths;
 
    int f_descriptor;
 
index a92edccb5857e39476fa6bbd8abd944163a2290a..f1dafcdcef7725a6b6faf0b3417f9f136cafc0a2 100644 (file)
@@ -65,7 +65,8 @@ server::server(char* x_infolib_path) :
                            )
            );
 
-   strcpy(info_lib_dir, x_infolib_path); 
+   int len = MIN(strlen(x_infolib_path), PATHSIZ - 1);
+   *((char *) memcpy(info_lib_dir, x_infolib_path, len) + len) = '\0';
 
 }
 
index 7a56ef5f531da09dc3399b127895c932ef89175c..ca0fd88ba39fb2f15980e00a6be33f0a5f44b46f 100644 (file)
@@ -288,7 +288,7 @@ void smart_ptr::update_oid(int i, const oid_t& x)
    handler* z = get_handler(i, OID_CODE);
    oid_handler* y = (oid_handler*)z;
 
-   sprintf(buf, "%d.%d\n", x.ccode(), (int)x.icode());
+   snprintf(buf, sizeof(buf), "%d.%d\n", x.ccode(), (int)x.icode());
    istringstream in(buf);
 
    (*y) -> asciiIn(in);
@@ -305,16 +305,18 @@ void smart_ptr::update_string(int i, istream& in)
   io_status ok;
   switch ( x -> its_oid().ccode() ) {
      case STRING_CODE:
-       ok = (*(pstring_handler*)x) -> asciiIn(in); 
+       ok =(*(pstring_handler*)x) -> asciiIn(in);
        break;
 
      case COMPRESSED_STRING_CODE:
-       ok = (*(compressed_pstring_handler*)x) -> _asciiIn(in); 
+       ok =(*(compressed_pstring_handler*)x) -> _asciiIn(in);
        break;
 
      default:
        throw(stringException("invalid node data class code"));
   }
+
+  if(ok) { ; }
   delete x;
 }
 
index ed016d7b2f62484de33da7ad5bf34d81e7252ddd..5e53fb9870fd8f9b83e86b7428dd11ae9aa90ee4 100644 (file)
@@ -128,6 +128,8 @@ Boolean btree::insert(data_t& w)
      case RET_SUCCESS:
         return true;
    }
+
+   return false;
 }
 
 Boolean btree::remove(data_t& w)
@@ -145,6 +147,8 @@ Boolean btree::remove(data_t& w)
      case RET_SUCCESS:
         return true;
    }
+
+   return false;
 }
 
 Boolean btree::member(data_t& w) 
@@ -169,6 +173,8 @@ Boolean btree::member(data_t& w)
         memcpy((char*)&w.dt, data_DBT.data, data_DBT.size);
         return true;
    }
+
+   return false;
 }
 
 ostream& btree::asciiOut(ostream& out)
index 361c940ece30277465b03a008688fce034559b2b..fc87aa6564ec36cd3e23fa7a9b51cf3787e92618 100644 (file)
@@ -141,7 +141,7 @@ __bt_sync(dbp, flags)
        BTREE *t;
        int status;
        PAGE *h;
-       void *p;
+       void *p = NULL;
 
        t = dbp->internal;
 
index 19910080b48878a2a7496eeee4dfa55f4dbe75c4..e318c72c87ad70020916f9b14e67c05a2056bd25 100644 (file)
@@ -143,7 +143,7 @@ __bt_open(fname, flags, mode, openinfo, dflags)
                 */
                if (b.psize &&
                    (b.psize < MINPSIZE || b.psize > MAX_PAGE_OFFSET + 1 ||
-                   b.psize & sizeof(indx_t) - 1))
+                   b.psize & (sizeof(indx_t) - 1)))
                        goto einval;
 
                /* Minimum number of keys per page; absolute minimum is 2. */
@@ -268,7 +268,7 @@ __bt_open(fname, flags, mode, openinfo, dflags)
                if (m.m_magic != BTREEMAGIC || m.m_version != BTREEVERSION)
                        goto eftype;
                if (m.m_psize < MINPSIZE || m.m_psize > MAX_PAGE_OFFSET + 1 ||
-                   m.m_psize & sizeof(indx_t) - 1)
+                   m.m_psize & (sizeof(indx_t) - 1))
                        goto eftype;
                if (m.m_flags & ~SAVEMETA)
                        goto eftype;
@@ -301,8 +301,8 @@ __bt_open(fname, flags, mode, openinfo, dflags)
        t->bt_psize = b.psize;
 
        /* Set the cache size; must be a multiple of the page size. */
-       if (b.cachesize && b.cachesize & b.psize - 1)
-               b.cachesize += (~b.cachesize & b.psize - 1) + 1;
+       if (b.cachesize && b.cachesize & (b.psize - 1))
+               b.cachesize += (~b.cachesize & (b.psize - 1)) + 1;
        if (b.cachesize < b.psize * MINCACHE)
                b.cachesize = b.psize * MINCACHE;
 
index 6b34452d9b7a5d088791f8356afaf39e3becc6a7..8f983823190d5e61d9fb5d088817bb9581361823 100644 (file)
@@ -95,7 +95,7 @@ __bt_put(dbp, key, data, flags)
 {
        BTREE *t;
        DBT tkey, tdata;
-       EPG *e;
+       EPG *e = NULL;
        PAGE *h;
        indx_t index, nxtindex;
        pgno_t pg;
@@ -243,7 +243,7 @@ delete:             if (__bt_dleaf(t, h, index) == RET_ERROR) {
        dest = (char *)h + h->upper;
        WR_BLEAF(dest, key, data, dflags);
 
-       if (t->bt_order == NOT)
+       if (t->bt_order == NOT) {
                if (h->nextpg == P_INVALID) {
                        if (index == NEXTINDEX(h) - 1) {
                                t->bt_order = FORWARD;
@@ -257,6 +257,7 @@ delete:             if (__bt_dleaf(t, h, index) == RET_ERROR) {
                                t->bt_last.pgno = h->pgno;
                        }
                }
+       }
 
        mpool_put(t->bt_mp, h, MPOOL_DIRTY);
 
index e6794b634376bb72e46679d0cf0ac92e73830397..ae6a34521829450fc7f0ddf0f0665e844465ae1b 100644 (file)
@@ -111,13 +111,15 @@ __bt_split(t, sp, key, data, flags, ilen, skip)
        size_t ilen;
        u_int skip;
 {
-       BINTERNAL *bi;
-       BLEAF *bl, *tbl;
+       BINTERNAL *bi = NULL;
+       BLEAF *bl = NULL;
+       BLEAF *tbl;
        DBT a, b;
        EPGNO *parent;
        PAGE *h, *l, *r, *lchild, *rchild;
        indx_t nxtindex;
-       size_t n, nbytes, nksize;
+       size_t n, nbytes;
+       size_t nksize = 0;
        int parentsplit;
        char *dest;
 
@@ -640,7 +642,7 @@ bt_psplit(t, h, l, r, pskip, ilen)
        RLEAF *rl;
        EPGNO *c;
        PAGE *rval;
-       void *src;
+       void *src = NULL;
        indx_t full, half, nxt, off, skip, top, used;
        size_t nbytes;
        int bigkeycnt, isbigkey;
index bfa93237fca2c6aa57657c423a72b59cc5fd230c..b16d37fad1cf1de3a315295ceb492df5897bde0f 100644 (file)
@@ -229,7 +229,7 @@ __bt_defcmp(a, b)
 
        len = MIN(a->size, b->size);
        for (p1 = a->data, p2 = b->data; len--; ++p1, ++p2)
-               if (diff = *p1 - *p2)
+               if ((diff = *p1 - *p2))
                        return (diff);
        return (a->size - b->size);
 }
index ab698baefa4b88111de31e186be14f3d592f101c..c635e55122238eb19a0043f01303b984d3a871c9 100644 (file)
@@ -67,7 +67,9 @@
 #define        __END_DECLS     };
 #endif
 #else
+#undef __BEGIN_DECLS
 #define        __BEGIN_DECLS
+#undef __END_DECLS
 #define        __END_DECLS
 #endif
 
  * define them only if compiling without this.
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#undef  __dead
 #define __dead __volatile
 #ifndef __pure
 #define __pure __const
index dea9b547799fa9efd0b3eed0022daa6d3b654134..a09a36dc736e20fd3cedec7106d82c982025c463 100644 (file)
@@ -86,10 +86,10 @@ typedef unsigned int        sigset_t;
 #endif
 
 /*
- * If your system's vsprintf returns a char *, not an int,
+ * If your system's vsnprintf returns a char *, not an int,
  * change the 0 to a 1.
  */
-#if !defined(_AIX) && !defined(__osf__)
+#if !defined(_AIX) && !defined(__osf__) && !defined(linux) && !defined(CSRG_BASED)
 #define        VSPRINTF_CHARSTAR
 #endif
 
index 79f6b5f98bd2f228efeae73f70245e0052d44fa8..4696214417851c6c89ad722b7be31bd5371f14f6 100644 (file)
@@ -94,6 +94,8 @@ dbopen(fname, flags, mode, type, openinfo)
                        return (__rec_open(fname, flags & USE_OPEN_FLAGS,
                            mode, openinfo, flags & DB_FLAGS));
 */
+               default:
+                       break;
                }
        errno = EINVAL;
        return (NULL);
index 021db5a263ae123807c894dd07ddf0f6e73be2a8..434f5cec87ea174cd6924941bf29adeea0729c69 100644 (file)
@@ -60,6 +60,7 @@ static char sccsid[] = "@(#)mktemp.c  8.1 (Berkeley) 6/4/93";
 
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <stdio.h>
@@ -72,7 +73,7 @@ extern int errno;
 
 static int _gettemp();
 
-mkstemp(path)
+int mkstemp(path)
        char *path;
 {
        int fd;
@@ -87,7 +88,7 @@ mktemp(path)
        return(_gettemp(path, (int *)NULL) ? path : (char *)NULL);
 }
 
-static
+static int
 _gettemp(path, doopen)
        char *path;
        register int *doopen;
index e83a5721499912c8e9c71a2987535205eaa22ac0..6bac74f11624d06efa8f5a864d3dfc7d8975f109 100644 (file)
@@ -215,7 +215,7 @@ mpool_get(mp, pgno, flags)
         * If asking for a specific page that is already in the cache, find
         * it and return it.
         */
-       if (b = mpool_look(mp, pgno)) {
+       if ((b = mpool_look(mp, pgno))) {
 #ifdef STATISTICS
                ++mp->pageget;
 #endif
index bec78092765b71549e3ae2721ef3a2569f772fbc..803cf863cbe80e47cd745870d300ec1b6b255bfc 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <compat.h>
 #include <string.h>
+#include <stdio.h>
 
 #ifdef __STDC__
 #include <stdarg.h>
@@ -45,24 +46,30 @@ snprintf(str, n, fmt, va_alist)
 #endif
 {
        va_list ap;
+#ifdef VSPRINTF_CHARSTAR
        char *rp;
+#else
        int rval;
+#endif
+
 #ifdef __STDC__
        va_start(ap, fmt);
 #else
        va_start(ap);
 #endif
+
 #ifdef VSPRINTF_CHARSTAR
-       rp = (char*)(size_t)vsprintf(str, fmt, ap);
+       rp = (char*)(size_t)vsnprintf(str, n, fmt, ap);
        va_end(ap);
        return (strlen(rp));
 #else
-       rval = vsprintf(str, fmt, ap);
+       rval = vsnprintf(str, n, fmt, ap);
        va_end(ap);
        return (rval);
 #endif
 }
 
+#if 0
 int
 vsnprintf(str, n, fmt, ap)
        char *str;
@@ -71,8 +78,9 @@ vsnprintf(str, n, fmt, ap)
        va_list ap;
 {
 #ifdef VSPRINTF_CHARSTAR
-       return (strlen((char*)(size_t)vsprintf(str, fmt, ap)));
+       return (strlen((char*)(size_t)vsnprintf(str, fmt, ap)));
 #else
-       return (vsprintf(str, fmt, ap));
+       return (vsnprintf(str, fmt, ap));
 #endif
 }
+#endif
index f4c5ba4ec638cd63e6e049e91314326e10f15563..beb53ffd8127f283b711d58ecd6f27cdb7c82d25 100644 (file)
@@ -63,8 +63,8 @@ class encoding_unit
 public:
    ostring* word;
    int bits;
-   unsigned int code;
    unsigned int freq;
+   unsigned int code;
    htr_node* leaf_htr_node;
 
 public:
index f6501bd8ea5156e4eaad1ba96eaa5b6919e58988..48038d493313c3be901dde6e8d913767144fb492 100644 (file)
@@ -109,7 +109,7 @@ void huff::build_tree()
    heap htr_node_set(htr_eq, htr_ls, cts);
 
    htr_node* x ;
-   for (int i=0; i<cts; i++ ) {
+   for (unsigned int i=0; i<cts; i++ ) {
       if ( e_units[i] ) {
          x = new htr_node(e_units[i]);
          e_units[i] -> leaf_htr_node = x; 
@@ -146,7 +146,7 @@ void huff::calculate_code()
    htr_node* x ;
    htr_node* parent;
 
-   for (int i=0; i<cts; i++ ) {
+   for (unsigned int i=0; i<cts; i++ ) {
 
       if ( e_units[i] == 0 )
          continue;
@@ -175,7 +175,7 @@ void huff::calculate_code()
          x = parent;
          e_units[i] -> bits++;
 
-         if ( e_units[i] -> bits > BITS_IN(unsigned long) ) {
+         if ( e_units[i] -> bits > (int) BITS_IN(unsigned long) ) {
             debug(cerr, e_units[i] -> bits);
             throw(stringException("huffman tree too deep"));
          }
@@ -191,7 +191,7 @@ ostream& huff::print_alphabet(ostream& out)
    unsigned long total_uncmp = 0;
    unsigned long int total_cmp = 0;
 
-   for (int i=0; i<cts; i++ ) {
+   for (unsigned int i=0; i<cts; i++ ) {
 
       if ( e_units[i] == 0 )
          continue;
@@ -400,7 +400,7 @@ io_status huff::cdrOut(buffer& buf)
 //MESSAGE(cerr, "huff::cdrOut");
 //debug(cerr, my_oid());
    static buffer v_out_buf(LBUFSIZ);
-   int i;
+   unsigned int i;
 
    if ( cts > 0 ) {
 //MESSAGE(cerr, "huff::cdrOut: dict out");
@@ -454,7 +454,7 @@ io_status huff::cdrIn(buffer& buf)
       unsigned int word_freq;
       //ostring *z = 0;
    
-      for ( int i=0; i<cts; i++ ) {
+      for ( unsigned int i=0; i<cts; i++ ) {
    
          v_in_buf.get(word_sz);
          v_in_buf.get(word_buf, int(word_sz));
index 346b6137cf1d34c4844ced0ff1d0f83afe30dfb5..65cd2a71dc6a73b99d5a57578e615279a53b4694 100644 (file)
 class htr_node 
 {
 public:
-   htr_node* parent;
    htr_node* left;
    htr_node* right;
-   unsigned long freq; 
    encoding_unit* eu;
+   unsigned long freq;
+   htr_node* parent;
 
 public:
    htr_node(encoding_unit* eu, htr_node* lt = 0, htr_node* rt = 0);
@@ -80,10 +80,10 @@ class huff : public compress_agent
 {
 
 protected:
-   htr_node* htr_root;
    encoding_unit** e_units;
-   trie* tri;
    unsigned int cts ;
+   trie* tri;
+   htr_node* htr_root;
 
 protected:
    void build_tree();
index dcf394331c27d631a659b62d1e40260a7cd3341f..1e384f5d2fe0582f5b41ed9acd65f73e2e3dd3bc 100644 (file)
@@ -415,7 +415,9 @@ static int ps_did_buffer_switch_on_eof;
 static ps_state_type ps_get_previous_state ps_PROTO(( void ));
 static ps_state_type ps_try_NUL_trans ps_PROTO(( ps_state_type current_state ));
 static int ps_get_next_buffer ps_PROTO(( void ));
+#if 0
 static void psunput ps_PROTO(( ps_CHAR c, ps_CHAR *buf_ptr ));
+#endif
 void psrestart ps_PROTO(( FILE *input_file ));
 void ps_switch_to_buffer ps_PROTO(( ps_BUFFER_STATE new_buffer ));
 void ps_load_buffer_state ps_PROTO(( void ));
@@ -807,6 +809,7 @@ register ps_state_type ps_current_state;
     }
 
 
+#if 0
 #ifdef ps_USE_PROTOS
 static void psunput( ps_CHAR c, register ps_CHAR *ps_bp )
 #else
@@ -850,6 +853,7 @@ register ps_CHAR *ps_bp;
      */
     ps_DO_BEFORE_ACTION; /* set up pstext again */
     }
+#endif
 
 
 #ifdef __cplusplus
index 24896568453238d83fa82ce7bf1c3586de1fb138..e503afad0d2a7e419eafa5b39c8d22eeb9dbffa2 100644 (file)
@@ -421,7 +421,9 @@ static int sgml_did_buffer_switch_on_eof;
 static sgml_state_type sgml_get_previous_state sgml_PROTO(( void ));
 static sgml_state_type sgml_try_NUL_trans sgml_PROTO(( sgml_state_type current_state ));
 static int sgml_get_next_buffer sgml_PROTO(( void ));
+#if 0
 static void sgmlunput sgml_PROTO(( sgml_CHAR c, sgml_CHAR *buf_ptr ));
+#endif
 void sgmlrestart sgml_PROTO(( FILE *input_file ));
 void sgml_switch_to_buffer sgml_PROTO(( sgml_BUFFER_STATE new_buffer ));
 void sgml_load_buffer_state sgml_PROTO(( void ));
@@ -818,6 +820,7 @@ register sgml_state_type sgml_current_state;
     }
 
 
+#if 0
 #ifdef sgml_USE_PROTOS
 static void sgmlunput( sgml_CHAR c, register sgml_CHAR *sgml_bp )
 #else
@@ -861,6 +864,7 @@ register sgml_CHAR *sgml_bp;
      */
     sgml_DO_BEFORE_ACTION; /* set up sgmltext again */
     }
+#endif
 
 
 #ifdef __cplusplus
index 3f4fd2755ac3d533adcb6939514edfadf25d8246..c92abfee41db16e1e2b4c2a1e9c755d55a501b09 100644 (file)
@@ -147,7 +147,7 @@ trie::~trie()
    delete root;
    delete sorted_freqs;
 
-   for ( int i=0; i<alphabet_sz; i++ ) 
+   for ( unsigned int i=0; i<alphabet_sz; i++ )
       delete alphabet[i];
 
    delete alphabet;
@@ -155,7 +155,7 @@ trie::~trie()
 
 void trie::extend_alphabet()
 {
-   if ( alphabet_sz >=  estimated_sz ) {
+   if ( (int) alphabet_sz >=  estimated_sz ) {
      encoding_unitPtr* new_alphabet = new encoding_unitPtr[2* estimated_sz];
 
      for ( int k=0; k< estimated_sz; k++ ) {
@@ -175,13 +175,10 @@ void trie::add(unsigned char* word, int sz, int fq)
 //  cerr << word[k];
 //cerr << "\n";
 
-   static int j, level = 0;
+   static int j;
    static trie_node* x = 0;
    static trie_node_info* y = 0;
 
-   static char buf[1];
-   static ostring *z;
-
    if ( root == 0 )
       root = new trie_node(0);
 
index 7670a3af053367655dccdf89838832c9145d9c5a..79da3c69a92330d62f3a0bcba8396c32c1b4d856 100644 (file)
@@ -117,16 +117,16 @@ class trie
 {
 
 protected:
+   trie_node* root;
    int max_trie_level;
    int total_nodes;
    int level_sz[MAX_LEVELS];
 
-   trie_node* root;
    heap* sorted_freqs;
 
-   int  estimated_sz;
    encoding_unit** alphabet;
    unsigned int alphabet_sz;
+   int  estimated_sz;
 
 protected:
    void collect_freqs(trie_node* rt, int level);
index 8350e8635648ca8111b473f190606038c8f88cd4..1b8cb4f6d8ebc190ead8adc64a0160a350b2d60d 100644 (file)
@@ -73,6 +73,7 @@ void zip::compress(const buffer& uncompressed, buffer& compressed)
    out.close();
 
    ret = system(form("gzip -c %s > %s", (char*)UNCOMPRESSED,(char*)COMPRESSED));
+   if(ret != 0) throw(systemException(ret));
 
    fstream in(COMPRESSED, ios::in);
 
@@ -107,6 +108,7 @@ void zip::decompress(buffer& compressed, buffer& uncompressed)
    out.close();
 
    ret = system(form("gzip -cd %s > %s",(char*)COMPRESSED,(char*)UNCOMPRESSED));
+   if(ret != 0) throw(systemException(ret));
 
    fstream in(UNCOMPRESSED, ios::in);
 
index 56fcb55e05a8f0f9abbb395cfb260547d69d3001..a8b1f570afabdc261c26f0c3d550a47bbfbe9b32 100644 (file)
@@ -74,8 +74,8 @@ public:
 
 protected:
    int v_buckets;
-   disk_bucket* v_cached_bucket_ptr;
    page_storage* v_key_store;
+   disk_bucket* v_cached_bucket_ptr;
 };
 
 typedef bucket_array* bucket_arrayPtr;
index f5aa2bc15d2720ab7e54a20bc3ce319500b3a54e..e7a04e7336b705b795f95d3b61222388216b0475 100644 (file)
@@ -95,12 +95,13 @@ protected:
    page* bucket_page();
 
 protected:
+   int v_bucket_num;
+   page_storage* v_key_store;
+
    Boolean  v_overflowed;
    //unsigned int v_k;
    //unsigned int v_r;
 
-   int v_bucket_num;
-   page_storage* v_key_store;
    buffer& buf;
 };
 
index 2b68cc8fa27ab1e010d9e9fc6774956e1d9da72e..efcdc7c04a4c30d4c4fb4e3de017212631377387 100644 (file)
@@ -79,7 +79,7 @@ index_agent(), key_store(store), buf(store -> aux_buf())
    init_params(prime, expected_n);
 
    bucket_vector = new bucket_array(M+v, store);
-   hash_vector = new void_ptr_array(2*MAX(expected_n, n));
+   hash_vector = new void_ptr_array(2*MAX(expected_n, (int) n));
 
    k_vector = new void_ptr_array(M+v);
    r_vector = new void_ptr_array(M+v);
@@ -159,7 +159,7 @@ Boolean disk_hash::rehash(data_t& w)
 {
 //MESSAGE(cerr, "REHASH:");
    char tmp_name[PATHSIZ];
-   sprintf(tmp_name, "%s.tmp", key_store -> my_name());
+   snprintf(tmp_name, sizeof(tmp_name), "%s.tmp", key_store -> my_name());
 
    fstream pool(form("%s/%s", key_store -> my_path(), tmp_name),
                 ios::in | ios::out
@@ -271,7 +271,7 @@ Boolean disk_hash::_insert(data_t& w, Boolean rehash_if_fail)
 //MESSAGE(cerr, "INSERT to overflow buckets");
 //debug(cerr, hash);
 
-      for ( hash %= v; hash < v; hash++ ) {
+      for ( hash %= v; hash < (int) v; hash++ ) {
 
          disk_bucket& overflowb = bucket_vector -> get_bucket(hash+M);
 
@@ -386,7 +386,7 @@ Boolean disk_hash::member(data_t& w, disk_bucket*& b, int& slot_num) const
 
    if ( b -> overflow() == true ) {
 
-      for ( hash %= v; hash<v; hash++ ) {
+      for ( hash %= v; hash < (int) v; hash++ ) {
 
          b = &bucket_vector -> get_bucket(hash+M);
 
@@ -411,7 +411,7 @@ disk_bucket* disk_hash::get_bucket(int& ind)
 
 void disk_hash::next_bucket(int& ind)
 {
-   ind = ( ind >= M+v-1 ) ? -1 : (ind+1);
+   ind = ( ind >= (int)(M+v-1) ) ? -1 : (ind+1);
 }
 
 
index 75bf1c6d06b198c111498c9da1fc0a69d67b73e7..628e04b9db6cfa202c7ba6ff37ac5347062a64e7 100644 (file)
@@ -123,7 +123,7 @@ protected:
    unsigned int k;        // parameter used in the 1st level hash function
    unsigned int p;        // prime number p
 
-   //unsigned int n;        // current key set size
+   unsigned int n;        // current key set size
 
    bucket_array* bucket_vector;  // bucket array
 
index 5bb27a7e61ea39fca4997e2cadc1c9eea75ea294..59eb723000b6ccac6b4d6b2191f858d702850412 100644 (file)
@@ -67,7 +67,7 @@ Boolean void_eq(const void* o1, const void* o2)
 //**************************************************************
 
 
-bset::bset(cmp_func_ptr_t eq, cmp_func_ptr_t ls): v_setroot(0), set(eq, ls)
+bset::bset(cmp_func_ptr_t eq, cmp_func_ptr_t ls): set(eq, ls), v_setroot(0)
 {
    //assert ( eq && ls );
 }
index a1cb0494e14d91dadc2752a48effaab80230c6ba..0be2b7a5bf223383b0d89b9ff8da3bc21ae379a2 100644 (file)
@@ -85,9 +85,9 @@ public:
    long last();    // 0 if the list is empty
 
 protected:
+   int v_ct;            // cell in the list
    dlist_cell *v_head;  // head pointer
    dlist_cell *v_tail;  // tail pointer
-   int v_ct;            // cell in the list
    int remove_cells_when_done;
 };
 
index eca976d1c869e21796590431825c534f7ea6eda9..c883e5fdabfd0d2745e50cd3257464612379fc0f 100644 (file)
@@ -84,7 +84,7 @@ int heap::count()
 
 Boolean heap::insert(voidPtr elm) 
 {
-   if ( buf_sz() < content_sz() + 2*sizeof(voidPtr) ) 
+   if ( buf_sz() < (int)(content_sz() + 2*sizeof(voidPtr)) )
       buffer::expand_chunk(2*buf_sz()) ;
 
    long x = long(elm);
index ea93b6f475f8ca0a1c2c9c21a2c5b48ac6503d64..4ba88e71b7baf9f21311e6fbeed81e69437e4822 100644 (file)
@@ -93,9 +93,9 @@ public:
    long last();    // 0 if the list is empty
 
 protected:
+   int v_ct;            // cell in the list
    slist_cell *v_head;  // head pointer
    slist_cell *v_tail;  // tail pointer
-   int v_ct;            // cell in the list
 
 };
 
index fa9aa26a6512943d27786e5ce2ff8538ab428c87..b4664843a09cd19f24982a3c7fce72cb65dd47b1 100644 (file)
@@ -99,7 +99,7 @@ void token_stack::new_token()
 
 void token_stack::add_partial_token(char* x) 
 {
-   if ( v_curr_token_buf -> remaining_sz() < strlen(x) + 1) {
+   if ( v_curr_token_buf -> remaining_sz() < (int)(strlen(x) + 1) ) {
 
       int partial_str_len = curr_token_start ? strlen(curr_token_start) : 0;
 
index 793a39b0818587b5323db22302100c889a03291a..45e4dda61d5629960126b825c051a8d248dd0e59 100644 (file)
@@ -33,7 +33,7 @@
 template <class T>
 CC_Boolean CC_TPtrDlistIterator<T>::operator+=(size_t n)
 {
-  for ( int i = 0; i < n ; i++ ) {
+  for ( size_t i = 0; i < n ; i++ ) {
     if ( !(++(*this)) ) {
       return (FALSE);
     }
index 48b3430fb3ad61dde63d51ac4adc48099c439815..1281fda365e75bd503c20a1cff47e941686ffea5 100644 (file)
@@ -46,7 +46,7 @@ template<class T>
 T *CC_TPtrSlist<T>::removeAt(size_t pos) {
 
   CC_TPtrSlistIterator<T> iter( *this );
-  for( int i = 0; i <= pos; i++ ) {
+  for( size_t i = 0; i <= pos; i++ ) {
     if ( !(++iter) ) {
       throw(CASTCCBEXCEPT ccBoundaryException(0,0,i));
     }
index 5d10f66cef5f5fb623d121e250eaf1ec44142f18..51dc9bf9420f2e737db9ca96f5a15c0e227cdd6d 100644 (file)
@@ -82,7 +82,7 @@ public:
   CC_TPtrSlist(const CC_TPtrSlist<T> &);
 
   CC_TPtrSlist() { destructed = FALSE; }
-  ~CC_TPtrSlist();
+  virtual ~CC_TPtrSlist();
 
   virtual void clearAndDestroy();
   virtual void clear();           /* clear only removes item, but not calling
@@ -104,7 +104,7 @@ public:
   {
     // Hack to get it passed to iter
     CC_TPtrSlistIterator<T> iter( *(CC_TPtrSlist<T> *)this );
-    for ( int i = 0; i <=pos; i++ ) {
+    for ( size_t i = 0; i <=pos; i++ ) {
       if ( !(++iter) ) {
         throw(CASTCCBEXCEPT ccBoundaryException(0,0,i));
       }
@@ -161,7 +161,7 @@ public:
   CC_Boolean get_destructed() const
     { return (destructed); }
 
-  CC_Boolean set_destructed(CC_Boolean what)
+  void set_destructed(CC_Boolean what)
     { destructed = what; }
 
 };
index d262478f98449ea4b90741067d409da4564b86a3..308e54fa207f950cdfb0de0ec7d5c076b42b29b8 100644 (file)
@@ -34,8 +34,9 @@ public: // functions
 
   CC_String (const char *string)
   {
-    f_string = new char[strlen(string) + 1];
-    strcpy (f_string, string);
+    int len = strlen(string);
+    f_string = new char[len + 1];
+    *((char *) memcpy(f_string, string, len) + len) = '\0';
   }
 
   CC_String() 
index 5344239f122480c47958591473e453e724f4c169..ef0f51880803969a4d15c41ee2c8073c7cf98ebc 100644 (file)
@@ -27,8 +27,9 @@
 //--------------------------------------------------------------
 CC_Tokenizer::CC_Tokenizer( const CC_String &s )
 {
-  str_ = new char [s.length()+1];
-  strcpy(str_, s.data() );
+  int len = s.length();
+  str_ = new char [len + 1];
+  *((char *) memcpy(str_, s.data(), len) + len) = '\0';
   current_ptr = str_;
   touched = FALSE;
 }
index 98ab4498fe0345394d8209fc5f22b59e83b26f46..3a53b180ed291f1d02d390a6bd9dfa8077d0a109 100644 (file)
@@ -58,7 +58,7 @@ hashTable<K,V>::~hashTable()
    CC_TPtrSlist<kv_pair<K, V> > * b = 0;
    kv_pair<K, V>  * r = 0;
 
-   for (int i=0; i<f_buckets.length(); i++ ) {
+   for (size_t i=0; i<f_buckets.length(); i++ ) {
 
       b  = f_buckets[i];
 
@@ -78,7 +78,7 @@ void hashTable<K,V>::clearAndDestroy()
 
    CC_TPtrSlist<kv_pair<K, V> >* b = 0;
 
-   for (int i=0; i<f_buckets.length(); i++ ) {
+   for (size_t i=0; i<f_buckets.length(); i++ ) {
 
      b = f_buckets[i];
      if ( b ) {
index 0254f9e4c903ccb06524bbe1c1a190c8943b4a1c..447767f6044ee69fbe8f26687ea4eee5dda95c16 100644 (file)
@@ -66,8 +66,8 @@ template <class K, class V> class hashTable
    friend class hashTableIterator<K, V>;
 
 protected:
-   pointer_vector<CC_TPtrSlist<kv_pair<K, V> > > f_buckets;
    unsigned (*f_hash_func_ptr)(const K&);
+   pointer_vector<CC_TPtrSlist<kv_pair<K, V> > > f_buckets;
    size_t f_items;
 
 protected:
index c70da6f778545cfe90becfb19d9beb9bc8aff8dd..cac3a4ca55bd4645c18e8326108dda8fcaa30b32 100644 (file)
@@ -53,7 +53,7 @@ public:
    {
      // Hack to get it passed to iter
      CC_TPtrSlistIterator<T> iter( *(CC_TPtrSlist<T> *)this );
-     for ( int i = 0; i <=pos; i++ ) {
+     for ( size_t i = 0; i <=pos; i++ ) {
        if ( !(++iter) ) {
          throw(CASTCCBEXCEPT ccBoundaryException(0,0,i));
        }
index 4733257160575039b140148cd6e6f70f38dac4e7..a7fe11d08fc2ade7bbaa2bbede740aea3d3fce87 100644 (file)
@@ -39,7 +39,7 @@ template <class T>
 pointer_vector<T>::pointer_vector(size_t n, T* t) 
   : f_array(new Tptr[n]), f_size(n), f_items(0)
 {
-   for ( int i=0; i<f_size; i++ )
+   for ( size_t i=0; i<f_size; i++ )
     f_array[i] = t;
 }
 
@@ -52,7 +52,7 @@ pointer_vector<T>::~pointer_vector()
 template <class T> 
 T* pointer_vector<T>::operator[](ptrdiff_t i) const
 {
-  if ( i<0 || i>= f_size )
+  if ( i < 0 || i >= (ptrdiff_t)f_size )
     throw(CASTCCBEXCEPT ccBoundaryException(0, f_size-1, i));
   else
     return f_array[i];
@@ -61,7 +61,7 @@ T* pointer_vector<T>::operator[](ptrdiff_t i) const
 template <class T> 
 T*& pointer_vector<T>::operator[](ptrdiff_t i)
 {
-  if ( i<0 || i>= f_size )
+  if ( i < 0 || i >= (ptrdiff_t)f_size )
     throw(CASTCCBEXCEPT ccBoundaryException(0, f_size-1, i));
   else
      return f_array[i];
index 69988a68b7c7ba56e55d5447cdcaf7cfd8c99649..93182b9c37416e797baf2794357c020f239f84af 100644 (file)
@@ -32,4 +32,7 @@ typedef unsigned int CC_Boolean;
 #define TRUE  1
 #define FALSE 0
 
+#undef MIN
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
+
 #endif
index 1a8b6bcab6b7a903b16109311f1aa9c41f1c7e91..da28932216e693b598a8884c1cf83d26c9eff1d6 100644 (file)
@@ -40,7 +40,7 @@ char *Exception::g_next_avail = Exception::g_temp_space;
 // /////////////////////////////////////////////////////////////////
 
 Exception::Exception()
-: f_line(0), f_thrown_as_pointer(1), f_thrown(0), f_temporary(0)
+: f_thrown(0), f_thrown_as_pointer(1), f_temporary(0), f_line(0)
 {
   PRINTF (("Constructed Exception obj @ %p\n", this));
 }
@@ -76,19 +76,17 @@ Exception::operator delete (void *place)
 void *
 Exception::operator new (size_t size, int)
 {
-  if (g_next_avail + size <= g_temp_space + G_TEMP_SPACE_SIZE)
-    {
-      void *p = g_next_avail;
-      g_next_avail += size;
-      PRINTF (("Allocate EXC @ %p, size = %ld\n", p, (long)size));
-      return (p);
-    }
-  else
+  if (g_next_avail + size > g_temp_space + G_TEMP_SPACE_SIZE)
     {
       Exceptions::error (Exceptions::f_msg_out_of_exception_memory,
                         Exceptions::INTERNAL_ERROR);
       terminate();
     }
+
+  void *p = g_next_avail;
+  g_next_avail += size;
+  PRINTF (("Allocate EXC @ %p, size = %ld\n", p, (long)size));
+  return (p);
 }
 
 
@@ -248,8 +246,8 @@ Exception::is (const char *type, const char *this_class)
   PRINTF (("  var part is <%s>\n", type));
 
   // See if one's a pointer and the other isn't. 
-  if (*type == '*' && !f_thrown_as_pointer ||
-      *type != '*' &&  f_thrown_as_pointer)
+  if ((*type == '*' && !f_thrown_as_pointer) ||
+      (*type != '*' &&  f_thrown_as_pointer))
     return (0);
   // Otherwise they are either both pointers or both objects/references.
   return (1);
index 79b241030afb13a3601208fe06db8bc9a09645fa..e8df94901293709b9545d5658079cefed4b22da7 100644 (file)
@@ -162,28 +162,35 @@ Exceptions::set_error_handler (error_handler_t error_handler)
 void
 Exceptions::error (const char *message, error_type_t error_type)
 {
-  static char buffer[3][100];
+  unsigned int bufferlen = 100;
+  char buffer[3][bufferlen];
   static char *lines[3] = { buffer[0], buffer[1], buffer[2] };
-  int count = 0;
-
-  if (error_type == INTERNAL_ERROR)
-    strcpy (buffer[count++], f_msg_internal_error);
-  else if (error_type == APPLICATION_ERROR)
-    strcpy (buffer[count++], f_msg_application_error);
-  else
-    strcpy (buffer[count++], f_msg_throw_message);
+  int len, count = 0;
+
+  if (error_type == INTERNAL_ERROR) {
+    len = MIN(strlen(f_msg_internal_error), bufferlen - 1);
+    *((char *) memcpy(buffer[count++], f_msg_internal_error, len) + len) = '\0';
+  }
+  else if (error_type == APPLICATION_ERROR) {
+    len = MIN(strlen(f_msg_application_error), bufferlen - 1);
+    *((char *) memcpy(buffer[count++], f_msg_application_error,len)+len) = '\0';
+  }
+  else {
+    len = MIN(strlen(f_msg_throw_message), bufferlen - 1);
+    *((char *) memcpy(buffer[count++], f_msg_throw_message, len) + len) = '\0';
+  }
       
   // Don't use fprintf because it may try to allocate memory.
   if (Exception::g_current_exception != NULL)
     {
-      sprintf (buffer[count++],
+      snprintf (buffer[count++], bufferlen,
               "   In exception thrown in file \"%s\", line %d,",
               Exception::g_current_exception->f_file,
               Exception::g_current_exception->f_line);
     }
 
   if (message != NULL)
-    sprintf (buffer[count++], "   %s", message);
+    snprintf (buffer[count++], bufferlen, "   %s", message);
 
   // Call user print function if set, otherwise just dump lines.
   if (g_error_handler != NULL)
index e0e08f35b4def3567570e5b85b962c63bdc47a26..1307ebb6233a8e7b64cca15530a2705acfb8d26f 100644 (file)
@@ -4,6 +4,9 @@
 
 #define _Exceptions_hh_active
 
+#undef MIN
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
+
 #ifndef C_API
 #ifndef NATIVE_EXCEPTIONS
 #define NATIVE_EXCEPTIONS
@@ -48,6 +51,16 @@ extern "C" {
 #endif
 #endif
 
+#ifndef UNUSED_VARIABLE
+# if defined(__GNUC__)
+#  define UNUSED_VARIABLE(x) x __attribute__((unused))
+# elif defined(__LCLINT__)
+#  define UNUSED_VARIABLE(x) /*@unused@*/ x
+# else
+#  define UNUSED_VARIABLE(x) x
+# endif
+#endif
+
 #endif /* NATIVE_EXCEPTIONS */
 
 #include "terminate.hh"
@@ -130,7 +143,7 @@ extern "C" {
 
 #define mcatch(TYPE,OBJ) \
     mcatch_noarg (TYPE) \
-    TYPE OBJ = (TYPE) Exception::current_exception();
+    TYPE UNUSED_VARIABLE(OBJ) = (TYPE) Exception::current_exception();
 
 #define end_try \
     } else { \
index 97ce0491e4c062ebb88442c4a5322bea725dc976..ffaf6b9f4aee737d0871db1b93e29f3ab1423972 100644 (file)
@@ -44,7 +44,7 @@ Unwind_Record Unwind_Stack::g_stack[UNWIND_STACK_SIZE];
 // /////////////////////////////////////////////////////////////////
 
 Jump_Environment::Jump_Environment()
-: f_unwinding (0), f_active_exception (NULL)
+: f_active_exception (NULL), f_unwinding (0)
 {
   PRINTF (("<%d> New Jump_Environment @ %p\n", ++g_level, this));
   // Push this on to the top of the jump env stack. 
index 99a896db71ddf15a65dd7f764cef22777b36d8a8..125b5825a42bd3d470df89ddfad487ceb55c4326 100644 (file)
@@ -78,7 +78,7 @@ data_t::data_t(data_t& d)
       {
         int sz = strlen(d.key.str_key);
         key.str_key = new char[sz+1];
-        strcpy(key.str_key, d.key.str_key);
+        *((char *) memcpy(key.str_key, d.key.str_key, sz) + sz) = '\0';
         key.str_key[sz] = 0;
 
         flag = STRING;
@@ -104,8 +104,10 @@ data_t::data_t(const char* str, int sz, voidPtr d) : dt(d)
 
    key.str_key = new char[sz+1];
 
-   if ( sz > 0 )
-      strcpy(key.str_key, str);
+   if ( sz > 0 ) {
+      int len = MIN(strlen(str), (unsigned int) sz);
+      *((char *) memcpy(key.str_key, str, len) + len) = '\0';
+   }
 
    key.str_key[sz] = 0;
 }
@@ -146,6 +148,8 @@ int data_t::operator==(data_t& d)
       case VOID:
         throw(stringException("VOID type in operator==()"));
    }
+
+   return 0;
 }
 
 data_t& data_t::operator =(data_t& d) 
@@ -161,13 +165,12 @@ data_t& data_t::operator =(data_t& d)
 
       case STRING:
         {
-        int d_sz = strlen(d.key.str_key);
+        unsigned int d_sz = strlen(d.key.str_key);
         if ( strlen(key.str_key) < d_sz ) {
            delete key.str_key;
            key.str_key = new char[d_sz+1];
         }
-        strcpy(key.str_key, d.key.str_key);
-        key.str_key[d_sz] = 0;
+        *((char *) memcpy(key.str_key, d.key.str_key, d_sz) + d_sz) = '\0';
         flag = STRING;
         break;
         }
@@ -222,8 +225,7 @@ istream& operator >>(istream& i, data_t& d)
    if ( d.flag == data_t::STRING ) {
       int sz = strlen(key_ptr);
       d.key.str_key = new char[sz+1];
-      strcpy(d.key.str_key, key_ptr);
-      d.key.str_key[sz] = 0;
+      *((char *) memcpy(d.key.str_key, key_ptr, sz) + sz) = '\0';
    }
 
    return i;
@@ -243,6 +245,8 @@ ostream& operator <<(ostream& o, data_t& d)
       case data_t::STRING:
         o << d.key.str_key;
         break;
+      default:
+        break;
    }
 
    o << "      " << (long)(d.dt);
index 0eeba53c520c2e7e861c6158aacc91aac5757c71..de9fec0a0f7fb8bec87797d21e35e082bd726d6a 100644 (file)
@@ -83,12 +83,12 @@ protected:
 public:
    enum flag_type { INT=0, STRING=1, VOID=2 };
 
+   voidPtr dt;     // rest of information in the record
    flag_type flag;
    union {
       int int_key;
       char* str_key;
    } key;
-   voidPtr dt;     // rest of information in the record
 
    data_t(): dt(0), flag(data_t::VOID) {} ;
    data_t(data_t&) ;
index 934ef71d299a74884035058decd45607aa31324c..e69fb0c5c8430df5d8c5b4963ea23a82368e2396 100644 (file)
@@ -93,12 +93,12 @@ protected:
    int k;        // parameter used in the 1st level hash function
    int p;        // prime number p
 
-   int n;        // current key set size
    int H;        // current hash table size
    int B;        // current bucket table size
+   int n;        // current key set size
 
-   data_tPtr* hash_table;   // the hash table
    imp_bucketPtr* bucket_array;    // bucket array
+   data_tPtr* hash_table;   // the hash table
 
    bucket_holder* free_list_head ;   // free bucket holder list head
    bucket_holder* collected_records; // collected bucket list head
index f67eb6b6b25a32e9807291d86f81b89bd95bbc0c..aa66f076c1e277ea9810da8566761cbc29735006 100644 (file)
@@ -60,12 +60,13 @@ bucket::bucket(char* key, int orig_position, Boolean copy) :
 {
 
    char* x = 0;
+   int len;
 
    switch (copy) {
      case true:
-       x = new char[strlen(key)+1];
-       strcpy(x, key);
-       x[strlen(key)] = 0;
+       len = strlen(key);
+       x = new char[len + 1];
+       *((char *) memcpy(x, key, len) + len) = '\0';
        break;
      case false:
        x = key;
@@ -90,12 +91,13 @@ bucket::~bucket()
 int bucket::add_key(char* key, Boolean copy)
 {
    char *x = 0;
+   int len;
 
    switch (copy) {
      case true:
-       x = new char[strlen(key)+1];
-       strcpy(x, key);
-       x[strlen(key)] = 0;
+       len = strlen(key);
+       x = new char[len + 1];
+       *((char *) memcpy(x, key, len) + len) = '\0';
        break;
      case false:
        x = key;
@@ -140,8 +142,8 @@ h_convertor(pms.v_n, 128, rnd)
 {
    v_bucket_array = new bucketPtr[v_no_buckets]; 
 
-   int i;
-   for ( i=0; i<v_no_buckets; v_bucket_array[i++] = 0);
+   unsigned int i;
+   for ( i=0; i < (unsigned int) v_no_buckets; v_bucket_array[i++] = 0);
 
 //debug(cerr, pms);
 
@@ -188,7 +190,7 @@ int buckets::bucket_num(char* k, params& pms)
 
 //debug(cerr, sum);
 
-   if ( sum < pms.v_p1 ) {
+   if ( sum < (int) pms.v_p1 ) {
       sum %= pms.v_p2;
    } else {
       sum %= (pms.v_b - pms.v_p2);
index 72a897b476937bad018e02f7471a81ca4ee6f831..6b6a993939fbebe2a51980446dbc9daf78a476e9 100644 (file)
@@ -79,10 +79,10 @@ public:
 
 protected:
    short v_no_keys;
-   int v_orig_pos;
+   int v_count;
    int v_control_bit;
    int v_g_value;
-   int v_count;
+   int v_orig_pos;
    slist_void_ptr_cell* key_ptr;
 
    friend class buckets;
index c48aab03976c40b08a45123894e2e9681a9216d5..f702a29fa05d896a5ff7702b9132aed74d268b2a 100644 (file)
@@ -277,7 +277,8 @@ int write_spec(buckets& bs, params& pms, buffer& mphf_buffer)
 int compact(buckets& bs, unsigned s[], int t, Boolean swap)
 {
    int target, k, i, remaining_bits, branch;
-   unsigned unsigned_g, high_part_bits, lower_part_bits;
+   unsigned unsigned_g, high_part_bits;
+   unsigned lower_part_bits = 0;
 
    remaining_bits = BITS_IN(unsigned);
    k = target = 0;
@@ -331,7 +332,7 @@ debug(cerr, "=====");
        branch = 0;
      } else {
         high_part_bits = getbits(unsigned_g,t,remaining_bits);
-        lower_part_bits  = unsigned_g & ~(~0 << t-remaining_bits);
+        lower_part_bits  = unsigned_g & ~(~0 << (t-remaining_bits));
         lower_part_bits <<= (BITS_IN(unsigned)- (t-remaining_bits));
 
         s[k++] =  target | high_part_bits;
index 701123f9ee141075d98cfd4482ee5125b8358cc9..5f79c36f5b7b87da85f43f624c453bb8546b1682 100644 (file)
@@ -62,9 +62,9 @@ struct partition_t {
 
 void params::select_value(float bts)  
 {
-   int i;
+   unsigned int i;
    for ( i=0; ; i++ ) {
-      if ( v_n <= partition_tbl[i].upper_bound )
+      if ( (int)v_n <= partition_tbl[i].upper_bound )
          break;
    }
 
index b697e6f7fb9fbaac81dee424c5d044744118a9c2..b105683a058ad886b9a8e0805329bf8a092dd17b 100644 (file)
@@ -97,7 +97,7 @@ dyn_memory_index::~dyn_memory_index()
       my_oid().asciiOut(oid_t_out);
 */
 
-      abs_storage* x = get_store();
+      get_store();
       fstream out(
            form("%s.%s", storage_ptr->my_path(), storage_ptr->my_name()), 
            ios::out
index 87bb4a5697a1c4453e78e3f8b4bdd07604cce110..dbd1fb7242a1887101dfb5933c64957f9fa54222 100644 (file)
@@ -241,6 +241,8 @@ debug(cerr, t);
 
 int fast_mphf::hashTo(const key_type& k)
 {
+   unsigned int i;
+
    if ( v_long_string_core_indexed == false ) {
       v_long_string_core_indexed = true;
    }
@@ -255,7 +257,7 @@ debug(cerr, k);
       throw(stringException("hash table empty"));
    }
 
-   int i = v_tbl0 -> atoi(k.get(), k.size(), r, v_key_set_sz); // for halmphf
+   i = v_tbl0 -> atoi(k.get(), k.size(), r, v_key_set_sz); // for halmphf
 
 
    if ( i < v_p1 ) {
@@ -281,7 +283,7 @@ debug(cerr, k);
 
 int fast_mphf::gValue(int i, int& gvalue, int& ctl_bit) 
 {
-   if ( !INRANGE(i, 0, v_no_ps-1) ) {
+   if ( !INRANGE(i, 0, (int) v_no_ps-1) ) {
       throw(boundaryException(0, v_no_ps-1, i));
    }
 
@@ -428,7 +430,7 @@ fast_mphf::print_mapping(const char *key_file, int option)
    }
 
    char *hash_table = new char[v_hash_tbl_sz];
-   for (int i = 0; i < v_hash_tbl_sz; hash_table[i++] = 0 );
+   for (unsigned int i = 0; i < v_hash_tbl_sz; hash_table[i++] = 0 );
 
    ostring lbuf(LBUFSIZ);
 
@@ -470,7 +472,7 @@ void fast_mphf::print_tbls(ostream& out)
 void fast_mphf::print_gvalues(ostream& out) 
 {
    int gv, cbit;
-   for (int i = 0; i<v_no_ps; i++ ) {
+   for (unsigned int i = 0; i<v_no_ps; i++ ) {
       out << i;
       gValue(i, gv, cbit);
       out << " " <<  gv << " " << cbit << "\n";
@@ -479,7 +481,7 @@ void fast_mphf::print_gvalues(ostream& out)
 
 int fast_mphf::print_bits(unsigned x, ostream& out)
 {
-   for ( int i=0; i<8*sizeof(unsigned); i++ ) {
+   for ( unsigned int i=0; i<8*sizeof(unsigned); i++ ) {
       if ( BIT_TEST(x, 0x80000000) )
         out << "1";
       else
index 055a6051a843549ed8f252ccb377574ec3451a4e..7efccc8e3c6219cdd901f60bc64b188c8db2e7d3 100644 (file)
@@ -107,11 +107,13 @@ oid_t c_index::first_of_invlist(int ind)
 
 Boolean c_index::get_key_string(const handler& t) const
 {
-   ostringstream out(v_static_key.get());
+   ostringstream out;
+   int len;
 
    ((handler&)t) -> asciiOut(out);
-   v_static_key.set_size(out.str().size());
-   strcpy(v_static_key.get(), out.str().c_str());
+   len = out.str().size();
+   v_static_key.set_size(len);
+   *((char *) memcpy(v_static_key.get(), out.str().c_str(), len) + len) = '\0';
 
    return true;
 }
@@ -119,12 +121,14 @@ Boolean c_index::get_key_string(const handler& t) const
 Boolean c_index::get_key_string(const oid_t& t) const
 {
    v_static_key.reset();
+   int len;
 
    ostringstream out(v_static_key.get());
    t.asciiOut(out);
 
-   v_static_key.set_size(out.str().size());
-   strcpy(v_static_key.get(), out.str().c_str());
+   len = out.str().size();
+   v_static_key.set_size(len);
+   *((char *) memcpy(v_static_key.get(), out.str().c_str(), len) + len) = '\0';
 
    return true;
 }
index f95552e9bff846eff3e049a796e3298625caed95..c57034a10e5e1a39b141c17e5f6497f7f5bb06e7 100644 (file)
@@ -140,7 +140,7 @@ ostream& operator <<(ostream&s, inv_lists& o)
 
 void inv_lists::insert_to_list(int index, oid_t& id)
 {
-   if ( !INRANGE(index, 1, v_sz) ) {
+   if ( !INRANGE(index, 1, (int) v_sz) ) {
       throw(boundaryException(1, v_sz, index));
    }
 
index 8f061460168ec68aadee25cdcfc0f674ecf2d596..1a33248449c2304ba81f31e5e8b37d9049462071 100644 (file)
@@ -154,7 +154,6 @@ istream& operator >>(istream& in, mark_t& m)
 {
    char c ;
    char* ptr = m.get();
-   int count = m.size();
    Boolean read_marks = false;
 
    while ( in && in.get(c) ) {
index 2db64369c58bb752d1caa0cbdf415bf1fffd5a78..2820ce09cd3c96019ad20704995f1fd253f793b0 100644 (file)
@@ -169,7 +169,7 @@ cerr << "\n";
 */
 
 
-   if ( len < CLASS_CODE_BYTES || z == 0 ) 
+   if ( len < (int) CLASS_CODE_BYTES || z == 0 )
       throw(stringException("_peek_obj(): corrupted data"));
 
    c_code_t class_code; 
@@ -265,13 +265,13 @@ template_mgr_t::init_obj(abs_storage* store, mmdb_pos_t pos, root*& x)
             object_template -> set_cdr_size(cdr_io_buf.content_sz());
        }
 
-       int cdr_sz = object_template -> get_cdr_size();
-
 
 /////////////////
 // safety check
 /////////////////
 #ifdef DEBUG
+       int cdr_sz = object_template -> get_cdr_size();
+
        if ( obj_len != cdr_sz ) {
           debug(cerr, obj_len);
           debug(cerr, cdr_sz);
index 881aac50c4a8801044b2cf4904abdeb627688961..f8f76f7f42d3518989bb79804c67594f96806d87 100644 (file)
@@ -54,6 +54,8 @@
 #include <sys/time.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
+#include <ctype.h>
 
 #ifdef SVR4
 #include <sys/systeminfo.h>
@@ -123,7 +125,6 @@ gethostid()
 const char *
 unique_id (void)
 {
-  static unsigned int info[4];
   static char buf[16];
   static unsigned int hostid;
   static struct timeval cur_time, old_time;
@@ -194,7 +195,7 @@ unique_id (void)
          printf ("%2d  0x%02x  ", i, ch);
          PRINT_BITS (ch);
 #endif
-         buf[i] = mapping[buf[i]];
+         buf[i] = mapping[(int)buf[i]];
        }
 
     } while (!isalnum (buf[0]));
index 8a3e2b7ea0ee2899547ee97d89c857b15b9c8a83..2c832adeee595f607c098d4c4683fb6c768e6003 100644 (file)
@@ -72,7 +72,7 @@ int composite::first() const
 
 void composite::next(int& index) const
 {
-   if INRANGE( index, 1, v_sz - 1 )
+   if INRANGE( index, 1, (int) v_sz - 1 )
       index ++;
    else 
       index = 0;
index 4125e14c8799935e948547fb422a937717939990..81a1d799745aeea0d7e84aef9961cf95338e1dec 100644 (file)
@@ -73,10 +73,10 @@ protected:
 
    oid_t compress_agent_id;
 
-   unsigned int v_uncompressed_sz;
-   
    compress_agent_handler* agent;
 
+   unsigned int v_uncompressed_sz;
+
 protected:
    void _compress();
 
index b14008c51f0c3cf2d4360bbd005c3ca0425bd6b2..cb6086f083d939c1b1c549e1426205a5911f200b 100644 (file)
@@ -100,7 +100,7 @@ handler* cset::get_component(int index)
 
 oid_list_handler* cset::get_locs(handler& query, int index)
 {
-   if ( !INRANGE(index, 0, num_indices-1) ) {
+   if ( !INRANGE(index, 0, (int) num_indices-1) ) {
       MESSAGE(cerr, "cset::get_locs(): invalid index");
       throw(boundaryException(0, num_indices-1, index));
    }
@@ -115,7 +115,7 @@ oid_list_handler* cset::get_locs(handler& query, int index)
 
 oid_t cset::get_first_oid(const handler& query, int index)
 {
-   if ( !INRANGE(index, 0, num_indices-1) ) {
+   if ( !INRANGE(index, 0, (int) num_indices-1) ) {
       MESSAGE(cerr, "cset::get_first_oid(): invalid index");
       throw(boundaryException(0, num_indices-1, index));
    }
@@ -130,7 +130,7 @@ oid_t cset::get_first_oid(const handler& query, int index)
 
 c_index_handler* cset::get_index_ptr(int index)
 {
-   if ( !INRANGE(index, 0, num_indices-1) ) {
+   if ( !INRANGE(index, 0, (int) num_indices-1) ) {
       MESSAGE(cerr, "cset::get_index_ptr(): invalid index");
       throw(boundaryException(0, num_indices-1, index));
    }
@@ -140,7 +140,7 @@ c_index_handler* cset::get_index_ptr(int index)
 
 void cset::batch_index_begin() 
 {
-   for ( int i=0; i<num_indices; i++ ) {
+   for ( unsigned int i=0; i<num_indices; i++ ) {
       if ( indices[i] != 0 ) {
          (*indices[i]) -> batch_index_begin();
       }
@@ -149,7 +149,7 @@ void cset::batch_index_begin()
 
 void cset::batch_index_end() 
 {
-   for ( int i=0; i<num_indices; i++ ) {
+   for ( unsigned int i=0; i<num_indices; i++ ) {
       if ( indices[i] != 0 ) {
          (*indices[i]) -> batch_index_end();
       }
@@ -255,7 +255,7 @@ new_object.its_oid().asciiOut(cerr); cerr << "\n";
 #endif
    }
 
-   for ( int i = 1; i < num_indices; i++ ) {
+   for ( unsigned int i = 1; i < num_indices; i++ ) {
 
       if ( indices[i] == 0 )
           continue;
@@ -287,7 +287,7 @@ Boolean cset::remove_component(const oid_t& x_oid)
 {
    handler* x = new handler(x_oid, storage_ptr);
 
-   for ( int i = 1; i < num_indices; i++ ) {
+   for ( unsigned int i = 1; i < num_indices; i++ ) {
 
       if ( indices[i] == 0 )
          continue;
@@ -324,7 +324,7 @@ cset::update_index(handler* old_comp_obj, handler* new_comp_obj,
                    oid_t& main_obj_oid)
 {
 
-   if ( !INRANGE(index, 1, num_indices-1) ) {
+   if ( !INRANGE(index, 1, (int) num_indices-1) ) {
       throw(boundaryException(1, num_indices-1, index));
    }
 
@@ -364,7 +364,7 @@ io_status cset::cdrIn(buffer& buf)
 
 void cset::commit() 
 {
-   for ( int i = 1; i < num_indices; i++ ) {
+   for ( unsigned int i = 1; i < num_indices; i++ ) {
 
       if ( indices[i] )
          indices[i] -> commit();
index d8a2055410389bde4bb82853bf996dbb1c6b5ab8..b975d7811bc65fa0c336cee13fa1852baff21520 100644 (file)
@@ -179,7 +179,7 @@ handler* dl_list::get_component(int index)
 
 oid_list_handler* dl_list::get_locs(handler& query, int index)
 {
-   if ( !INRANGE(index, 0, v_num_indices-1) )
+   if ( !INRANGE(index, 0, (int) v_num_indices-1) )
       throw(boundaryException(0, v_num_indices-1, index));
 
    if ( v_indices[index] == 0 ) 
@@ -352,7 +352,7 @@ v_dl_list_tail.asciiOut(out); cerr << "\n";
 
    oid_t* cell_ptr = &v_dl_list_head;
 
-   for ( int i=1; i<=v_sz; i++ ) {
+   for ( unsigned int i=1; i<=v_sz; i++ ) {
 
        if ( cell_ptr == 0 ) {
           throw(stringException("broken chain"));
@@ -377,7 +377,7 @@ v_dl_list_tail.asciiOut(out); cerr << "\n";
 
 void dl_list::batch_index_begin()
 {
-   for ( int i=0; i<v_num_indices; i++ ) {
+   for ( unsigned int i=0; i<v_num_indices; i++ ) {
       if ( v_indices[i] != 0 ) {
         (*v_indices[i]) -> batch_index_begin();
       }
@@ -386,7 +386,7 @@ void dl_list::batch_index_begin()
 
 void dl_list::batch_index_end()
 {
-   for ( int i=0; i<v_num_indices; i++ ) {
+   for ( unsigned int i=0; i<v_num_indices; i++ ) {
       if ( v_indices[i] != 0 ) {
          (*v_indices[i]) -> batch_index_end();
       }
@@ -456,7 +456,7 @@ dl_list::insert_to_indices(const dl_list_cell_handler& new_object)
 
    }
 
-   for ( int i = 1; i < v_num_indices; i++ ) {
+   for ( unsigned int i = 1; i < v_num_indices; i++ ) {
 
       if ( v_indices[i] == 0 ) continue;
 
@@ -521,7 +521,7 @@ io_status dl_list::cdrIn(buffer& buf)
 
 oid_t dl_list::get_first_oid(const handler& query, int index)
 {
-   if ( !INRANGE(index, 0, v_num_indices-1) ) {
+   if ( !INRANGE(index, 0, (int) v_num_indices-1) ) {
        MESSAGE(cerr, "cset::get_first_oid(): invalid index");
        throw(boundaryException(0, v_num_indices-1, index));
    }
@@ -535,7 +535,7 @@ oid_t dl_list::get_first_oid(const handler& query, int index)
 
 void dl_list::commit()
 {
-   for ( int i = 1; i < v_num_indices; i++ ) 
+   for ( unsigned int i = 1; i < v_num_indices; i++ )
    {
       if ( v_indices[i] ) 
         v_indices[i] -> commit() ;
index 906ce2a6e89503c6afb55df219023ba795739ca8..484c773a42a0fa5cd56e8bc2c4a55586b86b4b34 100644 (file)
@@ -92,9 +92,9 @@ protected:
    //static memory_pool handler_space_pool;
 
 protected:
-   rootPtr obj_ptr;
    abs_storage* store;
    oid_t obj_id;
+   rootPtr obj_ptr;
 };
 
 
index e655cac2ca62947367f081bcb75fe080055b2f6a..e1568e5322945c22c9c4779978a59db7ed37b9af 100644 (file)
@@ -85,7 +85,7 @@ long_pstring::extract(int left, int right, char* sink)
 //debug(cerr, right);
 //debug(cerr, int(v_str_ptr.loc));
 
-   if ( left > right || right - left > v_sz ) {
+   if ( left > right || right - left > (int) v_sz ) {
       throw(boundaryException(left, right, v_sz));
    }
   
index 1a02df8627d2eecea09db63f9c2dd9eee2ef177e..a277c7623b137f75d04c2e4d3d663ad308d9841d 100644 (file)
@@ -105,7 +105,7 @@ oid_list::oid_list(oid_list& x) :
    list_ptr.loc = 0;
    init_data_member(x.v_sz);
 
-   for ( int i=1; i<=v_sz; i++ )
+   for ( unsigned int i=1; i<=v_sz; i++ )
       update_component(i, x(i));
 }
 
@@ -240,7 +240,7 @@ debug(cerr, int(this));
 debug(cerr, int(list_ptr.p));
 */
 
-   if ( !INRANGE(ind, 1, v_sz) ) {
+   if ( !INRANGE(ind, 1, (int) v_sz) ) {
       MESSAGE(cerr, "oid_list::opeartor(): out of range");
       throw(boundaryException(1, v_sz, ind));
    }
@@ -330,7 +330,7 @@ oid_list::update_component(int index, const oid_t& new_oid)
 {
 //MESSAGE(cerr, "oid_list::update_component()");
 //debug(cerr, my_oid());
-   if ( !INRANGE(index, 1, v_sz) ) {
+   if ( !INRANGE(index, 1, (int) v_sz) ) {
       MESSAGE(cerr, "oid_list update(): out of range");
       throw(boundaryException(1, v_sz, index));
    }
@@ -379,8 +379,6 @@ io_status oid_list::asciiIn(istream& in)
    if ( in.get() != '\n' ) 
       throw(formatException("should be a \n"));
 
-   handler* hd_ptr = 0;
-
    dlist temp_list;
    dlist_void_ptr_cell* y = 0;
 
index e221ae1bd02e49e22e9e1edcfd145de0251cb61e..beafdaf4334b0939f59857bbed2c30c01122d8e6 100644 (file)
@@ -66,8 +66,8 @@
 class oid_list: public composite
 {
 protected:
-   chunks_index* chk_index;
    Boolean f_internal_index;
+   chunks_index* chk_index;
 
    union {
       mmdb_pos_t loc;
index 987909670145c58edd1e70718b0e36acde10878f..c453c1d7406fb28bfe41ae8f822145894720fc94 100644 (file)
@@ -111,8 +111,8 @@ oid_t::oid_t(const char* source, Boolean ascii_format, Boolean swap_order)
 
 /*
 MESSAGE(cerr, "constr oid_t using a string");
-debug(cerr, c_code);
-debug(cerr, i_code);
+debug(cerr, v_c_code);
+debug(cerr, v_i_code);
 */
 }
 
index 0c1cc14704bacd52ba3a6f19a9f390cc2c55b45e..44d21a39600ad2b8963e7b0fb0523a8906a82df3 100644 (file)
@@ -77,7 +77,7 @@ public:
    oid_t(c_code_t c, i_code_t i) : v_c_code(c), v_i_code(i), v_e_code(0) {};
    oid_t(const char* source, Boolean ascii_format, Boolean swap_order);
    oid_t(const oid_t& x) : 
-      v_e_code(x.v_e_code), v_c_code(x.v_c_code), v_i_code(x.v_i_code) {};
+      v_c_code(x.v_c_code), v_i_code(x.v_i_code), v_e_code(x.v_e_code) {};
    ~oid_t() {};
 
 // oid_t equal and less test
@@ -138,10 +138,10 @@ protected:
    }
 
 protected:
-   e_code_t v_e_code; // extended code. Not used within this class.
-                      // for using extra space purpose.
    c_code_t v_c_code; // class code
    i_code_t v_i_code; // instance code
+   e_code_t v_e_code; // extended code. Not used within this class.
+                      // for using extra space purpose.
 };
 
 typedef oid_t* oid_tPtr;
index 784cfc6e9a39f4bfdfc2ac465489125d8c36972f..04bd4180c0997272fd25c31503d65afcaabdb246 100644 (file)
@@ -271,7 +271,7 @@ cerr << "\n";
 
    out << v_sz << '\t';
 
-   for ( int i=0; i<v_sz; i++ )
+   for ( unsigned int i=0; i<v_sz; i++ )
       out << x[i];
 
     return done;
@@ -380,7 +380,7 @@ for (int i=0; i<new_value_sz; i++)
          v_str_ptr.p = new char[v_sz+1];
       } 
       memcpy(v_str_ptr.p, new_value, v_sz);
-
+      *(v_str_ptr.p + v_sz) = '\0';
    }
 
    set_mode(UPDATE, true);
index 8aa93bd642b4cba526e0c81950035f1ab91315b8..147f74f630c466b63023db6f5499fe2c05259274 100644 (file)
@@ -127,8 +127,8 @@ protected:
 /***************************/
 // instance-wise data 
 /***************************/
-   status_t status;      
    oid_t f_oid;
+   status_t status;
    abs_storage* storage_ptr;
 
    virtual void init_persistent_info(persistent_info* = &transient_info);
index c9daab1cc3146e7b9ff33dd76b1ca91fba991da5..c7b617375278313f4ea4f6b43874590df66bdc43 100644 (file)
@@ -129,7 +129,7 @@ short_list::~short_list()
 
 handler* short_list::get_component(int index) 
 {
-  if ( !INRANGE(index, 1, v_sz) ) {
+  if ( !INRANGE(index, 1, (int) v_sz) ) {
      MESSAGE(cerr, "out of range in short_list::get_component()");
      throw(boundaryException(1, v_sz, index));
   }
@@ -155,7 +155,7 @@ io_status short_list::asciiOut(ostream& out)
    my_oid().asciiOut(out);
    out << "\n";
 
-   for ( int i=1; i<=v_sz; i++ ) {
+   for ( unsigned int i=1; i<=v_sz; i++ ) {
 
       handler* hd_ptr = get_component(i);
 
@@ -187,10 +187,10 @@ io_status short_list::asciiIn(istream& in)
 #ifndef C_API
    oid_t oid_buffer[OID_BUFFER_SIZE]; 
    int oid_buffer_level = 0;
+   int ct = 0;
 #endif
 
    char c;
-   int ct = 0;
    while ( (c = in.get()) != LIST_MARK_CHAR ) {
 
       in.putback(c);
index 5941730cfa14ed63e3dce21ce1d66fa4f9f99f2d..03e84727085ee0c2b97ec3ec8973648815d27a96 100644 (file)
@@ -77,7 +77,7 @@ handler* tuple::get_component(int index)
 //debug(cerr, int(storage_ptr));
 
 
-   if (!INRANGE(index, 1, v_sz)) {
+   if (!INRANGE(index, 1, (int) v_sz)) {
       MESSAGE(cerr, "out of range in tuple::get_component()");
       throw( boundaryException(1, v_sz, index) );
    }
@@ -112,7 +112,7 @@ io_status tuple::asciiOut(ostream& out)
    out << "\n";
    // debug(cerr, v_sz);
 
-   for ( int i=1; i<=v_sz; i++ ) {
+   for ( unsigned int i=1; i<=v_sz; i++ ) {
     
       handler* hd_ptr = get_component(i);
 
@@ -154,7 +154,7 @@ MESSAGE(cerr, "\n");
       throw(stringException("'\\n' expected"));
    }
 
-   if ( comps > v_sz ) {
+   if ( comps > (int) v_sz ) {
 MESSAGE(cerr, "tuple asciiIn(): to expand space");
 debug(cerr, comps);
 debug(cerr, v_sz);
index 146d0f481bbc21d9a930c8c11566a077a2258697..6cf2be1fe336f29def2b879cb9dfcb712f9529c5 100644 (file)
@@ -77,7 +77,9 @@ char* get_oid_2(info_lib* infolib_ptr, char* base_str, char* locator)
     if ( strcmp( this_node_locator, locator) == 0 ) {
         ostringstream strout(oid_in_string_buf, ios::out);
         x.its_oid().asciiOut(strout);
-        strcpy(oid_in_string_buf, strout.str().c_str());
+        int len = strout.str().size();
+        *((char *) memcpy(oid_in_string_buf,
+                         strout.str().c_str(), len) + len) = '\0';
     } else {
          cerr << "dangling locator " << locator << "\n"
               << "mismatches with " << this_node_locator << "\n"
index 4e4d77c857521c0b25d4fa05b803c0b3b85e261d..a955b21d052798bd46164ba6fdbde93fd14336c9 100644 (file)
@@ -29,7 +29,6 @@ extern "C"
 void showBook(DtMmdbInfoRequest* req)
 {
     const char* str = 0;
-    int size = 0;
     DtMmdbHandle* id = 0;
     unsigned int l;
     int x ;
@@ -59,7 +58,7 @@ void showBook(DtMmdbInfoRequest* req)
 
     ids = DtMmdbBookGetTabList(req, &l);
     if (ids) {
-      for ( x=0; x<l; x++ )
+      for ( x=0; x<(int)l; x++ )
         fprintf(stderr, "        bookInfo: tab section id=%s\n", DtMmdbHandleToString(ids[x]));
     }
     DtMmdbFreeHandleList(ids);
@@ -70,9 +69,7 @@ extern "C"
 int test_book1(int argc, char** argv)
 {
    int j = 0;
-   int n = 0;
    int i = -1;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
 
    switch ( argc ) {
@@ -102,10 +99,9 @@ extern "C"
 int test_book2(int argc, char** argv)
 {
    int j = 0;
-   int n = 0;
    int i = -1;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
+
    switch ( argc ) {
      case 5:
       {
@@ -133,10 +129,9 @@ extern "C"
 int test_book3(int argc, char** argv)
 {
    int j = 0;
-   int n = 0;
    int i = -1;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
+
    switch ( argc ) {
      case 5:
       {
index 55f61322689fe5fb6f6fdf1a42cf274a71c54d03..890d923fdce5898b8b0f64fd18e6fced50ad5caa 100644 (file)
@@ -271,6 +271,8 @@ int auto_test_c_api(int argc, char** argv)
       return -1;
    }
    end_try;
+
+   return -1;
 }
 
 
@@ -332,7 +334,7 @@ char* DtMmdbHandleToString(DtMmdbHandle* x)
    static char buf[100];
    if ( x -> oid_ptr) {
       oid_t *z = (oid_t*)(x -> oid_ptr);
-      sprintf(buf, "%d.%d", z -> ccode(), (int)z -> icode());
+      snprintf(buf, sizeof(buf), "%d.%d", z -> ccode(), (int)z -> icode());
    } else
      buf[0] = 0;
 
index adc3b9d9cc0b682e9746c11ebf2069b5c6d9e5c9..009afab331499557c44dbb3ffc3de2c6d291ab10 100644 (file)
@@ -49,7 +49,6 @@ int test_dlp(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req ;
 
    switch ( argc ) {
index 1f0e505f12b649878dc981a36e54be2ecc0cc895..b9bf70a41005e9744f87b572416f706f114073dd 100644 (file)
@@ -31,7 +31,7 @@ void showGraphic(DtMmdbInfoRequest* req)
 {
    const char* str;
    unsigned int l;
-   int i;
+   unsigned int i;
    DtMmdbGraphicInfo* info ;
 
    if ( req == 0 ) return ;
@@ -68,7 +68,6 @@ int test_graphic1(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req;
 
    switch ( argc ) {
@@ -99,7 +98,6 @@ int test_graphic2(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req;
 
    switch ( argc ) {
index 8e8339a1ab6cb564bef47eeb75b080d0725fc6f1..37f836145be8f58d60c418e4033b5dedde4e79c9 100644 (file)
@@ -56,8 +56,6 @@ DtMmdbOpenInfoLib(
 {
    mtry {
 
-      Boolean option = (delayed_infolib_init == DtMmdbTrue) ? true : false;
-
       mmdb_ptr = new OLIAS_DB;
       info_lib* x = mmdb_ptr -> openInfoLib(infolib_path, selected_base_name);
    
index 9cfc7abdf0478e3275a5543ff15a69cc291b83d7..b54291f3af461132c48045ba4678cbf18c56d76f 100644 (file)
@@ -49,7 +49,6 @@ int test_loc1(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req;
 
    switch ( argc ) {
@@ -80,7 +79,6 @@ int test_loc2(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req ;
 
    switch ( argc ) {
index 19f26e2fdac9e095dcb8d2938134eb2a9be0894b..ff77b8120a81aa7c246320b1f1705ee371972b72 100644 (file)
@@ -75,9 +75,7 @@ extern "C"
 int test2(int argc, char** argv)
 {
    int j = 0;
-   int n = 0;
    int i = -1;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
 
    switch ( argc ) {
@@ -106,10 +104,9 @@ extern "C"
 int test3(int argc, char** argv)
 {
    int j = 0;
-   int n = 0;
    int i = -1;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
+
    switch ( argc ) {
      case 5:
       {
index 9b66f93c4cea3eeeade810f6026ca742c52b2376..1b9d911db6c1b063d28c6aa6dc2a33a6a30e282a 100644 (file)
@@ -49,7 +49,6 @@ int test_ss1(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req ;
 
    switch ( argc ) {
@@ -80,7 +79,6 @@ int test_ss2(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req ;
 
    switch ( argc ) {
index 718503069a1d2510bd9462cbc13b38dd7b81d7b6..49673372c2548817afea9c418da0f7ebefe2d8ff 100644 (file)
@@ -156,7 +156,7 @@ char* DtMmdbHandleToString(DtMmdbHandle* x)
    static char buf[100];
    if ( x -> oid_ptr) {
       oid_t *z = (oid_t*)(x -> oid_ptr);
-      sprintf(buf, "%d.%d", z -> ccode(), z -> icode());
+      snprintf(buf, sizeof(buf), "%d.%d", z -> ccode(), z -> icode());
    } else
      buf[0] = 0;
 
index c6e666cca7def632d635309a58579974a7cd7b80..80e0c133b7823fa0fa583ed6b8ddc1d80ba577fb 100644 (file)
@@ -30,7 +30,7 @@ void showTOC(DtMmdbInfoRequest* req)
 {
    DtMmdbHandle* id = 0;
    unsigned int ct = 0;
-   int i = 0;
+   unsigned int i = 0;
    DtMmdbHandle** ids = 0;
 
    if ( req == 0 ) return ;
@@ -59,7 +59,6 @@ int test4(int argc, char** argv)
 {
    int j = 0;
    int i = 0;
-   const char* str;
    DtMmdbInfoRequest* req = 0;
 
    switch ( argc ) {
index d8f428efa0166beb0bee7f354cf234138baa649b..70277c8f327b297f89760fd04fb8ceee5a8bdfdd 100644 (file)
@@ -49,9 +49,9 @@ protected:
    oid_t get_oid(int index);
 
 protected:
-   int f_index;
    cset_handler* f_set_ptr;
    info_base* f_base;
+   int f_index;
 };
 
 // iterator over node set
index 287a78f214f0ac01d4cdd339d01191124df60074..405754bba2de7a4d26d75d6bc1195840adfda969 100644 (file)
@@ -184,6 +184,8 @@ const char* graphic_smart_ptr::title()
      return 0;
   } 
   end_try;
+
+  return 0;
 }
 
 int graphic_smart_ptr::type() const
index 6def80fee7421196f30be80eaad6c83e296934e2..50e8d8c9464f0984612c5c4a5f04c24b8b74e947 100644 (file)
@@ -71,7 +71,8 @@ int compare_graphic(graphic_smart_ptr& pattern, info_base* base_ptr)
    print_graphic(pattern, pattern_out, false);
 
    char loc[BUFSIZ];
-   strcpy(loc, pattern.locator());
+   int len = MIN(strlen(pattern.locator()), BUFSIZ -1);
+   *((char *) memcpy(loc, pattern.locator(), len) + len) = '\0';
 
    graphic_smart_ptr x( base_ptr, loc );
    char db_buf[LARGE_BUFSIZ];
index 27d7772bbcb0703ddc8476beed02be0c2081684a..9220f4c66ed33c3adf521b938d6dc47f8b73bfe1 100644 (file)
@@ -63,7 +63,7 @@ mark_base* get_mark_base(char* path, char* name)
                         );
    }
 
-   catch (mmdbException &,e)
+   catch (MMDBeXCEPtion &,e)
    {
        return 0;
    } end_try;
index 8d0053347c0956d16b800fe24e669976cd45d0f8..ed1c9f396b0682e828a0cb9901874509309642ff 100644 (file)
@@ -214,7 +214,7 @@ Boolean OLIAS_DB::real_destroy(const char* infoLibPath, const char* infoLibName)
    int major_mm_version = 0;
    int minor_mm_version = 0;
 
-   sprintf(buf, "%s/%s", infoLibPath, MAP_FILE_8_3);
+   snprintf(buf, sizeof(buf), "%s/%s", infoLibPath, MAP_FILE_8_3);
    fstream in(buf, ios::in);
 
    while ( in.getline(base_name, PATHSIZ, '\t') ) {
index 95b7eb7ff70198198c9b329f0ffeb0e7dbd07f0f..c331c0cf6cce9c705631d0085291b7a257566d30 100644 (file)
@@ -55,7 +55,8 @@ int compare_node(node_smart_ptr& pattern, info_base* base_ptr)
    print_node(pattern, pattern_out, false, false);
 
    char loc[BUFSIZ];
-   strcpy(loc, pattern.locator());
+   int len = MIN(strlen(pattern.locator()), BUFSIZ - 1);
+   *((char *) memcpy(loc, pattern.locator(), len) + len) = '\0';
 
    node_smart_ptr x( base_ptr, loc );
    char db_buf[LARGE_BUFSIZ];
index c5768813f5ea6566bd62f913f665ee242b57b837..ec401c550a0bfc5e271bb2bbb38c45d5b647ec5a 100644 (file)
@@ -102,14 +102,14 @@ void insert_to_collection(c_code_t ccode, istream& in)
     coll_type obj_type = VOID;
 
     abs_storage* store = 0;
-    handler* hd = 0;
+//  handler* hd = 0;
 
     int i;
     for ( i = 0; i<SET_MAP_SZ ; i++ ) {
       if ( set_map[i].instance_class_code == ccode ) {
          obj_type = SET;
          store = set_map[i].collection_hd -> its_store();
-         hd = set_map[i].collection_hd;
+//       hd = set_map[i].collection_hd;
          break;
       }
     }
@@ -119,7 +119,7 @@ void insert_to_collection(c_code_t ccode, istream& in)
        if ( list_map[i].instance_class_code == ccode ) {
          obj_type = LIST;
           store = list_map[i].collection_hd -> its_store();
-          hd = set_map[i].collection_hd;
+//        hd = set_map[i].collection_hd;
           break;
        }
     }
index 1874de8406c098df96044b1f56bf1dd077a70a05..fad998dd994eeddf416db8d7d19fe2c5797e4b9a 100644 (file)
@@ -236,7 +236,7 @@ int generate_stream(info_base* b_ptr, char* path, int num_sections, int min, int
    int stylesheets = x.pick_a_value(5, 20); // assume [5, 20] is the range
 
    char buf[BUFSIZ];
-   sprintf(buf, "%s/%s", path, TEST_STY_FILE);
+   snprintf(buf, sizeof(buf), "%s/%s", path, TEST_STY_FILE);
    fstream stylesheet_stream(buf, ios::out);
 
    if ( !stylesheet_stream )
@@ -252,14 +252,14 @@ int generate_stream(info_base* b_ptr, char* path, int num_sections, int min, int
 
    cerr << " sections ..." << endl;
 
-   sprintf(buf, "%s/%s", path, TEST_SEC_FILE);
+   snprintf(buf, sizeof(buf), "%s/%s", path, TEST_SEC_FILE);
    fstream section_stream(buf, ios::out);
 
    if ( !section_stream ) return -1;
 
 
 // prepare mixed stream
-   sprintf(buf, "%s/%s", path, TEST_MIX_FILE);
+   snprintf(buf, sizeof(buf), "%s/%s", path, TEST_MIX_FILE);
    fstream mix_stream(buf, ios::out);
 
    if ( !mix_stream ) return -1;
@@ -432,8 +432,8 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
    cerr << " loading stylesheets ..." << endl;
    char buf[256];
    char file_name[256];
-   sprintf(buf, "%s.stylesheet", argv[4]);
-   sprintf(file_name, "%s/%s", argv[2], TEST_STY_FILE);
+   snprintf(buf, sizeof(buf), "%s.stylesheet", argv[4]);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_STY_FILE);
 
    infolib_ptr = db.openInfoLib(argv[2]);
    base_ptr = infolib_ptr -> get_info_base(argv[4]);
@@ -450,8 +450,8 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
 
 // load sections (small component)
    cerr << " loading sections ..." << endl;
-   sprintf(buf, "%s.node", argv[4]);
-   sprintf(file_name, "%s/%s", argv[2], TEST_SEC_FILE);
+   snprintf(buf, sizeof(buf), "%s.node", argv[4]);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_SEC_FILE);
 
    infolib_ptr = db.openInfoLib(argv[2]);
    base_ptr = infolib_ptr -> get_info_base(argv[4]);
@@ -467,7 +467,7 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
 
 // load all other objects
    cerr << " loading all other objects ..." << endl;
-   sprintf(file_name, "%s/%s", argv[2], TEST_MIX_FILE);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_MIX_FILE);
    fstream in(file_name, ios::in);
 
    if ( !in ) return -1;
@@ -490,7 +490,7 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
    base_ptr = infolib_ptr -> get_info_base(argv[4]);
 
 // stylesheet
-   sprintf(file_name, "%s/%s", argv[2], TEST_STY_FILE);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_STY_FILE);
    fstream ss_in(file_name, ios::in);
 
    if ( !ss_in ) return -1;
@@ -504,7 +504,7 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
       STDERR_MESSAGE("testing stylesheet data done\n");
 
 // node 
-   sprintf(file_name, "%s/%s", argv[2], TEST_SEC_FILE);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_SEC_FILE);
    fstream nd_in(file_name, ios::in);
    if ( !nd_in ) return -1;
 
@@ -517,7 +517,7 @@ int auto_test(int argc, char** argv, OLIAS_DB& db)
       STDERR_MESSAGE("testing section done\n");
 
 // all other 
-   sprintf(file_name, "%s/%s", argv[2], TEST_MIX_FILE);
+   snprintf(file_name, sizeof(file_name), "%s/%s", argv[2], TEST_MIX_FILE);
    fstream all_in(file_name, ios::in);
    if ( !all_in ) return -1;
 
index 2a818b102293aa30bc5df9773a4648f8d077e3d4..37911d6312020d79b2b62eaaafbe045e34d8eb55 100644 (file)
@@ -44,7 +44,8 @@ int compare_stylesheet(stylesheet_smart_ptr& pattern, info_base* base_ptr)
    print_stylesheet(pattern, pattern_out);
 
    char loc[BUFSIZ];
-   strcpy(loc, pattern.name());
+   int len = MIN(strlen(pattern.name()), BUFSIZ - 1);
+   *((char *) memcpy(loc, pattern.name(), len) + len) = '\0';
 
    stylesheet_smart_ptr x( base_ptr, loc );
    char db_buf[LARGE_BUFSIZ];
@@ -61,7 +62,9 @@ void update_stylesheet_test(char* filename, info_base* base_ptr, char* locator)
    fstream in(filename, ios::in);
    while (in) {
       in.getline(buf, LBUFSIZ);
-      strcat(st_buf, buf);
+      int slen = strlen(st_buf);
+      int len = MIN(strlen(buf), LBUFSIZ - 1 - slen);
+      *((char *) memcpy(st_buf + slen, buf, len) + len) = '\0';
    }
    stylesheet_smart_ptr st(base_ptr, locator);
    st.update_online_data(st_buf, strlen(st_buf));
index 675bb27fa05f4033407f748ee11752f21f50f67d..06aeb60aa4b1523bfb922ea016befec74386571a 100644 (file)
@@ -65,10 +65,11 @@ extern Boolean g_transaction_on;
 extern int g_mode_8_3;
 
 user_base::user_base( const char* spec_path, rw_flag_t rw) : 
-   spec_name(spec_path), backup_file(0), rw_flag(rw), first_desc_ptr(0),
-   base(0)
+   base(0), backup_file(0), rw_flag(rw), first_desc_ptr(0),
+   spec_name(spec_path)
 {
    g_mode_8_3 = 1;
+   int len;
 
    f_obj_dict = new object_dict;
 
@@ -91,9 +92,12 @@ user_base::user_base( const char* spec_path, rw_flag_t rw) :
    if ( name == 0 )
       name = (char*)"";
 
-   strcpy(base_path, path);
-   strcpy(base_name, name);
-   strcpy(base_desc, "");
+   len = MIN(strlen(path), PATHSIZ - 1);
+   *((char *) memcpy(base_path, path, len) + len) = '\0';
+   len = MIN(strlen(name), PATHSIZ - 1);
+   *((char *) memcpy(base_name, name, len) + len) = '\0';
+   len = MIN(strlen(""), PATHSIZ - 1);
+   *((char *) memcpy(base_desc, "", len) + len) = '\0';
 
    _init();
 
@@ -106,9 +110,9 @@ user_base::user_base( const char* base_dir,
                       const char* spec_path,
                      rw_flag_t rw 
                     ) : 
-       base(0, 0, 0, base_dir, base_nm, base_ds, ""), first_desc_ptr(0),
-       backup_file(0), rw_flag(rw), checking_status(SUCC),
-       spec_name(spec_path)
+       base(0, 0, 0, base_dir, base_nm, base_ds, ""), backup_file(0),
+       rw_flag(rw), checking_status(SUCC), first_desc_ptr(0),
+       spec_name(spec_path)
 {
    g_mode_8_3 = 1;
 
@@ -157,17 +161,24 @@ user_base::checking_status_t user_base::check_mode()
 user_base::checking_status_t user_base::check_lock()
 {
    char lock_dir[PATHSIZ];
+   int len;
 
-   sprintf(lock_dir, "%s/%s", base_path, LOCK_DIR);
+   snprintf(lock_dir, sizeof(lock_dir), "%s/%s", base_path, LOCK_DIR);
 
    if ( check_and_create_dir(lock_dir) == false ) {
       MESSAGE(cerr, form("no write permission to %s", lock_dir));
       return user_base::CREATE_LOCKFILE_FAIL;
    }
 
-   strcpy(atomic_lock_path, form("%s/%s", lock_dir, AT_LOCK));
-   strcpy(write_lock_path, form("%s/%s", lock_dir, W_LOCK));
-   strcpy(ai_path, form("%s/%s", lock_dir, ACCESS_INFO));
+   len = MIN(strlen(atomic_lock_path), strlen(lock_dir) + strlen(AT_LOCK) + 1);
+   *((char *) memcpy(atomic_lock_path,
+                    form("%s/%s", lock_dir, AT_LOCK), len) + len) = '\0';
+   len = MIN(strlen(write_lock_path), strlen(lock_dir) + strlen(W_LOCK) + 1);
+   *((char *) memcpy(write_lock_path,
+                    form("%s/%s", lock_dir, W_LOCK), len) + len) = '\0';
+   len = MIN(strlen(ai_path), strlen(lock_dir) + strlen(ACCESS_INFO) + 1);
+   *((char *) memcpy(ai_path,
+                    form("%s/%s", lock_dir, ACCESS_INFO), len) + len) = '\0';
 
    char* ai_info = 0;
 
@@ -392,6 +403,8 @@ MESSAGE(cerr, store_ptr -> my_name());
 
 Boolean user_base::define()
 {
+   int len;
+
    if ( check_and_create_dir(base_path) == false ) {
       throw(stringException(form("can't create %s", base_path))); 
    }
@@ -402,10 +415,14 @@ Boolean user_base::define()
    char* x = getenv("DTINFO_MARKSPECPATH");
 
    if ( x == 0 ) {
-       strcpy(spec_file_path, spec_name);
+       len = MIN(strlen(spec_name), PATHSIZ - 1);
+       *((char *) memcpy(spec_file_path, spec_name, len) + len) = '\0';
    } 
-   else
-       strcpy(spec_file_path, form("%s/%s", x, spec_name));
+   else {
+       len = MIN(strlen(x) + strlen(spec_name) + 1, PATHSIZ - 1);
+       *((char *) memcpy(spec_file_path,
+                        form("%s/%s", x, spec_name), len) + len) = '\0';
+   }
    
    if (exist_file(spec_file_path) == false) {
        
@@ -419,7 +436,11 @@ Boolean user_base::define()
  
 /*
    char unique_nm[PATHSIZ];
-   strcpy(unique_nm, form("%s.%s", base_name, unique_id()));
+   const char* uid;
+   uid = unique_id();
+   len = MIN(strlen(base_name) + strlen(uid) + 1, PATHSIZ - 1);
+   *((char *) memcpy(unique_nm,
+                    form("%s.%s", base_name, uid), len) + len) = '\0';
 */
 
    first_desc_ptr = 
index c32a9973bcb01ea82d5f76a6d65c6c6af077b39a..4cecc66074fbfbf6e59a4df6ad244acd0b75b720 100644 (file)
@@ -51,7 +51,7 @@
 #include "schema/container_desc.h"
 
 container_desc::container_desc(int code, const char* comment) : 
-       index_nms(10), stored_object_desc(code, comment)
+       stored_object_desc(code, comment), index_nms(10)
 {
 }
 
index f58a24304606a05d885a139cc8b523e0004fa946..cf6fb0be86b7f0a65daf9fd467ca4d98db75acb9 100644 (file)
@@ -56,8 +56,8 @@
 #include "index/btree_index.h"
 
 
-index_desc::index_desc(int class_code, const char* comment) : position(0), 
-       stored_object_desc(class_code, comment)
+index_desc::index_desc(int class_code, const char* comment) :
+       stored_object_desc(class_code, comment), position(0)
 {
    inv_nm = strdup("");
    agent_nm = strdup("");
@@ -73,18 +73,12 @@ void index_desc::set_inv_nm(const char* str)
 {
    delete inv_nm;
    inv_nm = strdup(str);
-
-   //strncpy(inv_nm, str, NAMESIZ-1);
-   //inv_nm[strlen(str)] = 0;
 }
 
 void index_desc::set_agent_nm(const char* str)
 {
    delete agent_nm;
    agent_nm = strdup(str);
-
-   //strncpy(agent_nm, str, NAMESIZ-1);
-   //agent_nm[strlen(str)] = 0;
 }
 
 ostream& index_desc::asciiOut(ostream& out, Boolean last)
index 71c9bed5ea4786a475c98fd8c514ee3043f3118d..90532875156d1e0d87dbfcbb349cd508f62ed6e1 100644 (file)
@@ -104,7 +104,9 @@ desc* object_dict::init_a_base(char* db_path, char* db_name)
 {
 //MESSAGE(cerr, "object_dict::init_a_base()");
 //debug(cerr, db_path);
-   strcpy(v_db_path, db_path);
+
+   int len = MIN(strlen(db_path), PATHSIZ - 1);
+   *((char *) memcpy(v_db_path, db_path, len) + len) = '\0';
 
    desc* x = 0;
 
@@ -131,7 +133,7 @@ desc* object_dict::init_a_base(char* db_path, char* db_name)
       x = parse(schema_path);
    } else {
 
-      int sz = bytes(schema_path) - strlen(schema_header) - 1;
+      unsigned int sz = bytes(schema_path) - strlen(schema_header) - 1;
       char* buf = new char[sz];
    
       if ( !in.read(buf, sz) ) 
@@ -171,10 +173,14 @@ desc* object_dict::init_a_base(char* define_desc_path, char* db_path,
 //debug(cerr, db_path);
 //debug(cerr, db_name);
 
-   strcpy(v_db_path, db_path);
+   int len;
+
+   len = MIN(strlen(db_path), PATHSIZ - 1);
+   *((char *) memcpy(v_db_path, db_path, len) + len) = '\0';
 
    if ( db_name ) {
-      strcpy(replace_string, db_name);
+      len = MIN(strlen(db_name), PATHSIZ - 1);
+      *((char *) memcpy(replace_string, db_name, len) + len) = '\0';
       replace_string_len = strlen(replace_string);
    } else {
       replace_string[0] = 0;
@@ -188,11 +194,11 @@ desc* object_dict::init_a_base(char* define_desc_path, char* db_path,
       throw(stringException(form("%s does not exist.", define_desc_path)));
    }
 
-   unsigned long len = bytes(define_desc_path)*4;
+   unsigned long llen = bytes(define_desc_path)*4;
 
    in_test.close();
 
-   if ( disk_space(v_db_path) < len ) {
+   if ( disk_space(v_db_path) < llen ) {
        throw(stringException(form("no enough space on %s", v_db_path)));
    }
 
@@ -213,7 +219,7 @@ desc* object_dict::init_a_base(char* define_desc_path, char* db_path,
        throw(streamException(in.rdstate()));
    } 
 
-   int sz = bytes(define_desc_path);
+   unsigned int sz = bytes(define_desc_path);
    in.close();
 
    char* schema_buf = new char[sz*3];
@@ -225,7 +231,8 @@ desc* object_dict::init_a_base(char* define_desc_path, char* db_path,
 
    x -> asciiOutList(*string_out);
 
-   strcpy(schema_buf, string_out->str().c_str());
+   len = MIN((unsigned int) string_out->str().size(), sz*3 - 1);
+   *((char *) memcpy(schema_buf, string_out->str().c_str(), len) + len) = '\0';
    delete string_out;
 
    sz = strlen(schema_buf);
index 9d23da8c13abc0f6b72603eaf8b0765ffd1f7e1d..aa7c809587e6a59761d09afe00892c0761d33361 100644 (file)
@@ -92,10 +92,10 @@ protected:
    void _quit_descs(desc* start_ptr, desc* end_ptr = 0);
 
 protected:
+   bset v_dict;             // name to oid mapping
    desc * v_desc_ptr;       // list of stored object desc cells
    desc * v_last_desc_ptr;  // tail cell 
    char v_db_path[PATHSIZ]; // db_path
-   bset v_dict;   // name to oid mapping
 };
 
 #endif
index 1769b63e38598ccb6fb5e0f22c54ea69e9430497..484f23fee4e321ed820998e4ffd55da9bbd1ce1d 100644 (file)
@@ -22,7 +22,7 @@
  */
 // $TOG: sheet.C /main/4 1997/12/23 11:20:35 bill $
 #ifndef lint
-static char  schemasccsid[] = "@(#)yaccpar     1.8 (Berkeley) 01/20/90";
+static const char schemasccsid[] = "@(#)yaccpar        1.8 (Berkeley) 01/20/90";
 #endif
 #define  schemaBYACC 1
 
@@ -370,7 +370,7 @@ int
     * schemassp =  schemastate = 0;
 
  schemaloop:
-    if ( scheman =  schemadefred[ schemastate]) goto  schemareduce;
+    if ( (scheman =  schemadefred[ schemastate])) goto  schemareduce;
     if ( schemachar < 0)
     {
         if (( schemachar =  schemalex()) < 0)  schemachar = 0;
index 48a5e34771ac8536c69fb6c8edb0ec280b686011..4e18568534d71514baccb08300d1d0d759be21e8 100644 (file)
@@ -115,15 +115,13 @@ void store_desc::set_mode(const char* str)
    delete mode_str;
    mode_str = strdup(str);
 
-   //strncpy(mode_str, str, NAMESIZ-1);
-
    get_mode(); // check 
 }
 
 int store_desc::get_mode()
 {
    int mode = 0;
-   for ( int i=0; i<strlen(mode_str); i++ ) {
+   for ( unsigned int i=0; i<strlen(mode_str); i++ ) {
       switch ( mode_str[i] ) {
          case 'r':
            mode |= ios::in;
index b8caadd76b89586163cbf07d777a989cc9209eca..0117c0ee8d75f54d9c1450991eb948c0c0c8566f 100644 (file)
@@ -500,7 +500,9 @@ static int  schema_did_buffer_switch_on_eof;
 static  schema_state_type  schema_get_previous_state  schema_PROTO(( void ));
 static  schema_state_type  schema_try_NUL_trans  schema_PROTO((  schema_state_type current_state ));
 static int  schema_get_next_buffer  schema_PROTO(( void ));
+#if 0
 static void  schemaunput  schema_PROTO((  schema_CHAR c,  schema_CHAR *buf_ptr ));
+#endif
 void  schemarestart  schema_PROTO(( FILE *input_file ));
 void  schema_switch_to_buffer  schema_PROTO((  schema_BUFFER_STATE new_buffer ));
 void  schema_load_buffer_state  schema_PROTO(( void ));
@@ -775,7 +777,10 @@ case 34:
 case 35:
 {
          if ( replace_string[0] != 0 &&  schematext[0] == '$' ) {
-            strcpy(replace_string + replace_string_len, (char*) schematext+1);
+             int len = MIN(strlen((char*) schematext+1),
+                          (unsigned int)(PATHSIZ - replace_string_len - 1));
+             *((char *) memcpy(replace_string + replace_string_len,
+                              (char*) schematext+1, len) + len) = '\0';
             schemalval.string = replace_string;
          } else
             schemalval.string = (char*) schematext;
@@ -1064,6 +1069,7 @@ register  schema_state_type  schema_current_state;
     }
 
 
+#if 0
 #ifdef  schema_USE_PROTOS
 static void  schemaunput(  schema_CHAR c, register  schema_CHAR * schema_bp )
 #else
@@ -1107,6 +1113,7 @@ register  schema_CHAR * schema_bp;
      */
      schema_DO_BEFORE_ACTION; /* set up  schematext again */
     }
+#endif
 
 
 #ifdef __cplusplus
index 133ca367ff07eb4dc490d99b11cffef620f1d488..94fc70b59fe65c723b57f2eca810c6b351d33698 100644 (file)
 
 abs_storage::abs_storage( char* file_path, char* file_name,
                           c_code_t c_id, rep_policy* p ) : 
-policy(p), root(c_id), index_num(-1), v_swap_order(false)
+root(c_id), index_num(-1), policy(p), v_swap_order(false)
 {
-   strcpy(path, file_path);
-   strcpy(name, file_name);
+   int len = MIN(strlen(file_path), PATHSIZ - 1);
+   *((char *) memcpy(path, file_path, len) + len) = '\0';
+   len = MIN(strlen(file_name), PATHSIZ - 1);
+   *((char *) memcpy(name, file_name, len) + len) = '\0';
 }
 
 abs_storage::~abs_storage()
index 298afe46e392ef2ae7f447bb8dce4e0eb90e47c0..65ca977e58aeef43619feaf3bda64b50a5abe9a3 100644 (file)
@@ -70,9 +70,9 @@ protected:
                          int left, int right);
 
 protected:
+   bset v_index_imp;
    abs_storage* v_storage_ptr;
    mmdb_pos_t v_initial_loc;
-   bset v_index_imp;
 
 };
 
index 29f70ff62a1d988168fa78bbde776261325eb820..1335e23bd147862085e8af9641c277678d7f30ab 100644 (file)
@@ -90,7 +90,6 @@ debug(cerr, inactive_list.count());
 
 
    replaced = 0;
-   Boolean ok = true;
 
    switch (x.get_position()) {
      case ACTIVE:
@@ -131,8 +130,6 @@ Boolean lru::promote(rep_cell& x)
 
 Boolean lru::derank(rep_cell& x, position_t opt)
 {
-   Boolean ok = true;
-
    switch (x.get_position()) {
      case ACTIVE:
         //MESSAGE(cerr, "active status to derank");
@@ -158,6 +155,8 @@ Boolean lru::derank(rep_cell& x, position_t opt)
         inactive_list.insert_as_tail(&x);
         x.set_position(INACTIVE);
         break;
+     default:
+        break;
    }
 
    return true;
@@ -227,6 +226,8 @@ Boolean lru::remove(rep_cell& x)
      case NOWHERE:
        throw(stringException("lru::last(): bad option"));
    }
+
+   return false;
 }
 
 void lru::remove()
index 62f1c52d8859b4282c9aaa17e13b855e797d030e..07daeb5ff158af99db4a407a5065ccf289b00d65 100644 (file)
@@ -430,7 +430,7 @@ Boolean page::_alloc_slot( int slot_num, int size, char*& str_ptr )
        new_blank_len -= size;
 //debug(cerr, new_blank_len);
    
-       if ( new_blank_len < 2*SLOT_HEADER_SIZE + 10 )
+       if ( new_blank_len < (int)(2*SLOT_HEADER_SIZE + 10) )
           new_blank_len = 0;
        else
           new_blank_len -= SLOT_HEADER_SIZE; // space allocated for new
index b93a5e91d09b71f52f7d79b81472ecb9eb754966..8103639ccf4255cfa59fd0b769b1f1c4300c7c56 100644 (file)
@@ -131,9 +131,9 @@ protected:
    void _swap_order(Boolean swap_count_field_first);
 
 protected:
-   int num_locks;          // no. of locks
-   unsigned int pageid ;            // page id
+   unsigned int pageid ;   // page id
    Boolean dirty ;         // = false: page has not been written;
+   int num_locks;          // no. of locks
    int v_memalign_offset;  // align offset of the memory
                            // chunk for this page
 
index a5d757dab036ee941c1ce631ae57161b97d4a7fe..d9d630ae39de77c53981a6108dec6189ee412855 100644 (file)
@@ -222,7 +222,7 @@ page_cache_global_part::load_new_page(
 {
    lru_pagePtr p = 0;
 
-   if ( f_replace_policy.active_elmts() < f_total_allowed_pages ) {
+   if ( f_replace_policy.active_elmts() < (int) f_total_allowed_pages ) {
 
 /*
 debug(cerr, page_cache -> active_elmts());
index aa15811f8f41ef48569bee0dc2d904b04b1d32d3..5694eba736d5a6790328f82e4ef0d0d4e99436e2 100644 (file)
@@ -391,8 +391,6 @@ debug(cerr, len);
 debug(cerr, str_offset);
 */
 
-   Boolean ok = false;
-
    buffer in_cache(0);
    in_cache.set_chunk(base, len);
 
@@ -595,8 +593,8 @@ debug(cerr, name);
 debug(cerr, loc);
 */
 
-   int page_num ;
-   int slot_num ;
+   int page_num =0;
+   int slot_num =0;
    int offset = 0;
    page* y = 0;
    spointer_t *x = 0;
@@ -761,9 +759,9 @@ debug(cerr,  int(string_ptr));
 #endif
 
 
-      int u1 = PAGE_ID( loc, page_sz );
-      int u2 = PAGE_IDX( loc, page_sz );
-//cerr << "Allocated ID=" << u1 << "." << u2 << " " << len << "\n";
+// int u1 = PAGE_ID( loc, page_sz );
+// int u2 = PAGE_IDX( loc, page_sz );
+// cerr << "Allocated ID=" << u1 << "." << u2 << " " << len << "\n";
 
    return 0;
 }
@@ -779,8 +777,8 @@ cerr << "append:" << u1 << "." << u2 << " " << len << "\n";
 
 
 
-   int page_num ;
-   int slot_num ;
+   int page_num = 0;
+   int slot_num = 0;
    page* y;
    spointer_t *x;
 
@@ -910,8 +908,10 @@ io_status page_storage::asciiOut(ostream& out)
 {
    int ind = first();
    while ( ind != 0  ) {
+#ifdef DEBUG
       page* p = (*this)(ind, READ);
       debug(out, *p);
+#endif
       next(ind);
    }
    return done;
@@ -1187,7 +1187,7 @@ void page_storage::roll_back()
    // verify the log is in good shape
    //////////////////////////////////
       int m;
-      int log_bytes = trans_info.log_store -> bytes();
+      unsigned int log_bytes = trans_info.log_store -> bytes();
    
       if ( trans_info.log_store && 
            (*trans_info.log_store) &&
index a919293cad949dcebc8280ae133ccfe974631d40..edeb398ddd25f134adc4af6b061314de17974d48 100644 (file)
@@ -89,14 +89,14 @@ class store_trans
 protected:
    enum trans_t { ENABLED, DISABLED };
 
-   int page_sz;
-   int max_pages;
+   char* path;
+   char* name;
+
    trans_t status;
    unixf_storage* log_store;
    imp_die* log_index;
-
-   char* path;
-   char* name;
+   int max_pages;
+   int page_sz;
 
 public:
    store_trans(char* path, char*name, int page_sz); 
@@ -125,7 +125,7 @@ class page_storage : public abs_storage
 {
 
 protected:
-   buffer* v_buf;         // aux. buf.
+   store_trans trans_info;
 
    int page_sz ;           // page size
 
@@ -142,15 +142,15 @@ protected:
 
    int total_pages;
 
-   int pagings ;
-   int total_page_access;
-
-   store_trans trans_info;
-
 // byte order 
    int v_server_order;
    int v_db_order;
 
+   buffer* v_buf;         // aux. buf.
+
+   int pagings ;
+   int total_page_access;
+
 protected:
 
    Boolean seek_loc_negative(mmdb_pos_t& loc, int smd);
index f85742673cf63374eaf9842e3ad8c770d5ecdd2b..af5d44459bfe869f89f10bcce75530f32d082bf0 100644 (file)
@@ -90,7 +90,7 @@ public:
       header.int_view |= (HEADER_MASK & m); 
       set_mode(UPDATED, true);
    };
-   Boolean test_mode(int m) { 
+   Boolean test_mode(unsigned int m) {
       return ( (header.int_view & HEADER_MASK & m) == m ) ? true : false;
    };
 
index b5835ea89cf0f3b7cd0c989ce0488d713b933ccf..ce7314bb50560e3c3f212795eaf4c441c8022d6c 100644 (file)
@@ -35,7 +35,7 @@ void real_page_cache_test_1(pm_random& rand_gen, page_storage** st, unsigned int
    unsigned int j, k;
    page_storage::access_t l;
 
-   for ( int i=0; i< no_access; i++) 
+   for ( unsigned int i=0; i< no_access; i++)
    {
 
       j = rand_gen.rand() % ct; // pick the store
@@ -66,7 +66,7 @@ prepare_store(char* path, lru& open_file_policy,
    page_storage** x = new page_storagePtr[ct];
    unixf_storage*  unix_file = 0;
 
-   for ( int i=0; i<ct; i++) {
+   for ( unsigned int i=0; i<ct; i++) {
       int pages = rand_gen.rand() % (high-low) + low;
 
 /*
@@ -76,7 +76,7 @@ if ( i == 1 )
    pages = 17;
 */
 
-      sprintf(name, "test.%d", i);
+      snprintf(name, sizeof(name), "test.%d", i);
 
       if ( exist_file(name) == true )
          del_file(name);
@@ -90,7 +90,7 @@ if ( i == 1 )
    
 void quit_store(page_storage** st, unsigned int ct)
 {
-   for ( int i=0; i<ct; i++) {
+   for ( unsigned int i=0; i<ct; i++) {
      delete st[i];
    }
    delete st;
index 7c2f9041d428a973b6246546411ac438a0e1ebe6..c87dae6068daab43a4fb87b41ce2236e05e89a1d 100644 (file)
@@ -62,7 +62,7 @@ unixf_storage( char* file_path, char* file_name,
                rep_policy* rep_p, int m
              ) :
 abs_storage( file_path, file_name, UNIX_STORAGE_CODE, rep_p ), 
-mode(m), fstream(), 
+fstream(), mode(m),
 total_bytes(-1), v_file_exist(exist_file(file_name, file_path))
 {
 }
@@ -137,7 +137,7 @@ int unixf_storage::_open(int new_mode)
    }
 
    if ( v_file_exist == false ) {
-      SET_BIT(new_mode, ios::out | ios::app);
+      SET_BIT(new_mode, ios::out | ios::trunc);
       v_file_exist = true;
    }
 
@@ -272,7 +272,7 @@ fprintf(stderr, "flush option=%d\n", flush_opt);
 #ifndef C_API
    {
      char fname[64];
-     sprintf(fname, "%s.%ld-%d", name, loc+string_ofst, len);
+     snprintf(fname, sizeof(fname), "%s.%ld-%d", name, loc+string_ofst, len);
      ofstream output(fname);
      output.write(base, len);      
      output.flush();
@@ -310,16 +310,16 @@ int unixf_storage::bytes()
 {
    if ( total_bytes == -1 ) {
 
-      char* info_lib_file = form("%s/%s", path, name);
-
+#ifdef C_API
       _open(ios::in);
 
       if ( !good() ) 
          clear();
 
-#ifdef C_API
       total_bytes = ::bytes(rdbuf() -> fd());
 #else
+      char* info_lib_file = form("%s/%s", path, name);
+
       total_bytes = ::bytes(info_lib_file);
 #endif
    }
index f19ef0a7c1e2d37633c9e0f240f40e237e3f528f..11d10ae451211d2c4c4c73a9cb5f1748950bf5e6 100644 (file)
@@ -66,8 +66,8 @@ void atoi_fast::init(int r, int, pm_random& rdm_generator)
 
    v_tbl = new char[v_entries];
 
-   int i;
-   for ( i = 0; i < v_entries; i++ )
+   unsigned int i;
+   for ( unsigned i = 0; i < v_entries; i++ )
      v_tbl[i] = i;
 
    for ( i = 0; i < v_entries - 1;  i++ ) {
@@ -113,22 +113,22 @@ int atoi_fast::atoi(const char* string, int l, int , int rang ) const
      case 0:
          break;
      case 1:
-         reg.chars_val.b1 = v_tbl[string[0]] ;
+         reg.chars_val.b1 = v_tbl[(unsigned int)string[0]] ;
          break;
      case 2:
-         reg.chars_val.b1 = v_tbl[string[0]] ;
-         reg.chars_val.b2 = v_tbl[string[1]] ;
+         reg.chars_val.b1 = v_tbl[(unsigned int)string[0]] ;
+         reg.chars_val.b2 = v_tbl[(unsigned int)string[1]] ;
          break;
      case 3:
-         reg.chars_val.b1 = v_tbl[string[0]] ;
-         reg.chars_val.b2 = v_tbl[string[1]] ;
-         reg.chars_val.b3 = v_tbl[string[2]] ;
+         reg.chars_val.b1 = v_tbl[(unsigned int)string[0]] ;
+         reg.chars_val.b2 = v_tbl[(unsigned int)string[1]] ;
+         reg.chars_val.b3 = v_tbl[(unsigned int)string[2]] ;
          break;
      default:
-         reg.chars_val.b1 = v_tbl[string[0]] ;
-         reg.chars_val.b2 = v_tbl[string[1]] ;
-         reg.chars_val.b3 = v_tbl[string[2]] ;
-         reg.chars_val.b4 = v_tbl[string[3]] ;
+         reg.chars_val.b1 = v_tbl[(unsigned int)string[0]] ;
+         reg.chars_val.b2 = v_tbl[(unsigned int)string[1]] ;
+         reg.chars_val.b3 = v_tbl[(unsigned int)string[2]] ;
+         reg.chars_val.b4 = v_tbl[(unsigned int)string[3]] ;
    }
 
    int x = 0;
@@ -187,7 +187,7 @@ int atoi_fast::atoi(const char* str, int offset, int rang ) const
 
 ostream& operator<<(ostream& s, atoi_fast& p)
 {
-   for ( int i = 0; i < p.v_entries ; i++ )
+   for ( unsigned int i = 0; i < p.v_entries ; i++ )
       s << int(p.v_tbl[i]) << " ";
    return s;
 }
index 6e9a9f5d182c1771307503fe35047fc0dea2c385..f2379d43ab4ec853925a6649f12005263a734b1c 100644 (file)
@@ -75,7 +75,7 @@ void atoi_pearson::init(int r, int, pm_random& rdm_generator)
 
    v_tbl = new char[v_entries];
 
-   int i;
+   unsigned int i;
    for ( i = 0; i < v_entries; i++ )
       v_tbl[i] = i;
 
@@ -175,7 +175,7 @@ int atoi_pearson::atoi(const char* str, int offset, int rang ) const
 
 ostream& operator<<(ostream& s, atoi_pearson& p)
 {
-   for ( int i = 0; i < p.v_entries ; i++ )
+   for ( unsigned int i = 0; i < p.v_entries ; i++ )
       s << int(p.v_tbl[i]) << " ";
    return s;
 }
index ff684508b6c1b2cb5b18a1b8a7b16020d68d6f46..4fdd224e4f3e3904fd66ec8b00c81c014fe6288f 100644 (file)
@@ -75,13 +75,13 @@ private:
    void init(int _range, int _entries, pm_random&);
 
 protected:
-   char *v_tbl;
-   Boolean v_shared;
-
-   unsigned v_mask;
    unsigned int v_entries;
    unsigned int v_range;
+   unsigned v_mask;
+
    unsigned int v_no_bytes;
+   char *v_tbl;
+   Boolean v_shared;
 };
 
 
index 34ab68baeaded2f5b1617e9d87c1e3658f839d8e..0cd00cd08af483c3eeb021d5ffe461f997349bff 100644 (file)
@@ -58,7 +58,8 @@ extern int errno;
 
 atomic_lock::atomic_lock(const char* p)
 {
-   strcpy(v_path, p);
+   int len = MIN(strlen(p), PATHSIZ - 1);
+   *((char *) memcpy(v_path, p, len) + len) = '\0';
 }
 
 atomic_lock::~atomic_lock()
index 344ef69f09d6334f9ac96bde1093622eb08c5a12..1ab495ac51a98536982b7957dbb622429b990f75 100644 (file)
@@ -308,7 +308,7 @@ buffer& buffer::put(const char content, Boolean exp_buf)
 {
    //return put((char*)&content, sizeof(content));
 
-   if ( v_bufsz == content_sz() ) 
+   if ( (int) v_bufsz == content_sz() )
    {
       if ( exp_buf == true )
         expand_chunk(v_bufsz + 10);
@@ -391,7 +391,7 @@ buffer& buffer::put(const float content, Boolean exp_buf)
 /***********************************************************/
 buffer& buffer::put(const char* content, int sz, Boolean exp_buf) 
 {
-   if ( sz > v_bufsz - content_sz() ) {
+   if ( sz > (int)(v_bufsz - content_sz()) ) {
       if ( exp_buf == true ) 
          expand_chunk(v_bufsz + sz);
       else {
index 5ee86840788d12441271114cbaf85ed7103b2344..1c6dff14417a232d92430f0c0ec1896a9dda032c 100644 (file)
@@ -32,8 +32,8 @@
 class ios
 {
 protected:
-  int f_state;
   streambuf*      sbuf; // buffer that provides char sequence read/write
+  int f_state;
 
 public:
 
index 0b23fcd00beae2255b1bb8eae470db2fae89418d..9528ee667c4306483e8b1ffeb4c08f2320df22e8 100644 (file)
@@ -57,16 +57,16 @@ class streambuf
 protected:
    char* base;
    char* end;
-   char* get_ptr;
    char* put_ptr;
+   char* get_ptr;
 
-   int _gcount;
-   int _pcount;
-
-   int _capacity;
    int _size;
+   int _capacity;
    int _alloc;
 
+   int _pcount;
+   int _gcount;
+
 protected:
    enum notify_action_t { GET, PUT };
    virtual void notify(int) {}; 
index 9e1865ec0282e612a781c011d160700c19ae61c2..a8b7ce5129de7861e2a9fccb92209a5e795e5023 100644 (file)
@@ -48,8 +48,8 @@ filebuf::~filebuf()
 /////////////////////////////////////////////
 
 filebuf::filebuf(int __fd) :
-   new_pos(0), default_new_pos(0), _fd(__fd), current_pos(0), 
-   _prev_action(-1), _name(0)
+   _fd(__fd), _prev_action(-1), _name(0),
+   current_pos(0), new_pos(0), default_new_pos(0)
 {
    _mode = 0;
 
@@ -66,8 +66,8 @@ filebuf::filebuf(int __fd) :
 }
 
 filebuf::filebuf(const char* name, int mode, int protect) :
-   new_pos(0), default_new_pos(0), current_pos(0), 
-   _fd(-1), _prev_action(-1), _name(strdup(name))
+   _fd(-1), _prev_action(-1), _name(strdup(name)),
+   current_pos(0), new_pos(0), default_new_pos(0)
 {
    open(name, mode, protect);
 }
index 96e8cfedcf195013e694038593eed179b95cc071..ab51d6d0ee151ecb521fe98bdcc1803b3029e038 100644 (file)
@@ -80,6 +80,8 @@ int getdomainname(char *, int);
 #endif /* __osf__ */
 #include <sys/stat.h>
 
+#define BUFLEN 512
+
 #ifdef USL
 
 int _DtMmdbStrcasecmp(register const char* s1, register const char* s2)
@@ -201,8 +203,8 @@ int pos_of_LSB(const unsigned int y)
 {
    switch (y) {
 
-   case 8192: return 14; 
-   case 1024: return 11;
+   case 8192: return 13;
+   case 1024: return 10;
 
    default:
     {
@@ -211,8 +213,8 @@ int pos_of_LSB(const unsigned int y)
    //debug(cerr, x);
    //debug(cerr, hex(x));
    
-      int i;
-      for ( int i =0; i<sizeof(x); i++ ) {
+      unsigned int i;
+      for ( i =0; i<sizeof(x); i++ ) {
          if ( ( 0x000000ff & x) == 0 ) 
             x >>= 8;
          else
@@ -275,7 +277,8 @@ unsigned getbits(unsigned x, unsigned p, unsigned n)
 
 int del_file(const char* filename, const char* pathname)
 {
-   static char buf[512];
+   unsigned int len, slen;
+   static char buf[BUFLEN];
 
    int ok;
 
@@ -283,13 +286,19 @@ int del_file(const char* filename, const char* pathname)
        ok = unlink(filename);
    else {
 
-       if ( strlen(filename) + strlen(pathname) > 511 )
-          throw(boundaryException(1, 512, strlen(filename) + strlen(pathname)));
+       if ( strlen(filename) + strlen(pathname) > (BUFLEN - 1) )
+          throw(boundaryException(1, BUFLEN,
+                                 strlen(filename) + strlen(pathname)));
 
        buf[0] = 0;
-       strcpy(buf, pathname);
-       strcat(buf, "/");
-       strcat(buf, filename);
+       len = MIN(strlen(pathname), BUFLEN - 1);
+       *((char *) memcpy(buf, pathname, len) + len) = '\0';
+       slen = len;
+       len = MIN(1, BUFLEN - 1 - slen);
+       *((char *) memcpy(buf + slen, "/", len) + len) = '\0';
+       slen += len;
+       len = MIN(strlen(filename), BUFLEN - 1 - slen);
+       *((char *) memcpy(buf + slen, filename, len) + len) = '\0';
        ok = unlink(buf);
    }
    
@@ -331,8 +340,8 @@ copy_file(const char* path, const char* file,
    char source[PATHSIZ];
    char target[PATHSIZ];
 
-   sprintf(source, "%s/%s.%s", path, file, source_ext);
-   sprintf(target, "%s/%s.%s", path, file, target_ext);
+   snprintf(source, sizeof(source), "%s/%s.%s", path, file, source_ext);
+   snprintf(target, sizeof(target), "%s/%s.%s", path, file, target_ext);
 
    return copy_file(source, target) ;
 }
@@ -689,15 +698,18 @@ char* form(const char* fmt, ...)
    static char formbuf[BUFSIZ];
    char tempbuf[BUFSIZ];
    va_list args;
+   int len;
 
    va_start(args, fmt);
 
-   strcpy(tempbuf, formbuf);
-   (void) vsprintf(tempbuf, fmt, args);
+   len = MIN(strlen(formbuf), BUFSIZ - 1);
+   *((char *) memcpy(tempbuf, formbuf, len) + len) = '\0';
+   (void) vsnprintf(tempbuf, sizeof(tempbuf), fmt, args);
 
    va_end(args);
 
-   strcpy(formbuf, tempbuf);
+   len = MIN(strlen(tempbuf), BUFSIZ - 1);
+   *((char *) memcpy(formbuf, tempbuf, len) + len) = '\0';
    return formbuf;
 }
 
@@ -731,16 +743,15 @@ char* access_info( char* request )
    char* x = time_stamp(&ctime_buf);
    x[strlen(x)-1] = 0;
 
-   char userid[L_cuserid];
-
 #ifndef SVR4
-   sprintf(info_buf, "%s-%s-%ld-%s-%s",
+   snprintf(info_buf, sizeof(info_buf), "%s-%s-%ld-%s-%s",
            host_name, dm_name,
            /* getenv("USER"), */
            (long)getpid(), x, request
           );
 #else
-   sprintf(info_buf, "%s-%s-%ld-%s-%s",
+   char userid[L_cuserid];
+   snprintf(info_buf, sizeof(info_buf), "%s-%s-%ld-%s-%s",
            name.nodename, 
            ( cuserid(userid)[0] == 0 ) ? "???" : userid,
            /* getenv("USER"), */
@@ -801,6 +812,7 @@ Boolean writeToTmpFile(char* unique_nm, char* str, int size)
     Boolean ok = false;
     fstream *out = 0;
     char* tmp_dir_tbl[4];
+    int len;
     tmp_dir_tbl[0] = getenv("TMPDIR");
     tmp_dir_tbl[1] = (char*)"/tmp";
     tmp_dir_tbl[2] = (char*)"/usr/tmp";
@@ -815,12 +827,15 @@ Boolean writeToTmpFile(char* unique_nm, char* str, int size)
        if ( tmp_dir_tbl[i] == 0 )
           continue;
 
-       strcpy(unique_nm, form("%s/tmp.%s", tmp_dir_tbl[i], uid));
+       len = MIN(strlen(tmp_dir_tbl[i]) + strlen(uid) + 5, PATHSIZ - 1);
+       *((char *) memcpy(unique_nm,
+                        form("%s/tmp.%s", tmp_dir_tbl[i], uid),
+                        len) + len) = '\0';
 
        mtry {
 //debug(cerr, tmp_dir_tbl[i]);
 //debug(cerr, disk_space(tmp_dir_tbl[i]));
-          if ( disk_space(tmp_dir_tbl[i]) <= size )
+          if ( disk_space(tmp_dir_tbl[i]) <= (unsigned long) size )
             continue;
 
           out = new fstream(unique_nm, ios::out);
index 8513e2281a8c5c47aca87d484e6a2994023b7547..a7eaf0d42de83479a2fdea4a057c0eea2737b7e1 100644 (file)
 #define TOBOOLEAN(x) ( ((x) == 1 ) ? true : false )
 #define TOBIT(x) ( ((x) == true ) ? 1 : 0 )
 
+/* secure XtNewString macro */
+#define XtsNewString(str) \
+    ((str) != NULL ? (char *)(memcpy(XtMalloc((unsigned)strlen(str) + 1), \
+     str, (unsigned)strlen(str) + 1)) : NULL)
+
 /* little endian to/from big endian swap macros. */
 
 #ifndef __osf__
index 412b47bb5b72c077c680e230b734d16380cd0294..e6e466b826a66908723acebd87a01dad9570f416 100644 (file)
@@ -184,7 +184,7 @@ Boolean write_lock(char* lock_file_path,
                    char*& ai_info
                   )
 {
-   int ret;
+   unsigned int len, slen;
    atomic_lock l(lock_file_path);
 
    if ( l.lock() == false ) {
@@ -217,8 +217,14 @@ Boolean write_lock(char* lock_file_path,
    while ( x.getline(buf, BUFSIZ) ) {
       if ( buf[0] == 'A' ) {
          ok = false;
-         strcat(ai_info, buf+1);
-         strcat(ai_info, "\n");
+
+         slen = strlen(ai_info);
+         len = MIN(strlen(buf+1), BUFSIZ - 1 - slen);
+         *((char *) memcpy(ai_info + slen, buf+1, len) + len) = '\0';
+
+         slen = strlen(ai_info);
+         len = MIN(1, BUFSIZ - 1 - slen);
+         *((char *) memcpy(ai_info + slen, "\n", len) + len) = '\0';
       }
    }
    
@@ -232,7 +238,9 @@ Boolean write_lock(char* lock_file_path,
 /////////////////////////////////////////
 // create the access info file
 /////////////////////////////////////////
-         ret = truncate(ai_path, 0);
+         if(truncate(ai_path, 0) != 0 ) {
+            throw(systemException(errno));
+         }
          fstream x(ai_path, ios::out);
          x << "A-" << writer_info << "\n";
    
index 3447e68f5475505e2df6851b4ae4da651c5e474e..9458e377102d50df02ee28b4b38467a4f84819e3 100644 (file)
@@ -35,7 +35,7 @@ char*  sform(const char* fmt ...)
 
    va_start(args, fmt);
 
-   (void) vsprintf(buf, fmt, args);
+   (void) vsnprintf(buf, sizeof(buf), fmt, args);
                
    va_end(args);
 
index 1a319c6eb1e41ea18bd865bad45210fd8d9332d9..bd689ebbd91657cecac2400714c776a3c179ec54 100644 (file)
@@ -79,7 +79,7 @@ typedef void (*print_func_ptr_t)(ostream&, const void*);
 
 //enum Boolean { true, false };
 
-#ifndef __osf__
+#if !defined(__osf__) && !defined(linux) && !defined(CSRG_BASED)
 typedef long mmdb_pos_t;
 #else
 typedef int mmdb_pos_t;