MCPcopy Create free account
hub / github.com/LibertyOS-Development/kernel / handle_up

Method handle_up

src/sys/prompt.rs:426–447  ·  view source on GitHub ↗

Handle up key

(&mut self)

Source from the content-addressed store, hash-verified

424
425 // Handle up key
426 fn handle_up(&mut self)
427 {
428 self.compupdate();
429 let n = self.hist.items.len();
430 if n == 0
431 {
432 return;
433 }
434
435 let (bs, i) = match self.hist.pos
436 {
437 Some(i) => (self.hist.items[i].chars().count(), cmp::max(i, 1) - 1),
438 None => (self.ln.len(), n - 1),
439 };
440
441 let ln = &self.hist.items[i];
442 let blank = ' '.to_string().repeat((self.offset + bs) - self.cur);
443 let erase = '\x08'.to_string().repeat(bs);
444 print!("{}{}{}", blank, erase, ln);
445 self.cur = self.offset + ln.chars().count();
446 self.hist.pos = Some(i);
447 }
448
449
450 // Update history

Callers 1

csi_dispatchMethod · 0.80

Calls 2

compupdateMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected