Hi All,

Once again, yet another quick and dirty merging :-)

The  diff (against the latest cvs) has more Maldonado's opcodes,
plus gens 40, 41, 42, and 43.

And again, no testing at all :-(

There are only a few (Maldonado's) opcodes to be at Unofficial Linux
Csound  now:

bmopen
bmoscil
bmoscili
bmscan
bmscani
bmtable
bmtablei

They need the paintlib library. I am going to see if I can do something...

So, the following Maldonado's opcodes are implemented in the unofficial
linux version:

Cusrnd
Dusrnd
FLbox
FLbutBank
FLbutton
FLcolor
FLcount
FLgetsnap
FLgroup
FLgroup_end
FLhide
FLjoy
FLknob
FLlabel
FLloadsnap
FLpack
FLpack_end
FLpanel
FLpanel_end
FLprintk
FLprintk2
FLroller
FLrun
FLsavesnap
FLscroll
FLscroll_end
FLsetAlign
FLsetBox
FLsetColor
FLsetColor2
FLsetFont
FLsetPosition
FLsetSize
FLsetText
FLsetTextColor
FLsetTextSize
FLsetTextType
FLsetVal
FLsetVal_i
FLsetsnap
FLshow
FLslider
FLtabs
FLtabs_end
FLtext
FLvalue
adsynt2
cent(x)
cpstun
cpstuni
db(x)
foscili2
jitter
jitter2
jspline
lineto
loopseg
lpshold
mandel
metro
octave(x)
random
randomh
randomi
rgb2hsvl
rgb2hsvl_i
rspline
semitone(x)
tab
tabw
tlineto
urd
vadd
vaddv
vcella
vcopy
vdelayk
vdivv
vecdelay
vexp
vexpseg
vexpv
vibr
vibrato
vlimit
vlinseg
vmap
vmirror
vmult
vmultv
vport
vpow
vpowv
vrandh
vrandi
vsubv
vtab
vtable
vtablew
vtabw
vwrap

Pretty good, ah? :-))

I also created a directory named test under csound/doc to put some
files to test opcodes.

Happy hacking,

Pedro Kroeger

diff -uNr csound/Make.Variables.in csound-new-merge/Make.Variables.in
--- csound/Make.Variables.in    Mon May 21 18:28:16 2001
+++ csound-new-merge/Make.Variables.in  Tue Aug 28 00:00:45 2001
@@ -77,9 +77,9 @@
                $(LINUX_DISTRIB_DIR)/scheduler.c \
                $(LINUX_DISTRIB_DIR)/ipc-sliders.c \
                $(LINUX_DISTRIB_DIR)/syserrs.c \
-               $(LINUX_DISTRIB_DIR)/getlongopts.c \
-               $(LINUX_DISTRIB_DIR)/csoundrc.c \
-               $(LINUX_DISTRIB_DIR)/dieu.c \
+               $(LINUX_DISTRIB_DIR)/getlongopts.c \
+               $(LINUX_DISTRIB_DIR)/csoundrc.c \
+               $(LINUX_DISTRIB_DIR)/dieu.c \
                $(LINUX_DISTRIB_DIR)/natural-conversions.c \
                $(LINUX_DISTRIB_DIR)/safe_fclose.c \
                $(OSC_OPCODES) \
@@ -103,7 +103,7 @@
        $(LINUX_MALDONADO_DIR)/Gab_osc.c \
        $(LINUX_MALDONADO_DIR)/ConsoleGab.c \
        $(LINUX_MALDONADO_DIR)/fractals.c \
-       $(LINUX_MALDONADO_DIR)/vibrato.c 
+       $(LINUX_MALDONADO_DIR)/vibrato.c \
 #      $(LINUX_MALDONADO_DIR)/Ugens8.c
 #      $(LINUX_MALDONADO_DIR)/wrap.c
 LINUX_MALDONADO_CC_SOURCES=$(LINUX_MALDONADO_DIR)/midi_cs_gab_linux.cc
