在 tintin++/src/variables.c 裡頭做如下的修改...
從第一百二十五行左右開始...
以 ftp://ftp.ntu/.../tintin++v1.5pl6.tar.gz 為準...
/******************************************************************/
void substitute_myvars(arg, result, ses)
/* ... 中略 ... */
while(*arg) {
if(*arg=='$') { /* substitute variable */
counter=0;
while (*(arg+counter)=='$')
counter++;
varlen=0;
while(isalpha(*(arg+varlen+counter)))
varlen++;
> /* Added. Line 125 */
> if (*( arg+varlen+counter )== '['
> && isdigit(*( arg+varlen+counter+1 ))) {
> varlen += 2 ;
> while ( isdigit(*( arg+varlen+counter )))
> varlen ++ ;
> varlen ++ ;
> }
> /* End. */
if (varlen>0)
strncpy(varname,arg+counter,varlen);
*(varname+varlen)='\0';
if (counter==nest+1 && !isdigit(*(arg+counter+1))) {
if((ln=searchnode_list(tempvars, varname))!= NULL) {
strcpy(result, ln->right);
result+=strlen(ln->right);
arg+=counter+varlen;
}
/******************************************************************/
加上去之後就可以使用 $var[1234] 之類的變數了...
記得數字的部份用 [] 圍起來... :D
NOTE
忘了說...
這幾行加上去之後...
'[' 會變成特殊字元...
所以原先比方 $ESC[80D 之類的 ansi code...
要改寫成 $ESC\[80D...
(最近都忘了 load 新的 ansi.f... :~ 常常被捉到... )
或者...
可以自己把 $var[1234] 的形式訂為 $var<1234>...
不過... 看起來有點不習慣就是... :D