Esempio n. 1
0
static void hash_put( const char* n, uint32_t i )
{
  uint32_t id = (uint32_t)vt_hash((uint8_t*)n, strlen(n), 0) % HASH_MAX;

  HashNode_file* add = (HashNode_file*)malloc(sizeof(HashNode_file));
  add->fname = vt_strdup(n);
  add->fid = i;
  add->next = htab_mpifile[id];
  htab_mpifile[id] = add; 
}
Esempio n. 2
0
char* vt_installdirs_expand(const char* input)
{
  char* ret;

  char* start;
  char* end;

  if( input == NULL ) return NULL;

  /* 'input' cannot be modified, so copy it to a new allocated string 'ret' */
  ret = vt_strdup( input );

  /* expand all variables from directory path 'ret' */

  while( ret != NULL && (start = strchr( ret, '$' )) != NULL )
  {
    char* insert;
    char* tmp = ret;

    /* check for variables which can be expanded */

    if( strncmp( start, "${prefix}", 9 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_PREFIX );
    else if( strncmp( start, "${exec_prefix}", 14 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_EXEC_PREFIX );
    else if( strncmp( start, "${bindir}", 9 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_BINDIR );
    else if( strncmp( start, "${includedir}", 13 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_INCLUDEDIR );
    else if( strncmp( start, "${libdir}", 9 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_LIBDIR );
    else if( strncmp( start, "${datadir}", 10 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_DATADIR );
    else if( strncmp( start, "${datarootdir}", 14 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_DATAROOTDIR );
    else if( strncmp( start, "${docdir}", 9 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_DOCDIR );
    else if( strncmp( start, "${sysconfdir}", 13 ) == 0 )
      insert = vt_installdirs_get( VT_INSTALLDIR_SYSCONFDIR );
    else
      break;

    /* compose output directory path */

    end = strchr( start, '}' );
    *start = '\0';
    vt_asprintf( &ret, "%s%s%s", tmp, insert, end + 1 );

    free( tmp );
  }

  return ret;
}