diff -uNr csound/aops.c csound-new-merge/aops.c
--- csound/aops.c       Sat Apr 21 15:43:33 2001
+++ csound-new-merge/aops.c     Tue Aug 28 00:04:48 2001
@@ -655,6 +655,7 @@
     } while (--nsmps);
 }
 
+
 /** GAB START -------------*/
 #define pow2(x)  powerof2[(int) ((x) * (STEPS/(OCTAVES*2)) + .5)]
 #define oneUp6                 0.166666666666666666666666666666667f
diff -uNr csound/doc/test/loopseg.orc csound-new-merge/doc/test/loopseg.orc
--- csound/doc/test/loopseg.orc Thu Jan  1 00:00:00 1970
+++ csound-new-merge/doc/test/loopseg.orc       Tue Aug 28 01:53:26 2001
@@ -0,0 +1,32 @@
+;**** loopseg and lpseghold example.

+

+;**** Warning!! thi example is not intended to be heard, but its

+;**** output is intended to be watched with a wave editor (such as Cool edit), to see
+
+;**** the generated envelope lines. Playing the output of this example could damage

+;**** your speakers

+

+

+sr     =       44100

+kr     =       4410

+ksmps  =       10

+nchnls =       2

+

+

+

+       instr   1

+kl0    line    1,p3,600

+kl1    line    300,p3,5

+kosci  oscil   1,20,1

+;ktrig trigger kosci, .5,2

+

+k1     loopseg 10, 0,   0,0, 100,25000, kl0,32000, 100,5000,kl1,0

+k2     lpshold 10, 0,   0,0, 100,25000, kl0,32000, 100,5000,kl1,0

+a1     upsamp  k1

+a2     upsamp  k2

+       out     a1,a2

+

+       endin

+

+

+

+

diff -uNr csound/doc/test/loopseg.sco csound-new-merge/doc/test/loopseg.sco
--- csound/doc/test/loopseg.sco Thu Jan  1 00:00:00 1970
+++ csound-new-merge/doc/test/loopseg.sco       Tue Aug 28 01:53:26 2001
@@ -0,0 +1,2 @@
+f1 0 128 10 1

+i1 0 5

diff -uNr csound/doc/test/semitone.orc csound-new-merge/doc/test/semitone.orc
--- csound/doc/test/semitone.orc        Thu Jan  1 00:00:00 1970
+++ csound-new-merge/doc/test/semitone.orc      Tue Aug 28 01:53:26 2001
@@ -0,0 +1,26 @@
+sr=44100

+kr=441

+ksmps=100

+nchnls=2

+

+giWave1        ftgen   1,0,1024,10,   1, 0, .1

+giWave2        ftgen   1,0,1024,10,   1, 1, 0,0,  0,0, 0,0, 0,0, 0,0,.1, 0,0, 0,0, 
+0,0, 0,0, 0,0, 0, 0, .05

+

+       instr   1

+ibasefreq      =       p4 ;*** base frequency in cps

+istartGliss =  p5 ;*** distance from ibasefreq in semitones

+iendGliss      =       p6 ;*** distance from ibasefreq in semitones

+

+kGliss1        linseg  istartGliss, p3/3, istartGliss, p3/3, iendGliss, p3/3, 
+iendGliss

+kGliss2        linseg  iendGliss, p3/3, iendGliss, p3/3, istartGliss, p3/3, 
+istartGliss

+

+a1     oscili  10000, ibasefreq * semitone(kGliss1), giWave1

+a2     oscili  10000, ibasefreq * semitone(kGliss2), giWave2

+

+       outs    a1, a2

+

+       endin

+

+   

+

+

diff -uNr csound/doc/test/semitone.sco csound-new-merge/doc/test/semitone.sco
--- csound/doc/test/semitone.sco        Thu Jan  1 00:00:00 1970
+++ csound-new-merge/doc/test/semitone.sco      Tue Aug 28 01:53:26 2001
@@ -0,0 +1,7 @@
+i1 0 1 440     0       12

