/**********************************************************************
 * luc_flgclr.c -- translate user-readable string into cleared flags
 *
 * $Author: brlewis $
 * $Source: /afs/athena.mit.edu/astaff/project/lucydev/src/lib/RCS/luc_flgclr.c,v $
 * $Header: /afs/athena.mit.edu/astaff/project/lucydev/src/lib/RCS/luc_flgclr.c,v 1.1 91/09/24 14:34:07 brlewis Exp Locker: brlewis $
 *
 * Copyright 1991 by the Massachusetts Institute of Technology.
 *
 * For copying and distribution information, please see the file
 * <mit-copyright.h>.
 **********************************************************************/
#include <mit-copyright.h>

#ifndef lint
static char rcsid_luc_flgclr_c[] = "$Header: /afs/athena.mit.edu/astaff/project/lucydev/src/lib/RCS/luc_flgclr.c,v 1.1 91/09/24 14:34:07 brlewis Exp Locker: brlewis $";
#endif /* lint */

#include <strings.h>
#include <lucy/lucy.h>

/**********************************************************************
 * luc_flgclr(char *s)
 *	caller sets s to flag string
 *
 * - returns flags cleared in string s
 **********************************************************************/

int
luc_flgclr(s)
     register char *s;
{
  register int i, n=0;

  for(i=0; s[i] != '\0'; i++) {
    switch (s[i]) {
    case 'f':
      n |= LUCY_FORWARDED;
      break;
    case 'a':
      n |= LUCY_ANSWERED;
      break;
    case 'p':
      n |= LUCY_POSTED;
      break;
    case 'r':
      n |= LUCY_REPLIED;
      break;
    }
  }

  /* clear other flags only if the string is something like "----" */
  if (strlen(s) != 4) return(n);

  if (*s++ == '-') {
    n |= LUCY_FORWARDED;
    n |= LUCY_WANT_FORWARD;
  }
  if (*s++ == '-') {
    n |= LUCY_ANSWERED;
    n |= LUCY_WANT_ANSWER;
  }
  if (*s++ == '-') {
    n |= LUCY_POSTED;
    n |= LUCY_WANT_POST;
  }
  if (*s++ == '-') {
    n |= LUCY_REPLIED;
    n |= LUCY_WANT_REPLY;
  }
  return(n);
}
