コード例 #1
0
ファイル: util.c プロジェクト: bminor/bash
int
rl_alphabetic (int c)
{
  if (ALPHABETIC (c))
    return (1);

  return (_rl_allow_pathname_alphabetic_chars &&
	    strchr (pathname_alphabetic_chars, c) != NULL);
}
コード例 #2
0
ファイル: rna.c プロジェクト: cjpatton/misc
int match( const char *rna, const rna_t *mol, int t, int j ) 
/* Determine whether (t,j) is a valid base pair. */
{
  char a = rna[t], b = rna[j]; 
  const cell_t *right = &mol->opt[t+1][j-1]; 

  /* no sharp-turn condition */
  int r = right->score == 0 || 
    (right->a - t == 1 && j - right->b == 1) ||
    (right->a - t > LOOP && j - right->b > LOOP);

  /* pair condition */
  if (NUCLEOTIDE(a) && NUCLEOTIDE(b))
    return r && (
     (a == 'A' && b == 'U') ||
     (a == 'U' && b == 'A') ||
     (a == 'G' && b == 'C') ||
     (a == 'C' && b == 'G')); 

  /* If not nucleotide, but alphabetic, match. Otherwise, don't match. */
  else
    return r && ALPHABETIC(a) && ALPHABETIC(b);
}
コード例 #3
0
ファイル: files.cpp プロジェクト: cjpatton/salamander
int parse_options( param_t &options, int argc, const char **argv ) 
/* Parse command line options and return a status, informing the up stream 
 * if the parameters weren't inputted correctly. */ 
{
  options.shrink_factor = options.low = options.high = options.erode = options.dilate = -1; 
  options.prefix[0] = '\0';

  for (int i = 1; i < argc; i++) 
  {
  
    /* binary threshold */
    if (strcmp(argv[i], "-t") == 0 && (argc - i) > 2) { 
      if (!NUMERIC(argv[i+1][0]) || !NUMERIC(argv[i+2][0])) 
        return 0; 
      options.low = atoi(argv[++i]); 
      options.high = atoi(argv[++i]); 
      if (options.low < 0 || options.low > options.high || options.high > 255)
        return 0; 
    } 
    
    /* binary morpholoy */ 
    else if (strcmp(argv[i], "-m") == 0 && (argc - i) > 2) { 
      if (!NUMERIC(argv[i+1][0]) || !NUMERIC(argv[i+2][0])) 
        return 0; 
      options.erode = atoi(argv[++i]); 
      options.dilate = atoi(argv[++i]); 
      if (options.erode < 0 || options.dilate < 0)
        return 0; 
      if (options.low == -1) {
        options.low = 40; 
        options.high = 60;
      }
    }
    
    /* output file prefix */ 
    else if (strcmp(argv[i], "-f") == 0 && (argc - i) > 1) { 
      i++; 
      for (int j = 0; j < strlen(argv[i]); j++) {
        if (!ALPHABETIC(argv[i][j])) 
          return 0;
      }
      strcpy(options.prefix, argv[i]); 
    }
    
    /* shrink factor */ 
    else if (strcmp(argv[i], "-s") == 0 && (argc - i) > 1) { 
      options.shrink_factor = atoi(argv[++i]);
      if (options.shrink_factor < 1)
        return 0; 
    }
    else 
      return 0; 
    
  }
  
  if (options.shrink_factor < 0) 
    options.shrink_factor = 1; 

  if (options.prefix[0] == '\0')
    strcpy(options.prefix, "test"); 

  return 1; 

} // parse_options()