Lines Matching refs:last

92 typedef struct { char * first; char * last; } stack_entry;
93 #define pushLeft {stack[stacktop].first=ffirst;stack[stacktop++].last=last;}
94 #define pushRight {stack[stacktop].first=first;stack[stacktop++].last=llast;}
95 #define doLeft {first=ffirst;llast=last;continue;}
96 #define doRight {ffirst=first;last=llast;continue;}
99 last=llast=stack[stacktop].last;\
115 * 3. We choose a pivot by looking at the first, last
169 { size_t l=last-ffirst,r=llast-first; \
181 if ((size_t)(last-first)>PIVOT_THRESHOLD*sz) mid=pivot_big(first,mid,last,sz,compare);\
184 if (compare(mid,last)>0) { \
185 swapper(mid,last); \
190 if (compare(mid,last)>0) swapper(first,last)\
193 if (compare(mid,last)>0) swapper(mid,last);\
196 first+=sz; last-=sz; \
208 while (compare(pivot,last)<0) last-=sz; \
209 if (first<last) { \
210 swapper(first,last); swapped=1; \
211 first+=sz; last-=sz; } \
212 else if (first==last) { first+=sz; last-=sz; break; }\
213 } while (first<=last); \
224 last=first + (nmemb>limit ? limit : nmemb-1)*sz;\
225 while (last!=base) { \
226 if (compare(first,last)>0) first=last; \
227 last-=sz; } \
232 last=((char*)base)+nmemb*size; \
233 for (first=((char*)base)+size;first!=last;first+=size) { \
264 static char * pivot_big(char *first, char *mid, char *last, size_t size,
266 size_t d=(((last-first)/size)>>3)*size;
284 { char *a=last-2*d, *b=last-d, *c=last;
307 char *first,*last;
312 first=(char*)base; last=first+(nmemb-1)*size;
314 if ((size_t)(last-first)>trunc) {
315 char *ffirst=first, *llast=last;
318 { char * mid=first+size*((last-first)/size >> 1);
338 char *first,*last;
343 first=(char*)base; last=first+(nmemb-1)*size;
345 if ((size_t)(last-first)>trunc) {
346 char *ffirst=first,*llast=last;
349 { char * mid=first+size*((last-first)/size >> 1);
369 char *first,*last;
373 first=(char*)base; last=first+(nmemb-1)*WORD_BYTES;
375 if (last-first>TRUNC_words) {
376 char *ffirst=first, *llast=last;
381 (last-(char*)base)/WORD_BYTES);
384 { char * mid=first+WORD_BYTES*((last-first) / (2*WORD_BYTES));
399 last=((char*)base)+nmemb*WORD_BYTES;
400 for (first=((char*)base)+WORD_BYTES;first!=last;first+=WORD_BYTES) {