+i1 1.5 2       251     -12     12

+i1 4 .5        300     -7      5

+i1 5 1         880     -12     7

+i1 6.5 .5      220     0       5

+i1 7.5 3       100     0       7

+i1 11 1        50      0       24

diff -uNr csound/entry2.c csound-new-merge/entry2.c
--- csound/entry2.c     Sat May 19 10:29:57 2001
+++ csound-new-merge/entry2.c   Tue Aug 28 01:15:40 2001
@@ -134,9 +134,6 @@
 void test_set(void*), test(void*);
 void schedk(void*);
 void lineto_set(void*), lineto(void*), tlineto_set(void*),tlineto(void*);
-void bmopen(void*), bmtable_set(void*), bmtable(void*), bmtablei(void*);
-void bmoscil_set(void*), bmoscil(void*), bmoscili(void*), rgb2hsvl(void*);
-void metro_set(void*), metro(void*),  bmscan_set(void*),   bmscan(void*), 
bmscani(void*) ;
 void mandel_set(void*), mandel(void*),cpstun(void*),cpstun_i(void*);
 void vectorOp_set(void*), vadd(void*), vmult(void*), vpow(void*), vexp(void*);
 void vectorOp_set(void*),vadd(void*),vmult(void*),vpow(void*),vexp(void*);
@@ -147,6 +144,25 @@
 void ca_set(void*),  ca(void*), vport_set(void*),  vport(void*) ;
 void kdel_set(void*),  kdelay(void*),vecdly_set(void*),  vecdly(void*), vmap(void*);
 void seqtim2_set(void*), seqtim2(void*), adsynt2_set(void*), adsynt2(void*) ;
