X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fm_convert.c;h=7f2a7a8e2ae010c9758f455253b698ac1656c0a8;hp=b42a5aaad6bc36bbdeed67ab9a14556479e9434d;hb=2abb9a7cfb0930e27062088734d306e7d78e4cc2;hpb=f3db6244253b548f4196ea5cf41f4bc8d400d0c3 diff --git a/sbr/m_convert.c b/sbr/m_convert.c index b42a5aa..7f2a7a8 100644 --- a/sbr/m_convert.c +++ b/sbr/m_convert.c @@ -10,6 +10,7 @@ /* FIXME: This code needs rework! Rewrite as a parser? */ #include +#include /* ** error codes for sequence @@ -79,7 +80,7 @@ m_convert(struct msgs *mp, char *name) ** ALLOW_BEYOND is set, and can appear only on its own. ** Also, it is available in any folder. */ - if ((mp->msgflags & ALLOW_BEYOND) && !strcmp(cp, seq_beyond)) { + if ((mp->msgflags & ALLOW_BEYOND) && strcmp(cp, seq_beyond)==0) { addtosel(mp, getbeyond(mp)); return 1; } @@ -87,7 +88,7 @@ m_convert(struct msgs *mp, char *name) /* ** Handle the special all sequence: replace `a' with `f-l' */ - if (!strcmp(cp, seq_all)) { + if (strcmp(cp, seq_all)==0) { cp = concat(seq_first, "-", seq_last, NULL); } @@ -203,7 +204,7 @@ rangerr: */ if (first > mp->hghmsg || first < mp->lowmsg || !does_exist(mp, first)) { - if (!strcmp(name, seq_cur)) + if (strcmp(name, seq_cur)==0) advise(NULL, "no current message"); else /* this case seems to never be reached */ @@ -250,10 +251,12 @@ m_conv(struct msgs *mp, char *str, int call) { register int i; register unsigned char *cp, *bp; - unsigned char buf[16]; + unsigned char buf[16]; /* for reserved sequence name */ convdir = 1; cp = bp = str; + + /* Handle an integer */ if (isdigit(*cp)) { while (isdigit(*bp)) bp++; @@ -270,45 +273,47 @@ m_conv(struct msgs *mp, char *str, int call) return BADNUM; } - for (bp = buf; isalpha(*cp) && (bp - buf < sizeof(buf) - 1); ) { + for (bp = buf; isalpha(*cp) && (bp - buf < (int)sizeof(buf) - 1); ) { *bp++ = *cp++; } *bp++ = '\0'; delimp = cp; - if (!strcmp(buf, seq_first)) + /* Which one of the reserved names is it? */ + if (strcmp(buf, seq_first)==0) { return (mp->hghmsg || !(mp->msgflags & ALLOW_BEYOND) ? mp->lowmsg : BADMSG); - if (!strcmp(buf, seq_last)) { + } else if (strcmp(buf, seq_last)==0) { convdir = -1; return (mp->hghmsg || !(mp->msgflags & ALLOW_BEYOND) ? mp->hghmsg : BADMSG); - } - if (!strcmp(buf, seq_cur)) + } else if (strcmp(buf, seq_cur)==0) { return (mp->curmsg > 0 ? mp->curmsg : BADMSG); - if (!strcmp(buf, seq_prev)) { + } else if (strcmp(buf, seq_prev)==0) { convdir = -1; - for (i = (mp->curmsg <= mp->hghmsg) ? mp->curmsg - 1 : mp->hghmsg; - i >= mp->lowmsg; i--) { + for (i = (mp->curmsg <= mp->hghmsg) ? + mp->curmsg - 1 : mp->hghmsg; + i >= mp->lowmsg; i--) { if (does_exist(mp, i)) return i; } return BADMSG; - } - if (!strcmp(buf, seq_next)) { - for (i = (mp->curmsg >= mp->lowmsg) ? mp->curmsg + 1 : mp->lowmsg; - i <= mp->hghmsg; i++) { + } else if (strcmp(buf, seq_next)==0) { + for (i = (mp->curmsg >= mp->lowmsg) ? + mp->curmsg + 1 : mp->lowmsg; + i <= mp->hghmsg; i++) { if (does_exist(mp, i)) return i; } return BADMSG; - } - return BADLST; + } else { + return BADLST; + } } /* @@ -338,7 +343,7 @@ attr(struct msgs *mp, char *cp) int first = 0; /* hack for "c-..." */ - if (!strcmp(cp, seq_cur)) + if (strcmp(cp, seq_cur)==0) return 0; /* "c:..." -- this code need to be rewritten... */ if (strncmp(seq_cur, cp, strlen(seq_cur))==0 && @@ -350,7 +355,7 @@ attr(struct msgs *mp, char *cp) if (!(dp = context_find(nsequence))) { dp = seq_neg; /* use default */ } - if (dp && *dp && isprefix(dp, cp)) { + if (*dp && strncmp(cp, dp, strlen(dp))==0) { inverted = 1; cp += strlen(dp); } @@ -371,17 +376,17 @@ attr(struct msgs *mp, char *cp) ** seq:l */ if (isalpha(*dp)) { - if (!strcmp(dp, seq_prev)) { + if (strcmp(dp, seq_prev)==0) { convdir = -1; first = (mp->curmsg > 0) && (mp->curmsg <= mp->hghmsg) ? mp->curmsg - 1 : mp->hghmsg; - } else if (!strcmp(dp, seq_next)) { + } else if (strcmp(dp, seq_next)==0) { convdir = 1; first = (mp->curmsg >= mp->lowmsg) ? mp->curmsg + 1 : mp->lowmsg; - } else if (!strcmp(dp, seq_first)) { + } else if (strcmp(dp, seq_first)==0) { convdir = 1; - } else if (!strcmp(dp, seq_last)) { + } else if (strcmp(dp, seq_last)==0) { convdir = -1; } else return BADLST;