Skip to content

Commit 6dea75f

Browse files
committed
Curses
1 parent 563231f commit 6dea75f

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2429,7 +2429,7 @@ from curses import A_REVERSE, KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_ENTER
24292429

24302430
def main(screen):
24312431
ch, first, selected, paths = 0, 0, 0, os.listdir()
2432-
while ch not in [curses.ascii.ESC, ord('q')]:
2432+
while ch not in [ord('q'), curses.ascii.ESC]:
24332433
height, width = screen.getmaxyx()
24342434
screen.erase()
24352435
for y, filename in enumerate(paths[first : first+height]):

index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1991,15 +1991,15 @@ <h3 id="format-2">Format</h3><div><h4 id="forstandardtypesizesandmanualalignment
19911991

19921992
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">(screen)</span>:</span>
19931993
ch, first, selected, paths = <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, os.listdir()
1994-
<span class="hljs-keyword">while</span> ch <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> [curses.ascii.ESC, ord(<span class="hljs-string">'q'</span>)]:
1994+
<span class="hljs-keyword">while</span> ch <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> [ord(<span class="hljs-string">'q'</span>), curses.ascii.ESC]:
19951995
height, width = screen.getmaxyx()
19961996
screen.erase()
19971997
<span class="hljs-keyword">for</span> y, filename <span class="hljs-keyword">in</span> enumerate(paths[first : first+height]):
19981998
color = A_REVERSE <span class="hljs-keyword">if</span> filename == paths[selected] <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>
1999-
screen.addstr(y, <span class="hljs-number">0</span>, filename[:width<span class="hljs-number">-1</span>], color)
1999+
screen.addstr(y, <span class="hljs-number">0</span>, filename[:width-<span class="hljs-number">1</span>], color)
20002000
ch = screen.getch()
20012001
selected += (ch == KEY_DOWN) - (ch == KEY_UP)
2002-
selected = max(<span class="hljs-number">0</span>, min(len(paths)<span class="hljs-number">-1</span>, selected))
2002+
selected = max(<span class="hljs-number">0</span>, min(len(paths)-<span class="hljs-number">1</span>, selected))
20032003
first += (selected &gt;= first + height) - (selected &lt; first)
20042004
<span class="hljs-keyword">if</span> ch <span class="hljs-keyword">in</span> [KEY_LEFT, KEY_RIGHT, KEY_ENTER, <span class="hljs-number">10</span>, <span class="hljs-number">13</span>]:
20052005
new_dir = <span class="hljs-string">'..'</span> <span class="hljs-keyword">if</span> ch == KEY_LEFT <span class="hljs-keyword">else</span> paths[selected]

parse.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,31 @@ const COROUTINES =
161161
'<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">\'__main__\'</span>:\n' +
162162
' curses.wrapper(main)\n';
163163

164+
const CURSES =
165+
'<span class="hljs-keyword">import</span> curses, curses.ascii, os\n' +
166+
'<span class="hljs-keyword">from</span> curses <span class="hljs-keyword">import</span> A_REVERSE, KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_ENTER\n' +
167+
'\n' +
168+
'<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">(screen)</span>:</span>\n' +
169+
' ch, first, selected, paths = <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, os.listdir()\n' +
170+
' <span class="hljs-keyword">while</span> ch <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> [ord(<span class="hljs-string">\'q\'</span>), curses.ascii.ESC]:\n' +
171+
' height, width = screen.getmaxyx()\n' +
172+
' screen.erase()\n' +
173+
' <span class="hljs-keyword">for</span> y, filename <span class="hljs-keyword">in</span> enumerate(paths[first : first+height]):\n' +
174+
' color = A_REVERSE <span class="hljs-keyword">if</span> filename == paths[selected] <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>\n' +
175+
' screen.addstr(y, <span class="hljs-number">0</span>, filename[:width-<span class="hljs-number">1</span>], color)\n' +
176+
' ch = screen.getch()\n' +
177+
' selected += (ch == KEY_DOWN) - (ch == KEY_UP)\n' +
178+
' selected = max(<span class="hljs-number">0</span>, min(len(paths)-<span class="hljs-number">1</span>, selected))\n' +
179+
' first += (selected &gt;= first + height) - (selected &lt; first)\n' +
180+
' <span class="hljs-keyword">if</span> ch <span class="hljs-keyword">in</span> [KEY_LEFT, KEY_RIGHT, KEY_ENTER, <span class="hljs-number">10</span>, <span class="hljs-number">13</span>]:\n' +
181+
' new_dir = <span class="hljs-string">\'..\'</span> <span class="hljs-keyword">if</span> ch == KEY_LEFT <span class="hljs-keyword">else</span> paths[selected]\n' +
182+
' <span class="hljs-keyword">if</span> os.path.isdir(new_dir):\n' +
183+
' os.chdir(new_dir)\n' +
184+
' first, selected, paths = <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, os.listdir()\n' +
185+
'\n' +
186+
'<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">\'__main__\'</span>:\n' +
187+
' curses.wrapper(main)\n';
188+
164189
const PROGRESS_BAR =
165190
'<span class="hljs-comment"># $ pip3 install tqdm</span>\n' +
166191
'<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> tqdm <span class="hljs-keyword">import</span> tqdm\n' +
@@ -767,6 +792,7 @@ function fixHighlights() {
767792
$(`code:contains(\'<class_name>\', <tuple_of_parents>, <dict_of_class_attributes>)`).html(TYPE);
768793
$(`code:contains(ValueError: malformed node)`).html(EVAL);
769794
$(`code:contains(import asyncio, collections, curses, curses.textpad, enum, random)`).html(COROUTINES);
795+
$(`code:contains(import curses, curses.ascii, os)`).html(CURSES);
770796
$(`code:contains(pip3 install tqdm)`).html(PROGRESS_BAR);
771797
$(`code:contains(>>> logging.basicConfig(level=)`).html(LOGGING_EXAMPLE);
772798
$(`code:contains(samples_f = (sin(i *)`).html(AUDIO);

0 commit comments

Comments
 (0)