head 1.2; access; symbols last-version-before-change-to-ossp-style:1.1.1.1 VAR_0_0_0:1.1.1.1 VENDOR:1.1.1; locks; strict; comment @ * @; 1.2 date 2001.11.13.12.08.32; author simons; state dead; branches; next 1.1; 1.1 date 2001.11.09.17.01.37; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2001.11.09.17.01.37; author rse; state Exp; branches; next ; desc @@ 1.2 log @- Moved all routines into a single source file var.c. - Renamed varexp.h to var.h. - Removed odin-based build system. - Moved test cases into var_test.c. - Adapted build system. @ text @#include "../internal.h" int env_lookup(void* context, const char* varname, size_t name_len, const char** data, size_t* data_len, size_t* buffer_size) { char tmp[256]; if (name_len > sizeof(tmp)-1) { printf("Callback can't expand variable names longer than %d characters.\n", sizeof(tmp-1)); exit(1); } memcpy(tmp, varname, name_len); tmp[name_len] = '\0'; *data = getenv(tmp); if (*data == NULL) return 0; *data_len = strlen(*data); *buffer_size = 0; return 1; } int main(int argc, char** argv) { const char* input = "${HOME:s/$EMPTY/test/}"; char* tmp; size_t tmp_len; var_rc_t rc; if (setenv("HOME", "/home/regression-tests", 1) != 0 || setenv("EMPTY", "", 1) != 0) { printf("Failed to set the environment: %s.\n", strerror(errno)); return 1; } rc = var_expand(input, strlen(input), &tmp, &tmp_len, &env_lookup, NULL, NULL, 0); if (rc != VAR_EMPTY_SEARCH_STRING) { printf("var_expand() should have failed with VAR_EMPTY_SEARCH_STRING but returned %d.\n", rc); return 1; } return 0; } @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @import first cut of OSSP var @ text @@