summary refs log tree commit diff stats
path: root/doc
Commit message (Expand)AuthorAgeFilesLines
* commands: Add `quitall!`, Change behavior of `quit!`nfnty2017-02-093-14/+19
* config.commands: quit, quitall: Don't exit if loader has workSamuel Walladge2017-02-083-8/+23
* core.main: Catch the right tracebacknfnty2017-02-064-6/+6
* Add `$XDG_DATA_HOME` supportnfnty2017-02-052-4/+24
* rifle: Add new option flag `-c`Samuel Walladge2017-02-052-6/+15
* Add setting `wrap_scroll`Samuel Walladge2017-02-053-2/+11
* commands: rename_append: Add flagsnfnty2017-02-012-60/+63
* Add command for jumping to first non-directory/non-fileThe Flying Rapist2017-02-013-2/+20
* "title bar" -> "titlebar"nfnty2017-01-292-2/+2
* Add setting `hostname_in_titlebar`nfnty2017-01-293-2/+9
* config.commands: `setlocal`: Properly parse path with spacesnfnty2017-01-243-2/+8
* linting: pylint: Enable `broad-except`, Improve loggingnfnty2017-01-211-2/+2
* Python 3 division: Import `division` from `__future__`nfnty2017-01-213-3/+3
* linting: Python 2 compat: Import from `__future__`nfnty2017-01-173-0/+6
* linting: pylint and flake8nfnty2017-01-173-23/+23
* ranger in danger because of some stranger v1.8.1hut2017-01-082-2/+2
* git commit -m 'git commit -m git\ commit\ -m\ '\''Happy\ Holidays\!'\' v1.8.0hut2016-12-243-17/+13
* Fix the urxvt preview documentationWojciech Siewierski2016-10-082-6/+6
* Implement the urxvt-based image previewsWojciech Siewierski2016-10-052-10/+48
* manpage: rebuildhut2016-09-032-27/+20
* manpage: Document how to escape macroshut2016-09-032-2/+6
* fix documentation typonightsense2016-08-151-1/+1
* Merge branch 'document-scout-flag-r' of https://github.com/nevimov/rangerhut2016-07-051-0/+1
|\
| * Document -r flag for scout commandnevimov2016-06-271-0/+1
* | Fix misspellingsstepshal2016-06-261-1/+1
|/
* Use 'except Exception:' instead of 'except:'stepshal2016-06-221-2/+2
* removed screenshot. It's in the repository `ranger-assets` nowhut2016-06-211-0/+0
* Merge branch 'W931' of https://github.com/stepshal/rangerhut2016-06-181-1/+0
|\
| * Remove blank lines at end of filestepshal2016-06-161-1/+0
* | Add two blank lines where is expectedstepshal2016-06-163-0/+3
|/
* doc/tools/print_colors.py: remove trailing newlinestepshal2016-06-071-1/+0
* merge setting "relative_line_numbers" into "line_numbers"hut2016-05-242-14/+15
* Merge branch 'linum' of https://github.com/mrogalski/rangerhut2016-05-242-1/+17
|\
| * Add man description.Mark Rogalski2016-05-162-1/+17
* | Manpage: added documentation about commands in pluginshut2016-05-242-3/+11
|/
* doc/ranger.pod: fix #544 in man page source file toohut2016-05-131-1/+1
* `draw_progress_bar_in_statusbar' does not existmrogalski2016-05-111-2/+2
* doc/ranger.1: document :source commandhut2016-04-152-1/+20
* rebuilt man pagehut2016-04-061-0/+5
* allow toggling options with `:set <option>!`hut2016-04-032-1/+11
* doc/ranger.1: Added documentation for {yd}{art} key bindingshut2016-03-252-5/+11
* updating docs with 'clear_filters_on_dir_change' flagVitaly Belman2016-03-251-0/+4
* Add %confdir macroCiro Santilli2016-03-211-0/+2
* rebuild man pageshut2016-02-242-6/+14
* doc/ranger.1: add example for setintaghut2016-02-241-0/+5
* added ranger.desktop file, fixes #346hut2016-01-251-0/+9
* ranger.pod: describe that :setlocal path is a regexhut2016-01-012-1/+9
* Added :echo command, disabled :notify commandhut2015-11-142-1/+10
* fixed line widths in commit a090d85 (#400)hut2015-11-141-2/+2
* Added %p macro for full paths of selected files.The Flying Rapist2015-10-181-2/+3
eme color: int background-color: int } fn initialize-screen screen: (addr screen), width: int, height: int { var screen-addr/esi: (addr screen) <- copy screen var tmp/eax: int <- copy 0 var dest/edi: (addr int) <- copy 0 # screen->width = width dest <- get screen-addr, width tmp <- copy width copy-to *dest, tmp # screen->height = height dest <- get screen-addr, height tmp <- copy height copy-to *dest, tmp # screen->data = new screen-cell[width*height] { var data-addr/edi: (addr handle array screen-cell) <- get screen-addr, data tmp <- multiply width populate data-addr, tmp } # screen->cursor-x = 0 dest <- get screen-addr, cursor-x copy-to *dest, 0 # screen->cursor-y = 0 dest <- get screen-addr, cursor-y copy-to *dest, 0 } # in graphemes fn screen-size screen: (addr screen) -> _/eax: int, _/ecx: int { var width/eax: int <- copy 0 var height/ecx: int <- copy 0 compare screen, 0 { break-if-!= return 0x80/128, 0x30/48 } # fake screen var screen-addr/esi: (addr screen) <- copy screen var tmp/edx: (addr int) <- get screen-addr, width width <- copy *tmp tmp <- get screen-addr, height height <- copy *tmp return width, height } # testable screen primitive fn draw-grapheme screen: (addr screen), g: grapheme, x: int, y: int, color: int, background-color: int { { compare screen, 0 break-if-!= draw-grapheme-on-real-screen g, x, y, color, background-color return } # fake screen var screen-addr/esi: (addr screen) <- copy screen var idx/ecx: int <- screen-cell-index screen-addr, x, y var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data var data/eax: (addr array screen-cell) <- lookup *data-ah var offset/ecx: (offset screen-cell) <- compute-offset data, idx var dest-cell/ecx: (addr screen-cell) <- index data, offset var dest-grapheme/eax: (addr grapheme) <- get dest-cell, data var g2/edx: grapheme <- copy g copy-to *dest-grapheme, g2 var dest-color/eax: (addr int) <- get dest-cell, color var src-color/edx: int <- copy color copy-to *dest-color, src-color dest-color <- get dest-cell, background-color src-color <- copy background-color copy-to *dest-color, src-color } # we can't really render non-ASCII yet, but when we do we'll be ready fn draw-code-point screen: (addr screen), c: code-point, x: int, y: int, color: int, background-color: int { var g/eax: grapheme <- copy c draw-grapheme screen, g, x, y, color, background-color } # not really needed for a real screen, though it shouldn't do any harm fn screen-cell-index screen-on-stack: (addr screen), x: int, y: int -> _/ecx: int { var screen/esi: (addr screen) <- copy screen-on-stack # only one bounds check isn't automatically handled { var xmax/eax: (addr int) <- get screen, width var xcurr/ecx: int <- copy x compare xcurr, *xmax break-if-< abort "tried to print out of screen bounds" } var width-addr/eax: (addr int) <- get screen, width var result/ecx: int <- copy y result <- multiply *width-addr result <- add x return result } fn cursor-position screen: (addr screen) -> _/eax: int, _/ecx: int { { compare screen, 0 break-if-!= var x/eax: int <- copy 0 var y/ecx: int <- copy 0 x, y <- cursor-position-on-real-screen return x, y } # fake screen var screen-addr/esi: (addr screen) <- copy screen var cursor-x-addr/eax: (addr int) <- get screen-addr, cursor-x var cursor-y-addr/ecx: (addr int) <- get screen-addr, cursor-y return *cursor-x-addr, *cursor-y-addr } fn set-cursor-position screen: (addr screen), x: int, y: int { { compare screen, 0 break-if-!= set-cursor-position-on-real-screen x, y return } # fake screen var screen-addr/esi: (addr screen) <- copy screen # ignore x < 0 { compare x, 0 break-if->= return } # ignore x >= width { var width-addr/eax: (addr int) <- get screen-addr, width var width/eax: int <- copy *width-addr compare x, width break-if-<= return } # ignore y < 0 { compare y, 0 break-if->= return } # ignore y >= height { var height-addr/eax: (addr int) <- get screen-addr, height var height/eax: int <- copy *height-addr compare y, height break-if-< return } # screen->cursor-x = x var dest/edi: (addr int) <- get screen-addr, cursor-x var src/eax: int <- copy x copy-to *dest, src # screen->cursor-y = y dest <- get screen-addr, cursor-y src <- copy y copy-to *dest, src } fn show-cursor screen: (addr screen), g: grapheme { { compare screen, 0 break-if-!= show-cursor-on-real-screen g return } # fake screen var cursor-x/eax: int <- copy 0 var cursor-y/ecx: int <- copy 0 cursor-x, cursor-y <- cursor-position screen draw-grapheme screen, g, cursor-x, cursor-y, 0/fg, 7/bg } fn clear-screen screen: (addr screen) { { compare screen, 0 break-if-!= clear-real-screen return } # fake screen set-cursor-position screen, 0, 0 var screen-addr/esi: (addr screen) <- copy screen var y/eax: int <- copy 0 var height/ecx: (addr int) <- get screen-addr, height { compare y, *height break-if->= var x/edx: int <- copy 0 var width/ebx: (addr int) <- get screen-addr, width { compare x, *width break-if->= draw-code-point screen, 0x20/space, x, y, 0/fg=black, 0/bg=black x <- increment loop } y <- increment loop } set-cursor-position screen, 0, 0 } # there's no grapheme that guarantees to cover every pixel, so we'll bump down # to pixels for a real screen fn clear-real-screen { var y/eax: int <- copy 0 { compare y, 0x300/screen-height=768 break-if->= var x/edx: int <- copy 0 { compare x, 0x400/screen-width=1024 break-if->= pixel-on-real-screen x, y, 0/color=black x <- increment loop } y <- increment loop } } fn screen-grapheme-at screen-on-stack: (addr screen), x: int, y: int -> _/eax: grapheme { var screen-addr/esi: (addr screen) <- copy screen-on-stack var idx/ecx: int <- screen-cell-index screen-addr, x, y var result/eax: grapheme <- screen-grapheme-at-idx screen-addr, idx return result } fn screen-grapheme-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: grapheme { var screen-addr/esi: (addr screen) <- copy screen-on-stack var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data var data/eax: (addr array screen-cell) <- lookup *data-ah var idx/ecx: int <- copy idx-on-stack var offset/ecx: (offset screen-cell) <- compute-offset data, idx var cell/eax: (addr screen-cell) <- index data, offset var src/eax: (addr grapheme) <- get cell, data return *src } fn screen-color-at screen-on-stack: (addr screen), x: int, y: int -> _/eax: int { var screen-addr/esi: (addr screen) <- copy screen-on-stack var idx/ecx: int <- screen-cell-index screen-addr, x, y var result/eax: int <- screen-color-at-idx screen-addr, idx return result } fn screen-color-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: int { var screen-addr/esi: (addr screen) <- copy screen-on-stack var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data var data/eax: (addr array screen-cell) <- lookup *data-ah var idx/ecx: int <- copy idx-on-stack var offset/ecx: (offset screen-cell) <- compute-offset data, idx var cell/eax: (addr screen-cell) <- index data, offset var src/eax: (addr int) <- get cell, color var result/eax: int <- copy *src return result } fn screen-background-color-at screen-on-stack: (addr screen), x: int, y: int -> _/eax: int { var screen-addr/esi: (addr screen) <- copy screen-on-stack var idx/ecx: int <- screen-cell-index screen-addr, x, y var result/eax: int <- screen-background-color-at-idx screen-addr, idx return result } fn screen-background-color-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: int { var screen-addr/esi: (addr screen) <- copy screen-on-stack var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data var data/eax: (addr array screen-cell) <- lookup *data-ah var idx/ecx: int <- copy idx-on-stack var offset/ecx: (offset screen-cell) <- compute-offset data, idx var cell/eax: (addr screen-cell) <- index data, offset var src/eax: (addr int) <- get cell, background-color var result/eax: int <- copy *src return result }