Commit Graph

1140 Commits (84fc2bc9c4d2fa35b2ca212aa159e129bf6732be)

Author SHA1 Message Date
Daniel Kolesa 84fc2bc9c4 do not rely on global locale when converting in format 2017-11-13 17:15:30 +01:00
Daniel Kolesa e5a21382af much better integer formatting (less stack space, better precision handling) 2017-11-13 02:13:42 +01:00
Daniel Kolesa baf0dd4ca6 MB_CUR_MAX is not a constant 2017-11-12 20:25:58 +01:00
Daniel Kolesa db28b66892 workaround the awful bullshit when formatting numbers under locale
Because of the C++ locale APIs and libstdc++ being worthless trash,
we need to resort to this kind of nonsense in order to avoid
gibberish when dealing with grouping and decimal separators.

Libc++ gets this right (comes up with ASCII style representations
when requesting locale facets dealing with char type) but for some
dumb reason libstdc++ comes up with representations that are
garbage even when using a UTF-8 locale, so I guess we'll deal
with it this way for the time being...

That said, all of this code is probably broken on systems that
don't use Unicode and honestly I don't care.
2017-11-12 20:14:26 +01:00
Daniel Kolesa 84572dfd01 use C locale in I/O and format by default
Should probably get rid of state in locale-aware APIs, too.
2017-11-12 19:15:43 +01:00
Daniel Kolesa f882292f2a get rid of gcc specific workarounds 2017-11-10 20:19:25 +01:00
Daniel Kolesa 1893f4b941 gcc warning fix 2017-11-10 20:11:58 +01:00
Daniel Kolesa ec9ddb2aad yield current task in single-threaded coroutine scheduler on spawn
This schedules tasks more aggressively, letting side tasks always run.
2017-11-05 22:10:22 +01:00
Daniel Kolesa 67525af4e5 gcc/libstdc++ 7.x fixes 2017-11-03 12:56:34 +01:00
Daniel Kolesa c6a854fac3 clearer readme 2017-06-19 17:09:30 +02:00
Daniel Kolesa 146da105b9 forward the writer out of get_line 2017-06-19 17:00:53 +02:00
Daniel Kolesa 2ce488002a use <> for includes everywhere 2017-06-19 16:59:36 +02:00
Daniel Kolesa 58a448b79a readme fix 2017-06-18 16:25:00 +02:00
Daniel Kolesa 3034918496 move glob matching impl into a source file 2017-06-16 18:55:08 +02:00
Daniel Kolesa 25c97d9c8f typo fix 2017-06-11 18:55:50 +02:00
Daniel Kolesa bee56e6a52 add glob example 2017-06-11 18:51:29 +02:00
Daniel Kolesa cca5952f93 fix the ** pattern not including itself's dir when used in dir position 2017-06-11 18:43:04 +02:00
Daniel Kolesa 511ea88161 proper handling of [!...] glob patterns 2017-06-11 18:17:44 +02:00
Daniel Kolesa 6b66e6ea69 document glob matching 2017-06-11 18:13:18 +02:00
Daniel Kolesa 8b2fb4a627 automatically build examples and sources using glob matching 2017-06-11 17:48:07 +02:00
Daniel Kolesa dd7f38d919 add char range glob pattern support 2017-06-11 00:02:16 +02:00
Daniel Kolesa 054f292393 avoid bad path formatting in a very ugly way 2017-06-10 21:17:58 +02:00
Daniel Kolesa 7ff454140a add api to check if filename matches glob pattern 2017-06-10 20:30:48 +02:00
Daniel Kolesa c9dafd1766 do not iterate non-directories 2017-06-10 20:26:34 +02:00
Daniel Kolesa 374194bba6 there is no need to match filename for ** 2017-06-10 20:10:56 +02:00
Daniel Kolesa eba541842c remove ordinary glob escaping (incompatible with windows, use [c]) 2017-06-10 19:18:24 +02:00
Daniel Kolesa a2f88815bf implement ? wildcard 2017-06-10 19:03:58 +02:00
Daniel Kolesa 009f36ba9f more glob fixes, also properly treat ** separately 2017-06-10 18:57:58 +02:00
Daniel Kolesa 5396f6b2a5 glob matching fixes 2017-06-10 18:21:11 +02:00
Daniel Kolesa 75b70e7227 initial basic glob matching support in filesystem.hh 2017-06-10 17:47:26 +02:00
Daniel Kolesa a414ec7544 better prepare for later wide-char argparse support 2017-06-05 18:57:40 +02:00
Daniel Kolesa 53f8a4e866 alias the argument value range 2017-06-04 15:34:46 +02:00
Daniel Kolesa f81432f666 make sure build cfg is correct 2017-06-03 15:56:42 +02:00
Daniel Kolesa 50692c3e29 remove the temp_cstr stuff 2017-06-02 18:33:56 +02:00
Daniel Kolesa 3df3ece0d2 add comparisons against standard strings 2017-06-01 21:50:31 +02:00
Daniel Kolesa a539d6c945 loosen up string range comparisons 2017-06-01 21:44:18 +02:00
Daniel Kolesa 7b05e3c648 mark argparse global funcs inline 2017-05-31 19:12:12 +02:00
Daniel Kolesa 460c288571 simplify arg_error 2017-05-29 17:53:59 +02:00
Daniel Kolesa f8508c112c don't need the condition anymore 2017-05-28 16:32:09 +02:00
Daniel Kolesa f605ea59bf gotta read partial read though 2017-05-28 16:31:26 +02:00
Daniel Kolesa 8dad7ac73a pipe read failure means subprocess exited with non-zero 2017-05-28 16:30:07 +02:00
Daniel Kolesa 75c1c24a1c format_option cleanup 2017-05-28 16:20:34 +02:00
Daniel Kolesa e3acfa3005 move metavar fallback stuff into arg_optional 2017-05-28 16:16:13 +02:00
Daniel Kolesa e37a8e325e longest_name() on arg_optional 2017-05-28 16:12:05 +02:00
Daniel Kolesa fc490be718 remove get_ prefixes in argparse 2017-05-28 15:32:12 +02:00
Daniel Kolesa ded19b4234 support for required optional arguments + fix potential leak on error 2017-05-27 00:27:28 +02:00
Daniel Kolesa 73421a5902 add argparse examples 2017-05-26 22:00:51 +02:00
Daniel Kolesa 661b7b94cc reset optionals/positionals on new parse 2017-05-26 21:29:03 +02:00
Daniel Kolesa ad5429369b documentation for argparser 2017-05-26 21:20:53 +02:00
Daniel Kolesa 13736045d7 support for custom prefix characters 2017-05-26 18:10:04 +02:00