Changeset 14070 for trunk/Ohana/src/opihi/cmd.data
- Timestamp:
- Jul 8, 2007, 1:01:39 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/book_commands.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/book_commands.c
r14068 r14070 83 83 int book_npages (int argc, char **argv) { 84 84 85 int N;85 int i, N, Npages; 86 86 Book *book; 87 87 char *varName; 88 char *Key, *Value, *value; 88 89 89 90 varName = NULL; … … 93 94 remove_argument (N, &argc, argv); 94 95 } 95 96 if (argc != 2) {97 gprint (GP_ERR, "USAGE: book npages (book)\n");98 FREE (varName);99 return FALSE;100 }101 102 book = FindBook (argv[1]);103 if (book == NULL) {104 gprint (GP_ERR, "book %s not found\n", argv[1]);105 FREE (varName);106 return FALSE;107 }108 109 if (varName) {110 set_int_variable (varName, book[0].Npages);111 } else {112 gprint (GP_ERR, "%d pages\n", book[0].Npages);113 }114 FREE (varName);115 return TRUE;116 }117 118 int book_getbook (int argc, char **argv) {119 120 int where, N;121 char *varName;122 Book *book;123 124 varName = NULL;125 if ((N = get_argument (argc, argv, "-var"))) {126 remove_argument (N, &argc, argv);127 varName = strcreate (argv[N]);128 remove_argument (N, &argc, argv);129 }130 131 if (argc != 2) {132 gprint (GP_ERR, "USAGE: book getbook (where) [-var var]\n");133 FREE (varName);134 return FALSE;135 }136 137 where = atoi (argv[1]);138 book = GetBook (where);139 if (book == NULL) {140 gprint (GP_ERR, "book %s not found\n", argv[1]);141 FREE (varName);142 return FALSE;143 }144 145 if (varName) {146 set_str_variable (varName, book[0].name);147 } else {148 gprint (GP_ERR, "%s\n", book[0].name);149 }150 FREE (varName);151 return TRUE;152 }153 154 int book_newpage (int argc, char **argv) {155 156 Book *book;157 158 if (argc != 3) {159 gprint (GP_ERR, "USAGE: book newpage (book) (page)\n");160 return FALSE;161 }162 163 book = FindBook (argv[1]);164 if (book == NULL) {165 gprint (GP_ERR, "book %s not found\n", argv[1]);166 return FALSE;167 }168 169 CreatePage (book, argv[2]);170 return TRUE;171 }172 173 int book_delpage (int argc, char **argv) {174 175 int i, N;176 Page *page;177 Book *book;178 char *Key, *Value, *value;179 96 180 97 Key = NULL; … … 185 102 remove_argument (N, &argc, argv); 186 103 Value = strcreate (argv[N]); 104 remove_argument (N, &argc, argv); 105 } 106 107 if (argc != 2) { 108 gprint (GP_ERR, "USAGE: book npages (book) [-var result] [-key name value]\n"); 109 gprint (GP_ERR, " reports the number of pages (optionally limited to those matching the key)\n"); 110 FREE (varName); 111 return FALSE; 112 } 113 114 book = FindBook (argv[1]); 115 if (book == NULL) { 116 gprint (GP_ERR, "book %s not found\n", argv[1]); 117 FREE (varName); 118 return FALSE; 119 } 120 121 Npages = book[0].Npages; 122 if (Key) { 123 /* count only matching key */ 124 Npages = 0; 125 for (i = 0; i < book[0].Npages; i++) { 126 value = BookGetWord (book[0].pages[i], Key); 127 if (value == NULL) continue; 128 if (!strcmp(value, Value)) Npages ++; 129 } 130 } 131 132 if (varName) { 133 set_int_variable (varName, Npages); 134 } else { 135 gprint (GP_ERR, "%d pages\n", Npages); 136 } 137 FREE (Key); 138 FREE (Value); 139 FREE (varName); 140 return TRUE; 141 } 142 143 int book_getbook (int argc, char **argv) { 144 145 int where, N; 146 char *varName; 147 Book *book; 148 149 varName = NULL; 150 if ((N = get_argument (argc, argv, "-var"))) { 151 remove_argument (N, &argc, argv); 152 varName = strcreate (argv[N]); 153 remove_argument (N, &argc, argv); 154 } 155 156 if (argc != 2) { 157 gprint (GP_ERR, "USAGE: book getbook (where) [-var var]\n"); 158 FREE (varName); 159 return FALSE; 160 } 161 162 where = atoi (argv[1]); 163 book = GetBook (where); 164 if (book == NULL) { 165 gprint (GP_ERR, "book %s not found\n", argv[1]); 166 FREE (varName); 167 return FALSE; 168 } 169 170 if (varName) { 171 set_str_variable (varName, book[0].name); 172 } else { 173 gprint (GP_ERR, "%s\n", book[0].name); 174 } 175 FREE (varName); 176 return TRUE; 177 } 178 179 int book_newpage (int argc, char **argv) { 180 181 Book *book; 182 183 if (argc != 3) { 184 gprint (GP_ERR, "USAGE: book newpage (book) (page)\n"); 185 return FALSE; 186 } 187 188 book = FindBook (argv[1]); 189 if (book == NULL) { 190 gprint (GP_ERR, "book %s not found\n", argv[1]); 191 return FALSE; 192 } 193 194 CreatePage (book, argv[2]); 195 return TRUE; 196 } 197 198 int book_delpage (int argc, char **argv) { 199 200 int i, N; 201 Page *page; 202 Book *book; 203 char *Key, *Value, *value; 204 205 Key = NULL; 206 Value = NULL; 207 if ((N = get_argument (argc, argv, "-key"))) { 208 remove_argument (N, &argc, argv); 209 Key = strcreate (argv[N]); 210 remove_argument (N, &argc, argv); 211 Value = strcreate (argv[N]); 212 remove_argument (N, &argc, argv); 187 213 } 188 214
Note:
See TracChangeset
for help on using the changeset viewer.
