1096c1096 < xcistuple(int slotno, int tuple, void *v, int nv, int attr) --- > xcistuple(int slotno, int tuple, int subtuple, void *v, int nv, int attr) 1102,1103c1102,1103 < uchar type, link; < int this; --- > uchar type, link, n, c; > int this, subtype; 1125c1125,1135 < if(type == tuple) { --- > > n = link; > if (link > 1 && subtuple != -1) { > if (readc(&cis, &c) != 1) > break; > subtype = c; > n--; > } else > subtype = -1; > > if(type == tuple && subtype == subtuple) { 1127c1137 < for(l=0; l for(l=0; l pcmcistuple(int slotno, int tuple, int subtuple, void *v, int nv) 1145c1155 < if((n = xcistuple(slotno, tuple, v, nv, 1)) >= 0) --- > if((n = xcistuple(slotno, tuple, subtuple, v, nv, 1)) >= 0) 1147c1157 < return xcistuple(slotno, tuple, v, nv, 0); --- > return xcistuple(slotno, tuple, subtuple, v, nv, 0); 1164c1174 < if((nv = pcmcistuple(pp->slotno, cistab[i].n, v, sizeof(v))) >= 0) { --- > if((nv = pcmcistuple(pp->slotno, cistab[i].n, -1, v, sizeof(v))) >= 0) {