rem: fscanf(fp, "\twinflags=%d, sortindx=%d, maxtasks=%d \n"
add: fscanf(fp, "\twinflags=%d, sortindx=%u, maxtasks=%d \n"
context: static void configs_read (void){   static const char err_rc[] = "bad rcfile, you should delete '%s'";   char fbuf[RCFBUFSIZ];   FILE *fp;   float delay = DEF_DELAY;   char id;   int i;   if (getenv("HOME"))      strcpy(RCfile, fmtmk("%s%c", getenv("HOME"), '/'));   strcat(RCfile, fmtmk(".%src", Myname));   fp = fopen(SYS_RCFILE, "r");   if (fp) {      fbuf[0] = '\0';      fgets(fbuf, sizeof(fbuf), fp);            /* sys rc file, line #1 */      if (strchr(fbuf, 's')) Secure_mode = 1;      fbuf[0] = '\0';      fgets(fbuf, sizeof(fbuf), fp);            /* sys rc file, line #2 */      fclose(fp);      sscanf(fbuf, "%f", &delay);   }   fp = fopen(RCfile, "r");   if (fp) {      fgets(fbuf, sizeof(fbuf), fp);    /* ignore shameless advertisement */      if (5 != (fscanf(fp, "Id:%c, "         "Mode_altscr=%d, Mode_irixps=%d, Delay_time=%f, Curwin=%d\n"         , &id, &Mode_altscr, &Mode_irixps, &delay, &i)) || RCF_FILEID != id)            std_err(fmtmk(err_rc, RCfile));         /* you saw that, right?  (fscanf stickin' it to 'i') */      Curwin = Winstk[i];      for (i = 0; i < GROUPSMAX; i++) {           /* we won't check fscanf returns from here on out -- we'll be              hunky-dory with nothing in an rcfile except the 1st 2 lines */         fscanf(fp, "%s\tfieldscur=%s\n"            , Winstk[i]->winname, Winstk[i]->fieldscur);         /*            Our winname buffer is 4 bytes big - 3 chars + '\0'.            Q. let's say someone manually edits the rcfile and increases               a winname name to oh, 500 bytes - what's the net result?            A. fscanf wipes out 496 bytes of adjacent stg (fieldscur, etc),               then we catch it with strlen and end via std_err - no worries!               we might not have been so lucky if our WIN_t was laid out               differently and statically allocated or stack based!! */         if (WINNAMSIZ <= strlen(Winstk[i]->winname)         || strlen(DEF_FIELDS) != strlen(Winstk[i]->fieldscur))            std_err(fmtmk(err_rc, RCfile));         fscanf(fp, "\twinflags=%d, sortindx=%d, maxtasks=%d \n"            , &Winstk[i]->winflags            , (int *)&Winstk[i]->sortindx            , &Winstk[i]->maxtasks);         fscanf(fp, "\tsummclr=%d, msgsclr=%d, headclr=%d, taskclr=%d \n"            , &Winstk[i]->summclr            , &Winstk[i]->msgsclr            , &Winstk[i]->headclr            , &Winstk[i]->taskclr);      }      fclose(fp);   }      /* lastly, establish the true runtime secure mode and delay time */   Secure_mode = getuid() ? Secure_mode : 0;   if (!Secure_mode || !getuid()) Delay_time = delay;}