mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
handle out of range value for COLUMNS / LINES (#21968)
* handle out of range value for `COLUMNS` / `LINES` Querying terminal size may fail with a `ValueError` if size is too big. Return highest possible value instead. Note that `ValueError` is also reported on underflow (negative size) but that is out of POSIX specs. * `parseSaturatedNatural`
This commit is contained in:
@@ -305,7 +305,7 @@ else:
|
||||
|
||||
var w: int
|
||||
var s = getEnv("COLUMNS") # Try standard env var
|
||||
if len(s) > 0 and parseInt(s, w) > 0 and w > 0:
|
||||
if len(s) > 0 and parseSaturatedNatural(s, w) > 0 and w > 0:
|
||||
return w
|
||||
w = terminalWidthIoctl([0, 1, 2]) # Try standard file descriptors
|
||||
if w > 0: return w
|
||||
@@ -339,7 +339,7 @@ else:
|
||||
|
||||
var h: int
|
||||
var s = getEnv("LINES") # Try standard env var
|
||||
if len(s) > 0 and parseInt(s, h) > 0 and h > 0:
|
||||
if len(s) > 0 and parseSaturatedNatural(s, h) > 0 and h > 0:
|
||||
return h
|
||||
h = terminalHeightIoctl([0, 1, 2]) # Try standard file descriptors
|
||||
if h > 0: return h
|
||||
|
||||
Reference in New Issue
Block a user