Skip to content

Commit 2403dc8

Browse files
fix: handle different pager
1 parent 5274006 commit 2403dc8

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

wik/info.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import sys
44
import textwrap
55
import pydoc
6+
import re
7+
import shutil
68
import hashlib
79

810
from urllib.parse import quote
@@ -78,6 +80,16 @@ def _should_page(text):
7880
def _emit(lines, force_page=False):
7981
text = "\n".join(lines).rstrip() + "\n"
8082
if _use_tty() and (force_page or _should_page(text)):
83+
pager = os.environ.get("PAGER", "")
84+
if not pager:
85+
if shutil.which("less"):
86+
pager = "less -R"
87+
os.environ["PAGER"] = pager
88+
else:
89+
pager = "more"
90+
os.environ["PAGER"] = pager
91+
if "less" not in pager:
92+
text = re.sub(r"\x1B[@-_][0-?]*[ -/]*[@-~]", "", text)
8193
pydoc.pager(text)
8294
return
8395
print(text, end="")

0 commit comments

Comments
 (0)