[BACK]Return to wwinit.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / window

Diff for /src/usr.bin/window/Attic/wwinit.c between version 1.12 and 1.13

version 1.12, 2003/04/05 01:39:50 version 1.13, 2003/04/19 23:56:09
Line 279 
Line 279 
   
         kp = wwwintermcap;          kp = wwwintermcap;
         if (wwavailmodes & WWM_REV)          if (wwavailmodes & WWM_REV)
                 wwaddcap1(WWT_REV, &kp);                  wwaddcap1(WWT_REV, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (wwavailmodes & WWM_BLK)          if (wwavailmodes & WWM_BLK)
                 wwaddcap1(WWT_BLK, &kp);                  wwaddcap1(WWT_BLK, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (wwavailmodes & WWM_UL)          if (wwavailmodes & WWM_UL)
                 wwaddcap1(WWT_UL, &kp);                  wwaddcap1(WWT_UL, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (wwavailmodes & WWM_GRP)          if (wwavailmodes & WWM_GRP)
                 wwaddcap1(WWT_GRP, &kp);                  wwaddcap1(WWT_GRP, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (wwavailmodes & WWM_DIM)          if (wwavailmodes & WWM_DIM)
                 wwaddcap1(WWT_DIM, &kp);                  wwaddcap1(WWT_DIM, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (wwavailmodes & WWM_USR)          if (wwavailmodes & WWM_USR)
                 wwaddcap1(WWT_USR, &kp);                  wwaddcap1(WWT_USR, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (tt.tt_insline && tt.tt_delline || tt.tt_setscroll)          if (tt.tt_insline && tt.tt_delline || tt.tt_setscroll)
                 wwaddcap1(WWT_ALDL, &kp);                  wwaddcap1(WWT_ALDL, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (tt.tt_inschar)          if (tt.tt_inschar)
                 wwaddcap1(WWT_IMEI, &kp);                  wwaddcap1(WWT_IMEI, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (tt.tt_insspace)          if (tt.tt_insspace)
                 wwaddcap1(WWT_IC, &kp);                  wwaddcap1(WWT_IC, &kp, wwwintermcap + sizeof wwwintermcap -
                       kp);
         if (tt.tt_delchar)          if (tt.tt_delchar)
                 wwaddcap1(WWT_DC, &kp);                  wwaddcap1(WWT_DC, &kp, wwwintermcap + sizeof wwwintermcap -
         wwaddcap("kb", &kp);                      kp);
         wwaddcap("ku", &kp);          wwaddcap("kb", &kp, wwwintermcap + sizeof wwwintermcap - kp);
         wwaddcap("kd", &kp);          wwaddcap("ku", &kp, wwwintermcap + sizeof wwwintermcap - kp);
         wwaddcap("kl", &kp);          wwaddcap("kd", &kp, wwwintermcap + sizeof wwwintermcap - kp);
         wwaddcap("kr", &kp);          wwaddcap("kl", &kp, wwwintermcap + sizeof wwwintermcap - kp);
         wwaddcap("kh", &kp);          wwaddcap("kr", &kp, wwwintermcap + sizeof wwwintermcap - kp);
           wwaddcap("kh", &kp, wwwintermcap + sizeof wwwintermcap - kp);
         if ((j = tgetnum("kn")) >= 0) {          if ((j = tgetnum("kn")) >= 0) {
                 char cap[32];                  char cap[32];
   
                 (void) sprintf(kp, "kn#%d:", j);                  (void) snprintf(kp, wwwintermcap + sizeof wwwintermcap - kp,
                       "kn#%d:", j);
                 for (; *kp; kp++)                  for (; *kp; kp++)
                         ;                          ;
                 for (i = 1; i <= j; i++) {                  for (i = 1; i <= j; i++) {
                         (void) snprintf(cap, sizeof(cap), "k%d", i);                          (void) snprintf(cap, sizeof(cap), "k%d", i);
                         wwaddcap(cap, &kp);                          wwaddcap(cap, &kp, wwwintermcap +
                               sizeof wwwintermcap - kp);
                         cap[0] = 'l';                          cap[0] = 'l';
                         wwaddcap(cap, &kp);                          wwaddcap(cap, &kp, wwwintermcap +
                               sizeof wwwintermcap - kp);
                 }                  }
         }          }
         /*          /*
Line 349 
Line 362 
         return -1;          return -1;
 }  }
   
 wwaddcap(cap, kp)  wwaddcap(cap, kp, len)
         char *cap;          char *cap;
         char **kp;          char **kp;
           int len;
 {  {
         char tbuf[512];          char tbuf[1024];        /* tgetstr(, &tp) does strlcpy(tp,, 1024) */
         char *tp = tbuf;          char *tp = tbuf;
         char *str, *p;          char *str, *p;
   
         if ((str = tgetstr(cap, &tp)) != 0) {          if ((str = tgetstr(cap, &tp)) != 0) {
                   int need = strlen(cap) + 3;
   
                   for (p = str; *p; ++p)
                           need += strlen(unctrl(*p));
                   if (need > len)
                           return;
                 while (*(*kp)++ = *cap++)                  while (*(*kp)++ = *cap++)
                         ;                          ;
                 (*kp)[-1] = '=';                  (*kp)[-1] = '=';
Line 371 
Line 391 
         }          }
 }  }
   
 wwaddcap1(cap, kp)  wwaddcap1(cap, kp, len)
         char *cap;          char *cap;
         char **kp;          char **kp;
           int len;
 {  {
           if (strlen(cap) + 1 > len)
                   return;
         while (*(*kp)++ = *cap++)          while (*(*kp)++ = *cap++)
                 ;                  ;
         (*kp)--;          (*kp)--;

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13