|
|
1.1 ! root 1: ! 2: /* ! 3: lenfnm( scptr ) returns the length of the filename in the ! 4: passed scblk. the filename may take on a number of forms: ! 5: ! 6: 'filename' 'filename options' ' options' ! 7: ! 8: '!*commandstring' ! 9: ! 10: '!*commandstring*' ! 11: ! 12: '!*command string* options' ! 13: */ ! 14: ! 15: #include "spitblks.h" ! 16: ! 17: int lenfnm( scptr ) ! 18: ! 19: struct scblk *scptr; ! 20: ! 21: { ! 22: int cnt = 0, ! 23: len; ! 24: char *cp, delim; ! 25: ! 26: len = scptr -> len; ! 27: if ( len == 0 ) ! 28: return 0; ! 29: ! 30: cp = scptr -> str; ! 31: ! 32: if ( *cp == '!' ) { ! 33: if ( len < 3 ) ! 34: return -1; ! 35: delim = *(cp + ++cnt); ! 36: if ( *(cp + ++cnt) == delim ) ! 37: return -1; ! 38: while ( cnt < len ) ! 39: if ( *(cp + cnt++) == delim ) ! 40: break; ! 41: } else { ! 42: if ( *cp == ' ' ) ! 43: return 0; ! 44: while ( cnt < len ) ! 45: if ( *(cp + cnt++) == ' ' ) ! 46: break; ! 47: if ( cp[cnt - 1] == ' ' ) ! 48: --cnt; ! 49: } ! 50: return cnt; ! 51: } ! 52:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.