NASA Logo
Ocean Color Science Software

ocssw V2022
setupflags.c
Go to the documentation of this file.
1 #include <setupflags.h>
2 #include <string.h>
3 #include <stdlib.h>
4 //#include <netcdf.h>
5 //#include <dfutils.h>
6 
7 void setupflags(char *flagdef, char *flaguse, uint32_t *flagusemask, uint32_t *required, int *status,
8  int32_t *BITS) {
9  int bitNum;
10  char *tmpFlags;
11  char *ptr, *ptr2;
12 
13  *status = 0;
14  *flagusemask = 0;
15  *required = 0;
16 
17  bitNum = 0;
18  tmpFlags = strdup(flagdef);
19  ptr = strtok(tmpFlags, ",");
20  while (ptr) {
21  if (ptr) {
22  if ((ptr2 = strstr(flaguse, ptr))) {
23  ptr2--;
24  if (*ptr2 == '~')
25  *required = *required | BITS[bitNum];
26  else
27  *flagusemask = *flagusemask | BITS[bitNum];
28  }
29  }
30  ptr = strtok(NULL, ",");
31  bitNum++;
32  if (bitNum > 33) {
33  *status = -1;
34  break;
35  }
36  }
37 
38  free(tmpFlags);
39 }
void setupflags(char *flagdef, char *flaguse, uint32_t *flagusemask, uint32_t *required, int *status, int32_t *BITS)
Definition: setupflags.c:7
int status
Definition: l1_czcs_hdf.c:32
#define NULL
Definition: decode_rs.h:63
char * strdup(const char *)