+void semitone(void*), isemitone(void*), semitone_a(void*), cent(void*), 
+icent(void*),cent_a(void*),db(void*),idb(void*),db_a(void*);
+void loopseg_set(void*),        loopseg(void*), lpshold(void*);
+void vibrato_set(void*), vibrato(void*),vibr_set(void*), vibr(void*);
+void mtable_set(void*),  mtable_k(void*),mtable_a(void*), mtable_i(void*);
+void mtablew_set(void*), mtablew_k(void*), mtablew_i(void*),  mtablew_a(void*);
+void randomi_set(void*), krandomi(void*), randomi(void*);
+void randomh_set(void*), krandomh(void*), randomh(void*);
+void random3_set(void*), random3(void*),random3a(void*);
+void ikDiscreteUserRand(void*), aDiscreteUserRand(void*);
+void ikRangeRand(void*), aRangeRand(void*);
+void fastabiw(void *), fastabkw(void *), fastabw(void *);
+void fastab_set(void *), fastabi(void *), fastabk(void *), fastab(void *);
+void jitter2_set(void*), jitter2(void*),jitter_set(void*), 
+jitter(void*),jitters_set(void*), jitters(void*), jittersa(void*);
+void ikDiscreteUserRand(void*), aDiscreteUserRand(void*);
+void ikContinuousUserRand(void*), aContinuousUserRand(void*);
+void bmopen(void*), bmtable_set(void*), bmtable(void*), bmtablei(void*);
+void bmoscil_set(void*), bmoscil(void*), bmoscili(void*), rgb2hsvl(void*); 
+void metro_set(void*), metro(void*),  bmscan_set(void*),   bmscan(void*), 
+bmscani(void*) ;
+
 #endif /* defined(GAB_RT) */
 
 /* thread vals, where isub=1, ksub=2, asub=4:
@@ -339,6 +355,72 @@
 { "vrandi",S(VRANDI),   3,        "",    "ikki",  vrandi_set,   vrandi      },
 { "vsubv",S(VECTORSOP),    3,        "",    "iii",   vectorsOp_set,   vsubv      },
 { "vwrap",S(VLIMIT),    3,        "",    "ikki",   vlimit_set,   vwrap      },
+{ "octave_i",S(EVAL),    1,      "i",    "i",    ipowoftwo                  },
+{ "octave_k",S(EVAL),    3,      "k",    "k",    powoftwo_set,   powoftwo          },
+{ "octave_a",S(EVAL),    5,      "a",    "a",    powoftwo_set, NULL  ,powoftwoa       
+   },
+{ "semitone_i",S(EVAL),    1,      "i",    "i",  isemitone                  },
+{ "semitone_k",S(EVAL),    3,      "k",    "k",  powoftwo_set,   semitone          },
+{ "semitone_a",S(EVAL),    5,      "a",    "a",  powoftwo_set, NULL  ,semitone_a      
+    },
+{ "cent_i",S(EVAL),    1,      "i",    "i",    icent                  },
+{ "cent_k",S(EVAL),    3,      "k",    "k",    powoftwo_set,   cent          },
+{ "cent_a",S(EVAL),    5,      "a",    "a",    powoftwo_set, NULL  ,cent_a          
+},
+{ "db_i",S(EVAL),    1,      "i",    "i",    idb                  },
+{ "db_k",S(EVAL),    3,      "k",    "k",    powoftwo_set,   db          },
+{ "db_a",S(EVAL),    5,      "a",    "a",    powoftwo_set, NULL  ,db_a          },
+{ "loopseg", S(LOOPSEG),3,      "k", "kkz",    loopseg_set,     loopseg, NULL},
+{ "lpshold", S(LOOPSEG),3,      "k", "kkz",    loopseg_set,     lpshold, NULL},
+{ "vibrato", S(VIBRATO),3,      "k", "kkkkkkkkio",      vibrato_set, vibrato, NULL    
+  },
+{ "vibr", S(VIBRATO),3,        "k",     "kki", vibr_set, vibr, NULL    },
+{ "vtablei", S(MTABLEI),   1,     "",   "iiiim", mtable_i,   NULL   },
+{ "vtablek", S(MTABLE),   3,      "",   "kkkiz", mtable_set, mtable_k,   NULL   },
+{ "vtablea", S(MTABLE),   5,      "",   "akkiy", mtable_set, NULL, mtable_a    },
+{ "vtablewi", S(MTABLEIW),  1,    "",   "iiim", mtablew_i,   NULL   },
+{ "vtablewk", S(MTABLEW),   3,    "",   "kkiz", mtablew_set, mtablew_k,   NULL   },
+{ "vtablewa", S(MTABLEW),   5,    "",   "akiy", mtablew_set, NULL, mtablew_a    },
+{ "vtabi", S(MTABI),   1,     "",   "iiiim", mtab_i,   NULL   },
+{ "vtabk", S(MTAB),   3,      "",   "kkkiz", mtab_set, mtab_k,   NULL   },
+{ "vtaba", S(MTAB),   5,      "",   "akkiy", mtab_set, NULL, mtab_a    },
+{ "vtabwi", S(MTABIW),  1,    "",   "iiim", mtabw_i,   NULL   },
+{ "vtabwk", S(MTABW),   3,    "",   "kkiz", mtabw_set, mtabw_k,   NULL   },
+{ "vtabwa", S(MTABW),   5,    "",   "akiy", mtabw_set, NULL, mtabw_a    },
+{ "urd_i", S(DURAND),  1,      "i",    "i",   ikDiscreteUserRand, NULL, NULL    },
+{ "urd_k", S(DURAND),  2,      "k",    "k",    NULL, ikDiscreteUserRand, NULL  },
+{ "urd_a", S(DURAND),  4,      "a",    "a",    NULL, NULL,  aDiscreteUserRand  },
+{ "random", 0xffff                                                      },      /*gab 
+d5*/
+{ "random_i", S(RANGERAND),     1,      "i",    "ii",   ikRangeRand, NULL, NULL    },
+{ "random_k", S(RANGERAND),     2,      "k",    "kk",   NULL, ikRangeRand, NULL },
+{ "random_a", S(RANGERAND),     4,      "a",    "kk",   NULL, NULL,  aRangeRand },
+{ "rspline",  S(RANDOM3),       7,      "s",    "xxkk", random3_set, random3, 
+random3a  },
+{ "randomi",  S(RANDOMI),       7,      "s",    "kkx",  randomi_set, krandomi, 
+randomi  },
+{ "randomh",  S(RANDOMH),       7,      "s",    "kkx",  randomh_set, krandomh, 
+randomh  },
+{ "duserrnd_i", S(DURAND),     1,      "i",    "i",   ikDiscreteUserRand, NULL, NULL  
+  },
+{ "duserrnd_k", S(DURAND),     2,      "k",    "k",    NULL, ikDiscreteUserRand, NULL 
+ },
+{ "tabw_i",S(FASTAB),  1,   "",    "iiio", fastabiw               },
+{ "tabw",S(FASTAB),  7,   "",    "xxio", fastab_set, fastabkw,   fastabw },
+{ "tab_i",S(FASTAB),  1,   "i",    "iio", fastabi               },
+{ "tab",S(FASTAB),  7,   "s",    "xio", fastab_set, fastabk,   fastab },
+{ "rspline",  S(RANDOM3),      7,      "s",    "xxkk", random3_set, random3, random3a 
+ },
+{ "jitter2", S(JITTER2),        3,      "k",    "kkkkkkk",      jitter2_set, jitter2, 
+NULL      },
+{ "jitter",  S(JITTER), 3,      "k", "kkk",     jitter_set, jitter, NULL        },
+{ "jspline", S(JITTERS),7,      "s", "xkk",     jitters_set, jitters, jittersa  },
+{ "duserrnd", 0xffff                                            },      /*gab d5*/
+{ "cuserrnd", 0xffff                                            },      /*gab d5*/
+{ "duserrnd_i", S(DURAND),      1,      "i",    "i",   ikDiscreteUserRand, NULL, NULL 
+   },
+{ "duserrnd_k", S(DURAND),      2,      "k",    "k",    NULL, ikDiscreteUserRand, 
+NULL  },
+{ "duserrnd_a", S(DURAND),      4,      "a",    "k",    NULL, NULL,  
+aDiscreteUserRand  },
+{ "cuserrnd_i", S(CURAND),      1,      "i",    "iii",  ikContinuousUserRand, NULL, 
+NULL    },
+{ "cuserrnd_k", S(CURAND),      2,      "k",    "kkk",  NULL, ikContinuousUserRand, 
+NULL        },
+{ "cuserrnd_a", S(CURAND),      4,      "a",    "kkk",  NULL, NULL,  
+aContinuousUserRand        },
+  // Need paintlib (and picture.cpp)
+  //{ "bmopen",S(BMOPEN), 1,  "iii",        "Sio",bmopen            },
+  //{ "bmoscil",S(BMOSCIL),    3,      "kkkk",    "kkkkkkki",   bmoscil_set,   
+bmoscil      },
+  //{ "bmoscili",S(BMOSCIL),    3,      "kkkk",    "kkkkkkki",   bmoscil_set,   
+bmoscili      },
+  //{ "bmscan",S(BMSCAN),    3,      "",    "kiiiiii",   bmscan_set,   bmscan      },
+  //{ "bmscani",S(BMSCAN),    3,      "",    "kiiiiii",   bmscan_set,   bmscani      
+},
+  //{ "bmtable",S(BMTABLE),    3,      "kkkk",    "kki",   bmtable_set,   bmtable     
+ },
+  //{ "bmtablei",S(BMTABLE),   3,      "kkkk",    "kki",   bmtable_set,   bmtablei    
+  },
+  //{ "rgb2hsvl",S(RGB2HSVL),    2,      "kkkk",    "kkk",   NULL,   rgb2hsvl      },
+  //{ "rgb2hsvl_i",S(RGB2HSVL),  1,      "iiii",    "iii",  rgb2hsvl,         },
 #endif /* defined(GAB_RT) */
 
 #if defined(ENABLE_OSC)
