about summary refs log tree commit diff stats
path: root/subx/051test.subx
blob: 1e3968bf50d32bc0d538a9a19530a6c575f643df (plain) (blame)
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
== code

# instruction                     effective address                                                   operand     displacement    immediate
# op          subop               mod             rm32          base        index         scale       r32
# 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes

# main:  (manual test if this is the last file loaded)
  # check-ints-equal(34, 34) == 1
  68/push  34/imm32
  68/push  34/imm32
  e8/call  check-ints-equal/disp32
  81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # add to ESP
  # exit(0)
  bb/copy-to-EBX  0/imm32
  b8/copy-to-EAX  1/imm32
  cd/syscall  0x80/imm8

# print msg to stderr if a != b, otherwise print "."
check-ints-equal:  # (a : int, b : int, msg : (address array byte)) -> boolean
  # prolog
  55/push-EBP
  89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
  # save registers
  51/push-ECX
  53/push-EBX
  # load first 2 args into EAX and EBX
  8b/copy                         1/mod/*+disp8   4/rm32/sib    5/base/EBP  4/index/none  .           0/r32/EAX   0x8/disp8       .                 # copy *(EBP+8) to EAX
  8b/copy                         1/mod/*+disp8   4/rm32/sib    5/base/EBP  4/index/none  .           3/r32/EBX   0xc/disp8       .                 # copy *(EBP+12) to EBX
  # if EAX == b/EBX
  39/compare                      3/mod/direct    0/rm32/EAX    .           .             .           3/r32/EBX   .               .                 # compare EAX and EBX
  75/jump-if-unequal  $check-ints-equal:else/disp8
    # print('.')
      # push args
  68/push  "."/imm32
      # call
  e8/call  write-stderr/disp32
      # discard arg
  81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               4/imm32           # add to ESP
    # return
  eb/jump  $check-ints-equal:end/disp8
  # else:
$check-ints-equal:else:
  # copy third arg (msg) into ECX
  8b/copy                         1/mod/*+disp8   4/rm32/sib    5/base/EBP  4/index/none  .           1/r32/ECX   0x10/disp8       .                # copy *(EBP+16) to ECX
    # print(ECX)
      # push args
  51/push-ECX
      # call
  e8/call  write-stderr/disp32
      # discard arg
  81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               4/imm32           # add to ESP
    # print newline
      # push args
  68/push  Newline/imm32
      # call
  e8/call  write-stderr/disp32
      # discard arg
  81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               4/imm32           # add to ESP
    # increment Num-test-failures
  ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32            .             .           .           Num-test-failures/disp32          # increment *Num-test-failures
$check-ints-equal:end:
  # restore registers
  5b/pop-to-EBX
  59/pop-to-ECX
  # end
  89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
  5d/pop-to-EBP
  c3/return

== data

Newline:
  # size
  01 00 00 00
  # data
  0a/newline

Num-test-failures:
  00 00 00 00

# vim:nowrap:textwidth=0
ut@lavabit.com> 2010-12-10 00:17:26 +0100 updated README' href='/akspecs/ranger/commit/README?h=v1.9.0b3&id=9e89f023907589291fa984e5caf099a8dc34733f'>9e89f023 ^
36e4e71e ^
20ab9343 ^

20ab9343 ^





4ea0f69a ^

240394a4 ^
7dc8fef8 ^
36e4e71e ^

4a383291 ^
78a7d762 ^
e952d6cb ^
78a7d762 ^
03ed2a43 ^
4ea0f69a ^

7838675f ^

bc54f757 ^
6ff9bb6f ^
03ed2a43 ^
7838675f ^

2c8cb95f ^
03ed2a43 ^



7838675f ^
03ed2a43 ^
2c8cb95f ^
03ed2a43 ^

ae99c2c9 ^
03ed2a43 ^




240394a4 ^



240394a4 ^
03ed2a43 ^
240394a4 ^

03ed2a43 ^


240394a4 ^

03ed2a43 ^


2c8cb95f ^
03ed2a43 ^
240394a4 ^

e5fb3d74 ^
240394a4 ^

03ed2a43 ^

7dc8fef8 ^


03ed2a43 ^


7b33b517 ^
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
              
              
 
                                                                                                             
 
                                                                     
                                                                              
                                                                            
                                            
 
                                                                                                       
 
                                                                             






                                                                                   
                                                                           
                                                          
 
                                                                             
               

 

     
                                 
                                                   

                                                            
                                                      
                                                 
 
 

            





                                                              

        
                                                  
                      

                                                       
                                 
                              
                                                                       
                                                         
                                

 

            
                                                      
                                        
                             

         
 



                                                                     
 
                                                       
 

                                                             
                                                           




                                                                       



          
                                                                   
                                                                                 

                           


                 

                           


                                                                  
 
                                                                                 

                        
 

               

                                                                                         


                                                                           


                                                                               
              
ranger 1.9.0b3
==============

[![Build Status](https://travis-ci.org/ranger/ranger.svg?branch=master)](https://travis-ci.org/ranger/ranger)

ranger is a console file manager with VI key bindings.  It provides a
minimalistic and nice curses interface with a view on the directory hierarchy.
It ships with `rifle`, a file launcher that is good at automatically finding
out which program to use for what file type.

![screenshot](https://raw.githubusercontent.com/ranger/ranger-assets/master/screenshots/screenshot.png)

This file describes ranger and how to get it to run.  For instructions on the
usage, please read the man page.  See `HACKING.md` for development specific
information.

For configuration, check the files in `ranger/config/` or copy the
default config to `~/.config/ranger` with `ranger --copy-config`.

The `examples/` directory contains several scripts and plugins that demonstrate how
ranger can be extended or combined with other programs.  These files can be
found in the git repository or in `/usr/share/doc/ranger`.

A note to packagers: Versions meant for packaging are listed in the changelog
on the website.


About
-----
* Authors:     see `AUTHORS` file
* License:     GNU General Public License Version 3
* Website:     http://ranger.nongnu.org/
* Download:    http://ranger.nongnu.org/ranger-stable.tar.gz
* Bug reports: https://github.com/ranger/ranger/issues
* git clone    http://git.sv.gnu.org/r/ranger.git


Design Goals
------------
* An easily maintainable file manager in a high level language
* A quick way to switch directories and browse the file system
* Keep it small but useful, do one thing and do it well
* Console based, with smooth integration into the unix shell


Features
--------
* UTF-8 Support  (if your python copy supports it)
* Multi-column display
* Preview of the selected file/directory
* Common file operations (create/chmod/copy/delete/...)
* Renaming multiple files at once
* VIM-like console and hotkeys
* Automatically determine file types and run them with correct programs
* Change the directory of your shell after exiting ranger
* Tabs, bookmarks, mouse support


Dependencies
------------
* Python (`>=2.6` or `>=3.1`) with the `curses` module
  and (optionally) wide-unicode support.
* A pager (`less` by default)

Optional:

* The `file` program for determining file types
* The python module `chardet`, in case of encoding detection problems
* `sudo` to use the "run as root"-feature
* `w3m` for the `w3mimgdisplay` program to preview images

Optional, for enhanced file previews (with `scope.sh`):

* `img2txt` (from `caca-utils`) for ASCII-art image previews
* `highlight` or `pygmentize` for syntax highlighting of code
* `atool`, `bsdtar` and/or `unrar` for previews of archives
* `lynx`, `w3m` or `elinks` for previews of html pages
* `pdftotext` for pdf previews
* `transmission-show` for viewing bit-torrent information
* `mediainfo` or `exiftool` for viewing information about media files
* `odt2txt` for OpenDocument text files (`odt`, `ods`, `odp` and `sxw`)


Installing
----------
Use the package manager of your operating system to install ranger.
Note that ranger can be started without installing by simply running `ranger.py`.

To install ranger manually:
```
sudo make install
```

This translates roughly to:
```
sudo python setup.py install --optimize=1 --record=install_log.txt
```

This also saves a list of all installed files to `install_log.txt`, which you can
use to uninstall ranger.


Getting Started
---------------
After starting ranger, you can use the Arrow Keys or `h` `j` `k` `l` to navigate, `Enter`
to open a file or type `Q` to quit.  The third column shows a preview of the
current file.  The second is the main column and the first shows the parent
directory.

Ranger can automatically copy default configuration files to `~/.config/ranger`
if you run it with the switch `--copy-config`. See `ranger --help` for a
description of that switch.  Also check `ranger/config/` for the default
configuration.