Changeset 17091 for gsdl/trunk/common-src
- Timestamp:
- 2008-08-29T14:01:12+12:00 (16 years ago)
- Location:
- gsdl/trunk/common-src/src/gdbmedit
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/common-src/src/gdbmedit/gdbmget/gdbmget.cpp
r15932 r17091 57 57 print_usage (char *program_name) 58 58 { 59 cerr << "usage: " << program_name << " <database_path> <key>\n\n"; 59 cerr << "usage: " << program_name << " <database_path> <key>" << endl; 60 cerr << endl; 60 61 } 61 62 62 63 63 int 64 main (int argc, char *argv[]) 64 int main (int argc, char *argv[]) 65 65 { 66 66 int block_size = 0; … … 72 72 { 73 73 print_usage (argv[0]); 74 exit ( 0);74 exit (-1); 75 75 } 76 76 … … 84 84 { 85 85 cerr << "couldn't create " << argv[1] << "\n"; 86 exit ( 0);86 exit (-1); 87 87 } 88 88 -
gsdl/trunk/common-src/src/gdbmedit/gdbmset/gdbmset.cpp
r15230 r17091 57 57 print_usage (char *program_name) 58 58 { 59 cerr << "usage: " << program_name << " <database_path> <key> [<value>]\n"; 60 cerr << "\t- if no value is given then the lexicon indicated by the key is removed\n\n"; 59 cerr << "usage: " << program_name << " <database_path> <key> [<value>] [append]" << endl; 60 cerr << "\t- if no value is given then the lexicon indicated by the key is removed" << endl; 61 cerr << "\t- if a value is given followed by 'append' then the value is " << endl; 62 cerr << "\t added to the existing entry rather than overwriting it" << endl; 63 cerr << endl; 61 64 } 62 65 63 66 64 int 65 main (int argc, char *argv[]) 67 int main (int argc, char *argv[]) 66 68 { 67 69 int block_size = 0; 68 70 GDBM_FILE dbf; 69 datum key , content;71 datum key; 70 72 71 73 // sanity check 72 if (argc < 3) 73 { 74 if ((argc < 3) || (argc>5)) { 74 75 print_usage (argv[0]); 75 exit ( 0);76 76 exit (-1); 77 } 77 78 78 79 // open the database … … 85 86 { 86 87 cerr << "couldn't open database connection to " << argv[1] << "\n"; 87 exit ( 0);88 exit (-1); 88 89 } 89 90 90 91 key.dsize = strlen(argv[2]); 91 92 key.dptr = argv[2]; 92 if(argc == 4) 93 { 93 94 if(argc == 5) { 95 96 if (strcmp(argv[4],"append")==0) { 97 datum orig_content,concat_content; 98 99 //cerr << "Appending [" << argv[2] << "] to '" << argv[3] << "' (length " << strlen(argv[3]) << ")\n"; 100 // get old value, then top up 101 102 orig_content = gdbm_fetch (dbf, key); 103 104 // append orig_content with argv[3] 105 concat_content.dsize = orig_content.dsize + strlen(argv[3]); 106 char* concat_data = new char[concat_content.dsize +1];// make room for \0 at end 107 if (orig_content.dsize>0) { 108 strncpy(concat_data,orig_content.dptr,orig_content.dsize); 109 strcpy(&concat_data[orig_content.dsize],argv[3]); // ensures \0 at end 110 } 111 else { 112 // first time key has been used 113 strcpy(concat_data,argv[3]); // ensures \0 at end 114 } 115 116 concat_content.dptr = concat_data; 117 if(gdbm_store(dbf, key, concat_content, GDBM_REPLACE) != 0) 118 { 119 cerr << "failed to set [" << argv[2] << "] to '" << concat_data << "'\n"; 120 } 121 delete [] concat_data; 122 } 123 else { 124 print_usage (argv[0]); 125 gdbm_close (dbf); 126 exit(-1); 127 } 128 } 129 else if (argc == 4) { 130 datum content; 131 94 132 //cerr << "Setting [" << argv[2] << "] to '" << argv[3] << "' (length " << strlen(argv[3]) << ")\n"; 95 133 content.dsize = strlen(argv[3]); … … 108 146 } 109 147 gdbm_close (dbf); 148 110 149 return 0; 111 150 }
Note:
See TracChangeset
for help on using the changeset viewer.