diff -uNr csound/fgens.c csound-new-merge/fgens.c
--- csound/fgens.c      Thu Apr  5 16:58:52 2001
+++ csound-new-merge/fgens.c    Tue Aug 28 02:44:48 2001
@@ -7,7 +7,7 @@
 #include "cmath.h"
 #include "ftgen.h"
 
-#define GENMAX  28
+#define GENMAX  43
 extern OPARMS  O;
 extern MYFLT curr_func_sr;
 /* New function in FILOPEN.C to look around for (text) files */
@@ -22,6 +22,7 @@
 static void   gn1314(void), gen17(void), gen19(void), gen20(void), gen21(void);
 static void   gen22(void), gen22raw(void), gen23(void),        gen24(void), 
gen16(void); /* gab-A1 */
 static void   gen25(void), gen27(void), gen28(void);
+static void   gen40(void),gen41(void),gen42(void),gen43(void);/* gab-A1 */
 
 static void   GENUL(void);
 
@@ -29,12 +30,15 @@
 static FUNC    *ftp;
 static  int    maxfnum = 0;
 static GEN     gensub[GENMAX+1] = { GENUL,
-                                    gen01, gen02, gen03, gen04, gen05,
-                                    gen06, gen07, gen08, gen09, gen10,
-                                    gen11, gen12, gen13, gen14, gen15,
-                                    gen16, gen17, GENUL, gen19, gen20,
-                                    gen21, gen22,gen23,  gen24, gen25, /* gab-A1 
(22-23-24) */
-                                    GENUL,  gen27, gen28};
+                                                                gen01, gen02, gen03, 
+gen04, gen05,
+                                                                gen06, gen07, gen08, 
+gen09, gen10,
+                                                                gen11, gen12, gen13, 
+gen14, gen15,
+                                                                gen16, gen17, GENUL, 
+gen19, gen20,
+                                                                gen21, gen22,gen23,  
+gen24, gen25, /* gab-A1 (22-23-24) */
+                                                                GENUL,  gen27, gen28, 
+GENUL,  GENUL,
+                                                                GENUL,  GENUL,  
+GENUL,  GENUL,  GENUL,
+                                                                GENUL,  GENUL,  
+GENUL,  GENUL,  gen40,
+                                                                gen41,gen42,gen43};
 static EVTBLK  *e;
 
 static double  tpdlen, tpd360 = 0.017453293;
