25 void add_remark_nocopy(
char *rem) {
26 if (numofrem >= allocated) {
27 allocated = allocated*1.5+10;
31 remarks[numofrem++] = rem;
34 void add_remark_if_content(
const char *key,
const char *Str) {
39 void add_remarks_from(
const OrgInfo& orginf);
40 void add_remarks_from(
const SeqInfo& seqinf);
41 void add_35end_remark(
char end35,
char yn);
43 static bool macke_is_continued_remark(
const char *
str) {
50 return strncmp(str,
": ", 3) == 0;
99 for (
int indi = 0; indi < numofrem; indi++) {
100 freenull(remarks[indi]);
107 freenull(subspecies);
110 void add_remark(
const char *rem) { add_remark_nocopy(nulldup(rem)); }
112 char *rem = nulldup(key);
114 add_remark_nocopy(rem);
125 char *rem = nulldup(remarks[idx]+offset);
126 while (++idx<numofrem && macke_is_continued_remark(remarks[idx])) {
132 void add_remarks_from(
const GenBank& gbk);
136 const char *
get_id()
const {
return seqabbr; }
153 void usingReader(
Reader*& r) {
157 bool macke_in(Macke& macke);
165 return r1->
ok() && r2->
ok() && r3->
ok();
168 bool read_seq_data(
Seq&
seq) {
176 void read_to_start();
202 typedef bool (*LinePredicate)(
const char *
line);
205 Not(LinePredicate p_) : p(p_) {}
210 #error macke.h included twice
CONSTEXPR_INLINE bool isMackeHeader(const char *line)
bool operator()(const char *line) const
char * ARB_strdup(const char *str)
Format format() const OVERRIDE
int get_rem_count() const
CONSTEXPR_INLINE bool isMackeSeqInfo(const char *line)
CONSTEXPR_INLINE bool has_content(const char *field)
MackeReader(const char *inName_)
void macke_origin(Seq &seq, char *&seqabbr, Reader &reader)
const char * get_id() const
const char * get_rem(int idx) const
InputFormat & get_data() OVERRIDE
void ignore_rest_of_file() OVERRIDE
char * copy_multi_rem(int &idx, int offset) const
void skip_eolnl_and_append_spaced(char *&string1, const char *string2)
void ignore_rest_of_file()
bool failed() const OVERRIDE
void Append(char *&string1, const char *string2)
#define __ATTR__USERESULT
void ARB_realloc(TYPE *&tgt, size_t nelem)
CONSTEXPR_INLINE bool isMackeSeqHeader(const char *line)
void add_remark(const char *key, const char *Str)
void add_remark(const char *rem)
bool read_one_entry(Seq &seq) OVERRIDE __ATTR__USERESULT
CONSTEXPR_INLINE bool isMackeNonSeq(const char *line)