Mercurial > public > mercurial-scm > hg-stable
annotate mercurial/scmposix.py @ 49599:48e38b179106 stable
demandimport: fix a crash in LazyFinder.__delattr__
I was tinkering with `with hgdemandimport.deactivated()` wrapped around loading
the keyring module, and got spew that seemed to be confirmed by PyCharm. But I
can't believe we haven't seen this before (and phabricator uses the same
pattern):
** Unknown exception encountered with possibly-broken third-party extension "mercurial_keyring" 1.4.3 (keyring 23.11.0, backend unknown)
** which supports versions unknown of Mercurial.
** Please disable "mercurial_keyring" and try your action again.
** If that fixes the bug please report it to https://foss.heptapod.net/mercurial/mercurial_keyring/issues
** Python 3.9.15 (main, Oct 13 2022, 04:28:25) [GCC 7.5.0]
** Mercurial Distributed SCM (version 6.3.1)
** Extensions loaded: absorb, attorc 20220315, blackbox, eol, extdiff, fastannotate, lfs, mercurial_keyring 1.4.3 (keyring 23.11.0, backend unknown), phabblocker 20220315, phabricator 20220315, purge, rebase, schemes, share, show, strip, uncommit
Traceback (most recent call last):
File "/usr/local/bin/hg", line 59, in <module>
dispatch.run()
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 143, in run
status = dispatch(req)
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 232, in dispatch
status = _rundispatch(req)
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 276, in _rundispatch
ret = _runcatch(req) or 0
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 451, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 461, in _callcatch
return scmutil.callcatch(ui, func)
File "/usr/local/lib/python3.9/site-packages/mercurial/scmutil.py", line 153, in callcatch
return func()
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 441, in _runcatchfunc
return _dispatch(req)
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 1265, in _dispatch
return runcommand(
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 899, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 1277, in _runcommand
return cmdfunc()
File "/usr/local/lib/python3.9/site-packages/mercurial/dispatch.py", line 1263, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/usr/local/lib/python3.9/site-packages/mercurial/util.py", line 1880, in check
return func(*args, **kwargs)
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 962, in cmd_keyring_check
user, pwd, source, final_url = handler.get_credentials(
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 497, in get_credentials
keyring_pwd = password_store.get_http_password(keyring_url, actual_user)
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 287, in get_http_password
return self._read_password_from_keyring(
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 335, in _read_password_from_keyring
keyring = import_keyring()
>> `with hgdemandimport.deactivated()` inserted here
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 120, in import_keyring
return _import_keyring()
File "/root/mercurial_keyring/mercurial_keyring/mercurial_keyring.py", line 133, in _import_keyring
mod, was_imported_now = meu.direct_import_ext(
File "/usr/lib/python3.9/site-packages/mercurial_extension_utils.py", line 1381, in direct_import_ext
__import__(module_name)
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 46, in exec_module
self.loader.exec_module(module)
File "/usr/lib/python3.9/site-packages/keyring/__init__.py", line 1, in <module>
from .core import (
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 46, in exec_module
self.loader.exec_module(module)
File "/usr/lib/python3.9/site-packages/keyring/core.py", line 11, in <module>
from . import backend, credentials
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 46, in exec_module
self.loader.exec_module(module)
File "/usr/lib/python3.9/site-packages/keyring/backend.py", line 13, in <module>
from .py312compat import metadata
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 46, in exec_module
self.loader.exec_module(module)
File "/usr/lib/python3.9/site-packages/keyring/py312compat.py", line 10, in <module>
import importlib_metadata as metadata # type: ignore
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 46, in exec_module
self.loader.exec_module(module)
File "/usr/lib/python3.9/site-packages/importlib_metadata/__init__.py", line 715, in <module>
class MetadataPathFinder(NullFinder, DistributionFinder):
File "/usr/lib/python3.9/site-packages/importlib_metadata/_compat.py", line 24, in install
disable_stdlib_finder()
File "/usr/lib/python3.9/site-packages/importlib_metadata/_compat.py", line 43, in disable_stdlib_finder
del finder.find_distributions
File "/usr/local/lib/python3.9/site-packages/hgdemandimport/demandimportpy3.py", line 88, in __delattr__
return delattr(object.__getattribute__(self, "_finder"))
TypeError: delattr expected 2 arguments, got 1
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 08 Dec 2022 21:45:47 -0500 |
parents | 6000f5b25c9b |
children | a87338fe8cfa |
rev | line source |
---|---|
30324
80708959161a
scmutil: narrow ImportError handling in termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30323
diff
changeset
|
1 import array |
30322
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
2 import errno |
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
3 import fcntl |
27483
39087ee88835
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
22583
diff
changeset
|
4 import os |
39087ee88835
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
22583
diff
changeset
|
5 import sys |
39087ee88835
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
22583
diff
changeset
|
6 |
43089
c59eb1560c44
py3: manually import getattr where it is needed
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43077
diff
changeset
|
7 from .pycompat import getattr |
27483
39087ee88835
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
22583
diff
changeset
|
8 from . import ( |
30290
c90a05124fae
py3: make scmposix.userrcpath() return bytes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27483
diff
changeset
|
9 encoding, |
30476
5b0baa9f3362
py3: use pycompat.sysargv in scmposix.systemrcpath()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30327
diff
changeset
|
10 pycompat, |
32248
d74b0cff94a9
osutil: proxy through util (and platform) modules (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32078
diff
changeset
|
11 util, |
27483
39087ee88835
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
22583
diff
changeset
|
12 ) |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
13 |
32078
bf5e13e38390
pager: use less as a fallback on Unix
Yuya Nishihara <yuya@tcha.org>
parents:
31348
diff
changeset
|
14 # BSD 'more' escapes ANSI color sequences by default. This can be disabled by |
bf5e13e38390
pager: use less as a fallback on Unix
Yuya Nishihara <yuya@tcha.org>
parents:
31348
diff
changeset
|
15 # $MORE variable, but there's no compatible option with Linux 'more'. Given |
bf5e13e38390
pager: use less as a fallback on Unix
Yuya Nishihara <yuya@tcha.org>
parents:
31348
diff
changeset
|
16 # OS X is widely used and most modern Unix systems would have 'less', setting |
bf5e13e38390
pager: use less as a fallback on Unix
Yuya Nishihara <yuya@tcha.org>
parents:
31348
diff
changeset
|
17 # 'less' as the default seems reasonable. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
18 fallbackpager = b'less' |
32078
bf5e13e38390
pager: use less as a fallback on Unix
Yuya Nishihara <yuya@tcha.org>
parents:
31348
diff
changeset
|
19 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
20 |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
21 def _rcfiles(path): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
22 rcs = [os.path.join(path, b'hgrc')] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
23 rcdir = os.path.join(path, b'hgrc.d') |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
24 try: |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
25 rcs.extend( |
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
26 [ |
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
27 os.path.join(rcdir, f) |
45843
9ac96b9fa76e
config: read system hgrc in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents:
43554
diff
changeset
|
28 for f, kind in sorted(util.listdir(rcdir)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
29 if f.endswith(b".rc") |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
30 ] |
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
31 ) |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
32 except OSError: |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
33 pass |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
34 return rcs |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
35 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
36 |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
37 def systemrcpath(): |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
38 path = [] |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
39 if pycompat.sysplatform == b'plan9': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
40 root = b'lib/mercurial' |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
41 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
42 root = b'etc/mercurial' |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
43 # old mod_python does not set sys.argv |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
44 if len(getattr(sys, 'argv', [])) > 0: |
30476
5b0baa9f3362
py3: use pycompat.sysargv in scmposix.systemrcpath()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30327
diff
changeset
|
45 p = os.path.dirname(os.path.dirname(pycompat.sysargv[0])) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
46 if p != b'/': |
22583
23c995ed466b
config: don't read the same config file twice
Mads Kiilerich <madski@unity3d.com>
parents:
18690
diff
changeset
|
47 path.extend(_rcfiles(os.path.join(p, root))) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
48 path.extend(_rcfiles(b'/' + root)) |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
49 return path |
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
50 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
51 |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
52 def userrcpath(): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
53 if pycompat.sysplatform == b'plan9': |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
54 return [encoding.environ[b'home'] + b'/lib/hgrc'] |
34647 | 55 elif pycompat.isdarwin: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
56 return [os.path.expanduser(b'~/.hgrc')] |
18690
4c6f7f0dadab
scmutil: split platform-specific bits into their own modules
Kevin Bullock <kbullock@ringworld.org>
parents:
diff
changeset
|
57 else: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
58 confighome = encoding.environ.get(b'XDG_CONFIG_HOME') |
30961
354020079723
hg: allow usage of XDG_CONFIG_HOME/hg/hgrc
David Demelier <demelier.david@gmail.com>
parents:
30646
diff
changeset
|
59 if confighome is None or not os.path.isabs(confighome): |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
60 confighome = os.path.expanduser(b'~/.config') |
30961
354020079723
hg: allow usage of XDG_CONFIG_HOME/hg/hgrc
David Demelier <demelier.david@gmail.com>
parents:
30646
diff
changeset
|
61 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
62 return [ |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
63 os.path.expanduser(b'~/.hgrc'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
64 os.path.join(confighome, b'hg', b'hgrc'), |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
65 ] |
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
66 |
30322
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
67 |
30327
365812902904
scmutil: extend termwidth() to return terminal height, renamed to termsize()
Yuya Nishihara <yuya@tcha.org>
parents:
30325
diff
changeset
|
68 def termsize(ui): |
30322
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
69 try: |
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
70 import termios |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
34647
diff
changeset
|
71 |
30324
80708959161a
scmutil: narrow ImportError handling in termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30323
diff
changeset
|
72 TIOCGWINSZ = termios.TIOCGWINSZ # unavailable on IRIX (issue3449) |
80708959161a
scmutil: narrow ImportError handling in termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30323
diff
changeset
|
73 except (AttributeError, ImportError): |
30327
365812902904
scmutil: extend termwidth() to return terminal height, renamed to termsize()
Yuya Nishihara <yuya@tcha.org>
parents:
30325
diff
changeset
|
74 return 80, 24 |
30325
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
75 |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
76 for dev in (ui.ferr, ui.fout, ui.fin): |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
77 try: |
30322
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
78 try: |
30325
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
79 fd = dev.fileno() |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
80 except AttributeError: |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
81 continue |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
82 if not os.isatty(fd): |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
83 continue |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
84 arri = fcntl.ioctl(fd, TIOCGWINSZ, b'\0' * 8) |
43554
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43528
diff
changeset
|
85 height, width = array.array('h', arri)[:2] |
30327
365812902904
scmutil: extend termwidth() to return terminal height, renamed to termsize()
Yuya Nishihara <yuya@tcha.org>
parents:
30325
diff
changeset
|
86 if width > 0 and height > 0: |
365812902904
scmutil: extend termwidth() to return terminal height, renamed to termsize()
Yuya Nishihara <yuya@tcha.org>
parents:
30325
diff
changeset
|
87 return width, height |
30325
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
88 except ValueError: |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
89 pass |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
90 except IOError as e: |
43528
667f56d73ceb
scmposix: another suppression on IOError subscripting
Augie Fackler <augie@google.com>
parents:
43089
diff
changeset
|
91 if e[0] == errno.EINVAL: # pytype: disable=unsupported-operands |
30322
4b1af1c867fa
scmutil: move util.termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30290
diff
changeset
|
92 pass |
30325
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
93 else: |
1ad1c5017043
scmutil: remove superfluous indent from termwidth()
Yuya Nishihara <yuya@tcha.org>
parents:
30324
diff
changeset
|
94 raise |
30327
365812902904
scmutil: extend termwidth() to return terminal height, renamed to termsize()
Yuya Nishihara <yuya@tcha.org>
parents:
30325
diff
changeset
|
95 return 80, 24 |