diff options
| author | _ov4 <ov4@ov4.org> | 2026-09-01 11:38:08 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-09-01 11:38:08 +0000 |
| commit | 66e23046f3e6766064ed570d6a6a1fa53a0b9d32 (patch) | |
| tree | 07508ef8e6603481f89de554ee70f88eec6634c8 /src/util/io.cc | |
| parent | 7c103144aca5f6510cdfdeb74ec8183af0c31b1e (diff) | |
control-c
Diffstat (limited to 'src/util/io.cc')
| -rw-r--r-- | src/util/io.cc | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/util/io.cc b/src/util/io.cc index 4a094d0..152271c 100644 --- a/src/util/io.cc +++ b/src/util/io.cc @@ -5,8 +5,9 @@ using namespace std; namespace ov4 { -void atomic_print(char *s, bool ignore_wrap) +void safe_print(char *s, bool ignore_wrap) { + int errno_old = errno; if (ignore_wrap) for (int i = 0; s[i] != 0; i++) if (s[i] == '\n') @@ -15,17 +16,21 @@ void atomic_print(char *s, bool ignore_wrap) return; } write(STDOUT_FILENO, s, strlen(s)); + errno = errno_old; } -void atomic_print(int x) +void safe_print(int x) { + int errno_old = errno; char msg[LENGTH]; itoa(x, msg, DECIMAL); - atomic_print(msg); + safe_print(msg); + errno = errno_old; } void reverse(char str[], int length) { + int errno_old = errno; int start = 0; int end = length - 1; while (start < end) { @@ -35,29 +40,37 @@ void reverse(char str[], int length) end--; start++; } + errno = errno_old; } -void atomic_debug(char *s, bool ignore_wrap) +void safe_debug(char *s, bool ignore_wrap) { - if (verbose && GLOBAL_DEBUG) atomic_print(s, ignore_wrap); + int errno_old = errno; + if (verbose && GLOBAL_DEBUG) safe_print(s, ignore_wrap); + errno = errno_old; } -void atomic_debug(int x) +void safe_debug(int x) { - if (verbose && GLOBAL_DEBUG) atomic_print(x); + int errno_old = errno; + if (verbose && GLOBAL_DEBUG) safe_print(x); + errno = errno_old; } bool isnum(char *s) { + int errno_old = errno; for (int i = 0; s[i] != 0; i++) if (!isdigit(s[i])) return false; return true; + errno = errno_old; } char *itoa(int num, char* str, int base) { + int errno_old = errno; int i = 0; bool isNegative = false; @@ -93,6 +106,7 @@ char *itoa(int num, char* str, int base) // Reverse the string reverse(str, i); + errno = errno_old; return str; } |
