root/trunk/w2djk-up.c

Revision 389, 2.3 kB (checked in by heitor.barbieri, 3 weeks ago)

essage first commit

Line 
1/* ==----------------------------- w2djk.c -----------------------------== */
2
3int w2docjk (int cmd, WTFUN_ARRAY *awtfp, int coll, char *parmeval)
4{
5        WTFUN_XWT *xwtp;//=awtfp->vwtfp[coll];
6
7        //WTFUN_XWT current
8        xwtp=awtfp->vwtfp[coll];
9
10
11    /* get eval/jk/jd parms
12    */
13    //jk_n is init in w2pdoc.c
14
15    if (!parmeval) return 0;
16
17    if (*parmeval) {
18
19      char *p=parmeval;
20      int left=strlen(parmeval);
21
22      for (; left; ) {     // for each spec of parmeval
23         int jdi=(-1);
24         int j;
25         unsigned int len,nlen,left2;
26         int i,noc;
27         char *name,*q;
28
29         while (isspace(*p)) if (left) { p++; left--; }  //strip
30         if (!left) break;
31
32         for (name=q=p, len=0; left; p++, len++, left--) {  // go forward
33             if (*p == ',') {                          // until comma
34                 p++; left--; break;
35             }
36         }
37         if (!len) continue;                      // skip null lines
38
39         for (nlen=0, left2=len; left2; q++, nlen++, left2--) { // go forward
40             if (*q == ':') {                                      // until colon
41                 q++; break;
42             }
43         }
44
45         for (i=0, noc=jd_n; i < noc; i++) {  // for each jd_occ
46             if (nlen == strlen(jd_name[i]))
47                 if (strncmp(jd_name[i],name,nlen) == 0) {
48                     jdi=i; break;
49                 }
50         }
51         if (jdi < 0) continue;
52
53         if (jk_n >= MAXJDS) continue; //fatal("MAXJDS");
54
55         j=jk_n;
56         jk_jdi[j]=jdi;
57         jk_tabcats[j]=jdtabcats;
58         jk_tabwidth[j]=jdtabwidth;
59
60         if (isdigit(*q)) {
61             int tabcats=atoi(q);
62             if (tabcats >= /*1 && tabcats <= jdtabcats) jk_tabcats[j]=tabcats;
63             if (tabcats <= 0) if (strncmp(q,"on",2)) continue; //select or checked
64             while (isdigit(*q)) q++;
65             if (*q == ':') q++;
66         }
67
68         if (isdigit(*q)) {
69             int tabwidth=atoi(q);
70             if (tabwidth >= /*1*/0 && tabwidth <= jdtabwidth) jk_tabwidth[j]=tabwidth;
71             //while (isdigit(*q)) q++;
72             //if (*q == ':') q++;
73         }
74
75         jk_n++;
76         
77      }  // end for each spec of parmeval
78    }  // end if parmeval
79
80    return jk_n;  // end w2docjk   
81}
Note: See TracBrowser for help on using the browser.