Logo Search packages:      
Sourcecode: xbuffy version File versions  Download package

header_cmp.c

/* this is from elm 2.4 so: */

/*******************************************************************************
*                      Copyright (c) 1988-1992 USENET Community Trust
*                      Copyright (c) 1986,1987 Dave Taylor
********************************************************************************/


/**
      compare a header, ignoring case and allowing linear white space
      around the :.  Header must be anchored to the start of the line.

      returns NULL if no match, or first character after trailing linear
      white space of the :.

**/
#include <stdio.h>
#include <ctype.h>
#include "xbuffy.h"


#define whitespace(c)    (c == ' ' || c == '\t')

#ifdef BSD
#undef tolower
#endif


char *header_cmp(header, prefix, suffix)
char *header;
char *prefix;
char *suffix;
{
      int len;

      len = NEWstrlen(prefix);
      if (strincmp(header, prefix, len))
            return (NULL);

      /* skip over while space if any */
      header += len;

      if (*header != ':')                 /* headers must end in a : */
            return (NULL);

      /* skip over while space if any */
      header++;

      while (*header)
      {
            if (!whitespace(*header))
                  break;
            header++;
      }

      if (suffix != NULL)
      {
            len = NEWstrlen(suffix);
            if (len > 0)
                  if (strincmp(header, suffix, len))
                        return (NULL);
      }

      return (header);
}

Generated by  Doxygen 1.6.0   Back to index