a0bf1e0f6407bef3654ad3e8e057603c51394332
tdreszer
  Thu Jun 23 10:50:45 2011 -0700
As per last weeks code review (note to self), fixed cvNormalize routines to not return values on the stack.  Added 'const' to all the cv routines in appropriate places.  Kept validateCv compiling even though it is unused.  Made hgEncodeVocab use the one true cvFile() call so that it gets the same cv file as other CGIs.
diff --git src/hg/inc/cv.h src/hg/inc/cv.h
index dedb56c..16b9059 100644
--- src/hg/inc/cv.h
+++ src/hg/inc/cv.h
@@ -50,75 +50,78 @@
 #define CV_VALIDATE_REGEX           "regex:"
 #define CV_VALIDATE_NONE            "none"
 
 // CV TERMS (NOTE: UGLY Terms in cv.ra are hidden inside cv.c APIS)
 #define CV_TERM_GRANT           "grant"
 #define CV_TERM_LAB             "lab"
 #define CV_TERM_CELL            "cell"
 #define CV_TERM_ANTIBODY        "antibody"
 #define CV_TERM_CONTROL         "control"
 #define CV_TERM_DATA_TYPE       "dataType"
 #define CV_TERM_LOCALIZATION    "localization"
 #define CV_TERM_VIEW            "view"
 #define CV_TERM_SEQ_PLATFORM    "seqPlatform"
 
 
-void cvFileDeclare(char *filePath);
+void cvFileDeclare(const char *filePath);
 // Declare an altername cv.ra file to use
 // (The cv.ra file is normally discovered based upon CGI/Tool and envirnment)
 
-char *cvTypeNormalized(char *sloppyTerm);
-// returns (on stack) the proper term to use when requesting a typeOfTerm
+const char *cvFile();
+// return default location of cv.ra
 
-char *cvTermNormalized(char *sloppyTerm);
-// returns (on stack) the proper term to use when requesting a cvTerm hash
+const char *cvTypeNormalized(const char *sloppyTerm);
+// returns the proper term to use when requesting a typeOfTerm
 
-const struct hash *cvTermHash(char *term);
+const char *cvTermNormalized(const char *sloppyTerm);
+// returns the proper term to use when requesting a cvTerm hash
+
+const struct hash *cvTermHash(const char *term);
 // returns a hash of hashes of a term which should be defined in cv.ra
 // NOTE: in static memory: DO NOT FREE
 
-const struct hash *cvOneTermHash(char *type,char *term);
+const struct hash *cvOneTermHash(const char *type,const char *term);
 // returns a hash for a single term of a given type
 // NOTE: in static memory: DO NOT FREE
 
 const struct hash *cvTermTypeHash();
 // returns a hash of hashes of mdb and controlled vocabulary (cv) term types
 // Those terms should contain label,descrition,searchable,cvDefined,hidden
 // NOTE: in static memory: DO NOT FREE
 
 struct slPair *cvWhiteList(boolean searchTracks, boolean cvLinks);
 // returns the official mdb/controlled vocabulary terms that have been whitelisted for certain uses.
 
 enum cvSearchable
 // metadata Variavble are only certain declared types
     {
     cvNotSearchable        =0,  // Txt is default
     cvSearchByMultiSelect  =1,  // Search by drop down multi-select of supplied list (NOT YET IMPLEMENTED)
     cvSearchBySingleSelect =2,  // Search by drop down single-select of supplied list
     cvSearchByFreeText     =3,  // Search by free text field (NOT YET IMPLEMENTED)
     cvSearchByDateRange    =4,  // Search by discovered date range (NOT YET IMPLEMENTED)
     cvSearchByIntegerRange =5   // Search by discovered integer range (NOT YET IMPLEMENTED)
     };
 
-enum cvSearchable cvSearchMethod(char *term);
+enum cvSearchable cvSearchMethod(const char *term);
 // returns whether the term is searchable
 
-const char *cvLabel(char *term);
+const char *cvLabel(const char *term);
 // returns cv label if term found or else just term
 
-const char *cvTag(char *type,char *term);
+const char *cvTag(const char *type,const char *term);
 // returns cv Tag if term found or else NULL
 
-boolean cvTermIsHidden(char *term);
+boolean cvTermIsHidden(const char *term);
 // returns TRUE if term is defined as hidden in cv.ra
 
-boolean cvTermIsEmpty(char *term,char *val);
+boolean cvTermIsEmpty(const char *term,const char *val);
 // returns TRUE if term has validation of "cv or None" and the val is None
 
-char *cvLabNormalize(char *sloppyTerm);
+char *cvLabNormalize(const char *sloppyTerm);
 /* CV inconsistency work-arounds.  Return lab name trimmed of parenthesized trailing
  * info (a few ENCODE labs have this in metaDb and/or in CV term --
  * PI name embedded in parens in the CV term).  Also fixes other problems until
  * cleaned up in CV, metaDb and user processes.  Caller must free mem. */
 
 #endif /* CV_H */