@@ -272,6 +276,81 @@
                nvals = flenp1;                 /* for all vals up to flen+1 */
        do  *fp++ = *pp++;                      /*   copy into ftable   */
        while (--nvals);
+}
+
+
+static void gen40(void)              /*gab d5*/
+{
+       MYFLT   *fp = ftp->ftable, *fp_source, *fp_temp;
+       FUNC    *srcftp;         // srcftp -> array valori sorgente
+       int     srcno, srcpts, j,k;// ,old_k=0,old_j=0, nstps;
+       MYFLT last_value=0,lenratio;// ,frac;
+       if ((srcno = (int)e->p[5]) <= 0  // cerca la tabella sorgente
+               || srcno > MAXFNUM       
+               || (srcftp = flist[srcno]) == NULL)
+               FTERR("unknown source table number")
+                       fp_source = srcftp->ftable;
+       srcpts = srcftp->flen;
+       fp_temp = (MYFLT *) calloc(srcpts, sizeof(MYFLT));
+       for (j = 0; j < srcpts; j++) {
+               last_value += fp_source[j];
+               fp_temp[j] = last_value;
+       }
+       lenratio = (flen-1)/last_value;
+       for (j = 0; j < flen; j++) {
+               k=0;
+               while ( k++ < srcpts && fp_temp[k] * lenratio < j) ;
+               k--;
+               fp[j] = (MYFLT) k; 
+       }
+       fp[j] = fp[j-1];
+       free(fp_temp);
+}
+
+static void gen42(void) /*gab d5*/
+{
+       MYFLT   *fp = ftp->ftable, *pp = &e->p[5], inc;
+       int     nvals = nargs, j,k, width;
+       long tot_prob=0;
+       for (j=0; j < nargs; j+=3) {
+               tot_prob += (long) pp[j+2];
+       }
+       for (j=0; j< nargs; j+=3) {
+               width = (int) ((pp[j+2]/tot_prob) * flen +.5);
+               inc = (pp[j+1]-pp[j]) / (MYFLT) (width-1);
+               for ( k=0; k < width; k++) {
+                       *fp++ = pp[j]+(inc*k);
+               }
+       }
+       *fp = *(fp-1);
+}
+
+static void gen41(void)  /*gab d5*/
+{
+       MYFLT   *fp = ftp->ftable, *pp = &e->p[5];
+       int     nvals = nargs, j,k, width;
+       long tot_prob=0;
+       for (j=0; j < nargs; j+=2) {
+               tot_prob += (long) pp[j+1];
+       }
+       for (j=0; j< nargs; j+=2) {
+               width = (int) ((pp[j+1]/tot_prob) * flen +.5);
+               for ( k=0; k < width; k++) {
+                       *fp++ = pp[j];
+               }
+       }
+       *fp = pp[j-1];
+}
+
+static void gen43(void) /*gab d5*/
+{
+       int     j;
+       MYFLT    *fp;
+       fp = ftp->ftable;
+       for (j=0; j < flen; j++) 
+               fp[j] = 0.f;
+       for (j = 0; j < nargs; j++) 
+               fp[(int) e->p[j+5]] = 1.f;
 }
 
 static void gen03(void)
