OLD | NEW |
1 /////////////////////////////////////////////////////////////////////////////// | 1 /////////////////////////////////////////////////////////////////////////////// |
2 // | 2 // |
3 /// \file options.c | 3 /// \file options.c |
4 /// \brief Parser for filter-specific options | 4 /// \brief Parser for filter-specific options |
5 // | 5 // |
6 // Author: Lasse Collin | 6 // Author: Lasse Collin |
7 // | 7 // |
8 // This file has been put into the public domain. | 8 // This file has been put into the public domain. |
9 // You can do whatever you want with this file. | 9 // You can do whatever you want with this file. |
10 // | 10 // |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 // Delta // | 143 // Delta // |
144 /////////// | 144 /////////// |
145 | 145 |
146 enum { | 146 enum { |
147 OPT_DIST, | 147 OPT_DIST, |
148 }; | 148 }; |
149 | 149 |
150 | 150 |
151 static void | 151 static void |
152 set_delta(void *options, uint32_t key, uint64_t value, | 152 set_delta(void *options, uint32_t key, uint64_t value, |
153 » » const char *valuestr lzma_attribute((unused))) | 153 » » const char *valuestr lzma_attribute((__unused__))) |
154 { | 154 { |
155 lzma_options_delta *opt = options; | 155 lzma_options_delta *opt = options; |
156 switch (key) { | 156 switch (key) { |
157 case OPT_DIST: | 157 case OPT_DIST: |
158 opt->dist = value; | 158 opt->dist = value; |
159 break; | 159 break; |
160 } | 160 } |
161 } | 161 } |
162 | 162 |
163 | 163 |
(...skipping 23 matching lines...) Expand all Loading... |
187 // BCJ // | 187 // BCJ // |
188 ///////// | 188 ///////// |
189 | 189 |
190 enum { | 190 enum { |
191 OPT_START_OFFSET, | 191 OPT_START_OFFSET, |
192 }; | 192 }; |
193 | 193 |
194 | 194 |
195 static void | 195 static void |
196 set_bcj(void *options, uint32_t key, uint64_t value, | 196 set_bcj(void *options, uint32_t key, uint64_t value, |
197 » » const char *valuestr lzma_attribute((unused))) | 197 » » const char *valuestr lzma_attribute((__unused__))) |
198 { | 198 { |
199 lzma_options_bcj *opt = options; | 199 lzma_options_bcj *opt = options; |
200 switch (key) { | 200 switch (key) { |
201 case OPT_START_OFFSET: | 201 case OPT_START_OFFSET: |
202 opt->start_offset = value; | 202 opt->start_offset = value; |
203 break; | 203 break; |
204 } | 204 } |
205 } | 205 } |
206 | 206 |
207 | 207 |
(...skipping 26 matching lines...) Expand all Loading... |
234 OPT_LC, | 234 OPT_LC, |
235 OPT_LP, | 235 OPT_LP, |
236 OPT_PB, | 236 OPT_PB, |
237 OPT_MODE, | 237 OPT_MODE, |
238 OPT_NICE, | 238 OPT_NICE, |
239 OPT_MF, | 239 OPT_MF, |
240 OPT_DEPTH, | 240 OPT_DEPTH, |
241 }; | 241 }; |
242 | 242 |
243 | 243 |
244 static void lzma_attribute((noreturn)) | 244 static void lzma_attribute((__noreturn__)) |
245 error_lzma_preset(const char *valuestr) | 245 error_lzma_preset(const char *valuestr) |
246 { | 246 { |
247 message_fatal(_("Unsupported LZMA1/LZMA2 preset: %s"), valuestr); | 247 message_fatal(_("Unsupported LZMA1/LZMA2 preset: %s"), valuestr); |
248 } | 248 } |
249 | 249 |
250 | 250 |
251 static void | 251 static void |
252 set_lzma(void *options, uint32_t key, uint64_t value, const char *valuestr) | 252 set_lzma(void *options, uint32_t key, uint64_t value, const char *valuestr) |
253 { | 253 { |
254 lzma_options_lzma *opt = options; | 254 lzma_options_lzma *opt = options; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 { "lp", NULL, LZMA_LCLP_MIN, LZMA_LCLP_MAX }, | 339 { "lp", NULL, LZMA_LCLP_MIN, LZMA_LCLP_MAX }, |
340 { "pb", NULL, LZMA_PB_MIN, LZMA_PB_MAX }, | 340 { "pb", NULL, LZMA_PB_MIN, LZMA_PB_MAX }, |
341 { "mode", modes, 0, 0 }, | 341 { "mode", modes, 0, 0 }, |
342 { "nice", NULL, 2, 273 }, | 342 { "nice", NULL, 2, 273 }, |
343 { "mf", mfs, 0, 0 }, | 343 { "mf", mfs, 0, 0 }, |
344 { "depth", NULL, 0, UINT32_MAX }, | 344 { "depth", NULL, 0, UINT32_MAX }, |
345 { NULL, NULL, 0, 0 } | 345 { NULL, NULL, 0, 0 } |
346 }; | 346 }; |
347 | 347 |
348 lzma_options_lzma *options = xmalloc(sizeof(lzma_options_lzma)); | 348 lzma_options_lzma *options = xmalloc(sizeof(lzma_options_lzma)); |
349 » *options = (lzma_options_lzma){ | 349 » if (lzma_lzma_preset(options, LZMA_PRESET_DEFAULT)) |
350 » » .dict_size = LZMA_DICT_SIZE_DEFAULT, | 350 » » message_bug(); |
351 » » .preset_dict = NULL, | |
352 » » .preset_dict_size = 0, | |
353 » » .lc = LZMA_LC_DEFAULT, | |
354 » » .lp = LZMA_LP_DEFAULT, | |
355 » » .pb = LZMA_PB_DEFAULT, | |
356 » » .mode = LZMA_MODE_NORMAL, | |
357 » » .nice_len = 64, | |
358 » » .mf = LZMA_MF_BT4, | |
359 » » .depth = 0, | |
360 » }; | |
361 | 351 |
362 parse_options(str, opts, &set_lzma, options); | 352 parse_options(str, opts, &set_lzma, options); |
363 | 353 |
364 if (options->lc + options->lp > LZMA_LCLP_MAX) | 354 if (options->lc + options->lp > LZMA_LCLP_MAX) |
365 » » message_fatal(_("The sum of lc and lp must be at " | 355 » » message_fatal(_("The sum of lc and lp must not exceed 4")); |
366 » » » » "maximum of 4")); | |
367 | 356 |
368 const uint32_t nice_len_min = options->mf & 0x0F; | 357 const uint32_t nice_len_min = options->mf & 0x0F; |
369 if (options->nice_len < nice_len_min) | 358 if (options->nice_len < nice_len_min) |
370 message_fatal(_("The selected match finder requires at " | 359 message_fatal(_("The selected match finder requires at " |
371 "least nice=%" PRIu32), nice_len_min); | 360 "least nice=%" PRIu32), nice_len_min); |
372 | 361 |
373 return options; | 362 return options; |
374 } | 363 } |
OLD | NEW |