| 858 | */ |
| 859 | |
| 860 | static int /* 0 failure, 1 success */ |
| 861 | regtry( |
| 862 | regexp *prog, |
| 863 | const char *string ) |
| 864 | { |
| 865 | register int i; |
| 866 | register const char * * sp; |
| 867 | register const char * * ep; |
| 868 | |
| 869 | reginput = string; |
| 870 | regstartp = prog->startp; |
| 871 | regendp = prog->endp; |
| 872 | |
| 873 | sp = prog->startp; |
| 874 | ep = prog->endp; |
| 875 | for ( i = NSUBEXP; i > 0; --i ) |
| 876 | { |
| 877 | *sp++ = NULL; |
| 878 | *ep++ = NULL; |
| 879 | } |
| 880 | if ( regmatch( prog->program + 1 ) ) |
| 881 | { |
| 882 | prog->startp[ 0 ] = string; |
| 883 | prog->endp[ 0 ] = reginput; |
| 884 | return 1; |
| 885 | } |
| 886 | else |
| 887 | return 0; |
| 888 | } |
| 889 | |
| 890 | |
| 891 | /* |