about summary refs log tree commit diff stats
path: root/browse-slack
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-08-14 08:18:30 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-08-14 08:18:30 -0700
commitaaf9984039d901c53209b08d6853f6e5ebb3f7bf (patch)
tree8c2d6798205279cae40a8a3ac10f069f26fffbb5 /browse-slack
parentfc7eb937f371f86b8969d4a69ecd486daab7c789 (diff)
downloadmu-aaf9984039d901c53209b08d6853f6e5ebb3f7bf.tar.gz
bug: allow '/' in search
Diffstat (limited to 'browse-slack')
-rw-r--r--browse-slack/environment.mu43
1 files changed, 22 insertions, 21 deletions
diff --git a/browse-slack/environment.mu b/browse-slack/environment.mu
index 85e1a43c..ca3d827d 100644
--- a/browse-slack/environment.mu
+++ b/browse-slack/environment.mu
@@ -666,28 +666,29 @@ fn render-json-escaped-unicode-grapheme screen: (addr screen), stream: (addr str
 
 fn update-environment _env: (addr environment), key: byte, users: (addr array user), channels: (addr array channel), items: (addr item-list) {
   var env/edi: (addr environment) <- copy _env
-  # back in history
+  # first dispatch to search mode if necessary
   {
-    compare key, 0x1b/esc
-    break-if-!=
-    {
-      var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
-      compare *cursor-in-search?, 0/false
-      break-if-=
-      copy-to *cursor-in-search?, 0/false
-      return
-    }
-    previous-tab env
+    var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
+    compare *cursor-in-search?, 0/false
+    break-if-=
+    update-search env, key, users, channels, items
     return
   }
   {
     compare key, 0x2f/slash
     break-if-!=
-    # start search mode
+    # enter search mode
     var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
     copy-to *cursor-in-search?, 1/true
     return
   }
+  {
+    compare key, 0x1b/esc
+    break-if-!=
+    # back in history
+    previous-tab env
+    return
+  }
   var cursor-in-channels?/eax: (addr boolean) <- get env, cursor-in-channels?
   {
     compare key, 9/tab
@@ -696,14 +697,6 @@ fn update-environment _env: (addr environment), key: byte, users: (addr array us
     not *cursor-in-channels?
     return
   }
-  # dispatch based on where the cursor is
-  {
-    var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
-    compare *cursor-in-search?, 0/false
-    break-if-=
-    update-search env, key, users, channels, items
-    return
-  }
   {
     compare *cursor-in-channels?, 0/false
     break-if-!=
@@ -773,11 +766,19 @@ fn update-channels-nav _env: (addr environment), key: byte, users: (addr array u
 
 fn update-search _env: (addr environment), key: byte, users: (addr array user), channels: (addr array channel), items: (addr item-list) {
   var env/edi: (addr environment) <- copy _env
+  var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
+  {
+    compare key 0x1b/esc
+    break-if-!=
+    # get out of search mode
+    copy-to *cursor-in-search?, 0/false
+    return
+  }
   {
     compare key, 0xa/newline
     break-if-!=
+    # perform a search, then get out of search mode
     new-search-tab env, items
-    var cursor-in-search?/eax: (addr boolean) <- get env, cursor-in-search?
     copy-to *cursor-in-search?, 0/false
     return
   }
/blame/ranger/gui/widgets/filelist.py?h=v1.5.3&id=3de15ddd7fb0151e5f43f0b8e7d06bd76568e235'>^
ae943ecb ^

d88232a3 ^
ae943ecb ^


d88232a3 ^
ae943ecb ^




d88232a3 ^
9506fb8e ^
49ae0dd1 ^

d621586e ^
3de15ddd ^

9506fb8e ^
d621586e ^



30b25795 ^
d621586e ^




d88232a3 ^

d621586e ^




9506fb8e ^

9506fb8e ^



d621586e ^

30b25795 ^


9506fb8e ^

d88232a3 ^
9506fb8e ^


30b25795 ^


419e4aa5 ^
30b25795 ^







419e4aa5 ^
9506fb8e ^
d88232a3 ^
3de15ddd ^
5805deca ^
f027adc0 ^
871c502d ^
dd7a4f63 ^
419e4aa5 ^
f027adc0 ^
5805deca ^
f027adc0 ^


dd7a4f63 ^
9506fb8e ^
f027adc0 ^
9506fb8e ^
f027adc0 ^
9506fb8e ^
dd7a4f63 ^
8b60e8ca ^





dd7a4f63 ^

419e4aa5 ^
dd7a4f63 ^
f027adc0 ^
5805deca ^




dd7a4f63 ^
b810fe28 ^
f027adc0 ^



419e4aa5 ^
f027adc0 ^
419e4aa5 ^
f027adc0 ^
419e4aa5 ^
5805deca ^


f027adc0 ^

30b25795 ^
dd7a4f63 ^
f027adc0 ^
dd7a4f63 ^
4c05e43d ^

dd7a4f63 ^
4c05e43d ^

dd7a4f63 ^
9506fb8e ^



dd7a4f63 ^
f027adc0 ^



9506fb8e ^
dd7a4f63 ^
d88232a3 ^
65cb1a32 ^
dd7a4f63 ^









d494f019 ^


dd7a4f63 ^





db9bb0c9 ^



dd7a4f63 ^













d88232a3 ^
dd7a4f63 ^

9506fb8e ^
d494f019 ^


22449efd ^
d494f019 ^







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224