src/inc/ra.h 1.8
1.8 2009/12/06 20:09:36 kent
Adding optional dyString parameter.
Index: src/inc/ra.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/inc/ra.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -b -B -U 1000000 -r1.7 -r1.8
--- src/inc/ra.h 23 Nov 2009 07:33:44 -0000 1.7
+++ src/inc/ra.h 6 Dec 2009 20:09:36 -0000 1.8
@@ -1,55 +1,57 @@
/* Stuff to parse .ra files. Ra files are simple text databases.
* The database is broken into records by blank lines.
* Each field takes a line. The name of the field is the first
* word in the line. The value of the field is the rest of the line.
*
* This file is copyright 2002 Jim Kent, but license is hereby
* granted for all use - public, private or commercial. */
#ifndef RA_H
struct hash *raNextRecord(struct lineFile *lf);
/* Return a hash containing next record.
* Returns NULL at end of file. freeHash this
* when done. Note this will free the hash
* keys and values as well, so you'll have to
* cloneMem them if you want them for later. */
struct slPair *raNextRecordAsSlPairList(struct lineFile *lf);
/* Return ra record as a slPair list instead of a hash. Handy if you want to preserve the order.
* Do a slPairFreeValsAndList on result when done. */
-boolean raSkipLeadingEmptyLines(struct lineFile *lf);
+boolean raSkipLeadingEmptyLines(struct lineFile *lf, struct dyString *dy);
/* Skip leading empty lines and comments. Returns FALSE at end of file.
- * Together with raNextTagVal you can construct your own raNextRecord.... */
+ * Together with raNextTagVal you can construct your own raNextRecord....
+ * If dy parameter is non-null, then the text parsed gets placed into dy. */
-boolean raNextTagVal(struct lineFile *lf, char **retTag, char **retVal);
+boolean raNextTagVal(struct lineFile *lf, char **retTag, char **retVal, struct dyString *dy);
/* Read next line. Return FALSE at end of file or blank line. Otherwise
- * fill in *retTag and *retVal and return TRUE */
+ * fill in *retTag and *retVal and return TRUE.
+ * If dy parameter is non-null, then the text parsed gets appended to dy. */
struct hash *raFromString(char *string);
/* Return hash of key/value pairs from string.
* As above freeHash this when done. */
boolean raFoldInOne(struct lineFile *lf, struct hash *hashOfHash);
/* Fold in one record from ra file into hashOfHash.
* This will add ra's and ra fields to whatever already
* exists in the hashOfHash, overriding fields of the
* same name if they exist already. */
void raFoldIn(char *fileName, struct hash *hashOfHash);
/* Read ra's in file name and fold them into hashOfHash.
* This will add ra's and ra fields to whatever already
* exists in the hashOfHash, overriding fields of the
* same name if they exist already. */
struct hash *raReadSingle(char *fileName);
/* Read in first ra record in file and return as hash. */
struct hash *raReadAll(char *fileName, char *keyField);
/* Return hash that contains all ra records in file keyed
* by given field, which must exist. The values of the
* hash are themselves hashes. */
#endif /* RA_H */