diff -uNr csound/rdorch.c csound-new-merge/rdorch.c
--- csound/rdorch.c     Thu Apr  5 16:58:53 2001
+++ csound-new-merge/rdorch.c   Tue Aug 28 00:30:01 2001
@@ -1069,8 +1069,18 @@
        tfound = argtyp(s);             /* else get arg type */
        if (tfound != 'c' && tfound != 'p'
                && tfound != 'S' && !lgprevdef 
-               && !(!strcmp(tp->opcod, "artrnc") || !strcmp(tp->opcod, "argt")  /* 
gab-a7 fixed */
-               || !strcmp(tp->opcod, "krtrnc")   || !strcmp(tp->opcod, "kargt"))) {  
/* gab-a7 fixed */
+                                       && !(
+                                          !strcmp(tp->opcod, "rtrnca") || 
+!strcmp(tp->opcod, "parmta")  /* gab-a7 fixed */
+                                       || !strcmp(tp->opcod, "rtrnck") || 
+!strcmp(tp->opcod, "parmtk")
+                                       || !strcmp(tp->opcod, "fin")    || 
+!strcmp(tp->opcod, "fink")
+                                       || !strcmp(tp->opcod, "fini")
+                                       || !strcmp(tp->opcod, "trigseq")|| 
+!strcmp(tp->opcod, "vtablek")
+                                       || !strcmp(tp->opcod, "vtablei") || 
+!strcmp(tp->opcod, "vtablea")
+                                       || !strcmp(tp->opcod, "vtabi") || 
+!strcmp(tp->opcod, "vtabk")
+                                       || !strcmp(tp->opcod, "vtaba")
+                                       || !(!strcmp(tp->opcod, "artrnc") || 
+!strcmp(tp->opcod, "argt")  /* gab-a7 fixed */
+                                       || !strcmp(tp->opcod, "krtrnc")   || 
+!strcmp(tp->opcod, "kargt"))
+                                       )) { /* gab-a7 fixed */
                sprintf(errmsg,
                        Str(X_914,"input arg '%s' used before defined"),s);
                synterr(errmsg);

Reply via email to