diff options
| author | crunchy <crunchy> | 2002-09-14 11:19:30 +0000 | 
|---|---|---|
| committer | crunchy <crunchy> | 2002-09-14 11:19:30 +0000 | 
| commit | b30aa2ef1b42c6e65b55accbdca6448f0ee2dddc (patch) | |
| tree | 970ef4988a9ba3de7f9df74c2d9a3ab7acc42f14 /mpiosh/mpiosh.c | |
| parent | b994b5499a4fd50675bc3c772a0c19fa2d4290ac (diff) | |
| download | mpiosh-b30aa2ef1b42c6e65b55accbdca6448f0ee2dddc.tar.gz mpiosh-b30aa2ef1b42c6e65b55accbdca6448f0ee2dddc.tar.bz2 mpiosh-b30aa2ef1b42c6e65b55accbdca6448f0ee2dddc.zip  | |
shell regular expression mapping
Diffstat (limited to 'mpiosh/mpiosh.c')
| -rw-r--r-- | mpiosh/mpiosh.c | 59 | 
1 files changed, 55 insertions, 4 deletions
diff --git a/mpiosh/mpiosh.c b/mpiosh/mpiosh.c index 7f8c359..75a01b4 100644 --- a/mpiosh/mpiosh.c +++ b/mpiosh/mpiosh.c @@ -2,7 +2,7 @@  /*    * - * $Id: mpiosh.c,v 1.6 2002/09/14 09:55:31 crunchy Exp $ + * $Id: mpiosh.c,v 1.7 2002/09/14 11:19:30 crunchy Exp $   *   * Author: Andreas Büsching  <crunchy@tzi.de>   * @@ -183,7 +183,7 @@ mpiosh_init(void)  }  char ** -mpiosh_command_split(char *line) +mpiosh_command_split_line(char *line)  {    char **cmds, *cmd;    int count = 1; @@ -240,6 +240,54 @@ mpiosh_command_find(char *line)    return NULL;  } +void +mpiosh_command_regex_fix(char *argv[]) +{ +  char **walk; +  char *new, *new_pos, *help; +  char find[] = { '.', '*' }; +  char *replace[] = { "\\.", ".*" }; +  int count, i; +   +  for (i = 0; i < sizeof find; i++) {     +    walk = argv; +    while (*walk) { +      help = *walk, count = 0; +      while (*help != '\0') +	if (*help++ == find[i]) count++; +      new_pos = new = malloc(strlen(*walk) + 1 + count); +      help = *walk; +      while (*help != '\0') { +	if (*help == find[i]) { +	  *new_pos++ = replace[i][0]; +	  *new_pos++ = replace[i][1]; +	  help++; +	} else +	  *new_pos++ = *help++; +      } +      *new_pos = '\0'; +      free(*walk); +      *walk = new; +      walk++; +    } +  } + +  walk = argv; +  while (*walk) { +    help = *walk; +    new = malloc(strlen(help) + 3); +    *walk = new; +     +    *new++ = '^'; +    strcpy(new, help); +    *(new + strlen(help)) = '$'; +    *(new + strlen(help) + 1) = '\0'; + +    free(help); +    walk++; +  }   +} +  char **  mpiosh_command_get_args(char *line)  { @@ -347,7 +395,10 @@ mpiosh_signal_handler(int signal)    mpiosh_cancel = 1;  } -void mpiosh_noredisplay(void) {} +void +mpiosh_noredisplay(void) +{ +}  int  main(int argc, char *argv[]) { @@ -400,7 +451,7 @@ main(int argc, char *argv[]) {        continue;      } -    cmds = mpiosh_command_split(line); +    cmds = mpiosh_command_split_line(line);      if (cmds[0][0] == '\0') {        free(cmds);  | 
