Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > ParamHelper
comparison ReadParamsFromFile.c @ 11:4d981e9848b1
change brch tag filename
| author | Me@portablequad |
|---|---|
| date | Mon, 13 Feb 2012 13:03:30 -0800 |
| parents | 1bf28dddc45f |
| children |
comparison
equal
deleted
inserted
replaced
| 5:c2d795c0bec9 | 6:4ce78a8ba54a |
|---|---|
| 6 | 6 |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 #include <stdlib.h> | 8 #include <stdlib.h> |
| 9 #include <string.h> | 9 #include <string.h> |
| 10 | 10 |
| 11 #include "Param.h" | 11 #include "ParamBag.h" |
| 12 | 12 |
| 13 ParamStruc * makeParamFromStrs( char * type, char *value ); | 13 ParamStruc * makeParamFromStrs( char * type, char *value ); |
| 14 | 14 |
| 15 #define _GNU_SOURCE | 15 #define _GNU_SOURCE |
| 16 | 16 |
| 17 /*Copied from gnu's win32 lib | 17 /*Copied from gnu's win32 lib |
| 18 */ | 18 */ |
| 19 ssize_t | 19 ssize_t |
| 20 getline( char **lineptr, size_t *n, FILE *stream ) | 20 getline( char **lineptr, size_t *n, FILE *stream ) |
| 21 { | 21 { |
| 22 if ( lineptr == NULL || n == NULL) return -1; | 22 if ( lineptr == NULL || n == NULL) return -1; |
| 23 if (*lineptr == NULL || *n == 0) | 23 if (*lineptr == NULL || *n == 0) |
| 24 { *n = 500; //max length of line in a config file | 24 { *n = 500; //max length of line in a config file |
| 25 *lineptr = (char *) VMS__malloc( *n ); | 25 *lineptr = (char *) VMS_WL__malloc( *n ); |
| 26 if (*lineptr == NULL) return -1; | 26 if (*lineptr == NULL) return -1; |
| 27 } | 27 } |
| 28 if( fgets( *lineptr, *n, stream ) ) | 28 if( fgets( *lineptr, *n, stream ) ) |
| 29 return *n; | 29 return *n; |
| 30 else | 30 else |
| 31 return -1; | 31 return -1; |
| 32 } | 32 } |
| 33 | 33 |
| 34 void | 34 void |
| 35 readParamFileIntoBag( char *paramFileName, ParamBag * bag ) | 35 readParamFileIntoBag( char *paramFileName, ParamBag * bag ) |
| 36 { | 36 { |
| 37 size_t lineSz = 0; | 37 size_t lineSz = 0; |
| 38 FILE* paramFile; | 38 FILE* paramFile; |
| 39 char* line = NULL; | 39 char* line = NULL; |
| 41 char* paramType;// = malloc( 12 ); //"double" is the longest type | 41 char* paramType;// = malloc( 12 ); //"double" is the longest type |
| 42 char* paramName;// = malloc( 500 ); //max of 500 chars in name | 42 char* paramName;// = malloc( 500 ); //max of 500 chars in name |
| 43 char* paramValue;// = malloc( 500 ); //max of 500 chars in value | 43 char* paramValue;// = malloc( 500 ); //max of 500 chars in value |
| 44 | 44 |
| 45 lineSz = 500; //max length of line in a config file | 45 lineSz = 500; //max length of line in a config file |
| 46 line = (char *) VMS__malloc( lineSz ); | 46 line = (char *) VMS_WL__malloc( lineSz ); |
| 47 if( line == NULL ) | 47 if( line == NULL ) |
| 48 { printf( "\nIn readParamFileIntoBag: no mem for line\n" ); | 48 { printf( "\nIn readParamFileIntoBag: no mem for line\n" ); |
| 49 return; | 49 return; |
| 50 } | 50 } |
| 51 | 51 |
| 104 paramStruc = makeParamFromStrs( paramType, paramValue ); | 104 paramStruc = makeParamFromStrs( paramType, paramValue ); |
| 105 addParamToBag( paramName, paramStruc, bag ); | 105 addParamToBag( paramName, paramStruc, bag ); |
| 106 } | 106 } |
| 107 } | 107 } |
| 108 } | 108 } |
| 109 VMS__free( line ); | 109 VMS_WL__free( line ); |
| 110 } | 110 } |
| 111 | 111 |
