diff --git a/HACKING b/HACKING
index 84fb7539..85f44ed6 100644
--- a/HACKING
+++ b/HACKING
@@ -17,10 +17,10 @@ Patches
Send patches, created with "git format-patch", to the email adress
- hut@lavabit.com
+ romanz@lavabit.com
If you plan to do major changes, or many changes over time, I encourage
-you to create a fork on GitHub or Gitorious.
+you to create a fork on GitHub, Gitorious or any other site.
Common Changes
@@ -40,16 +40,17 @@ The setting is now accessible at self.settings.my_option,
assuming <self> is a "SettingsAware" object.
* Change commands:
-ranger/commands.py
+ranger/defaults/commands.py
* Create aliases for commands:
-In ranger/commands.py
+In ranger/defaults/commands.py
at the bottom, write something like: alias(exit=quit)
* Adding colorschemes:
Copy ranger/colorschemes/default.py to ranger/colorschemes/myscheme.py
-and modify it according to your needs.
-In ranger/defaults/options.py, change
+and modify it according to your needs. Alternatively, mimic the jungle
+colorscheme. It subclasses the default scheme and just modifies a few things.
+In ranger/defaults/options.py (or ~/.ranger/options.py), change
colorscheme = colorschemes.default
to: colorscheme = colorschemes.myscheme
@@ -59,7 +60,7 @@ change the hidden_filter regular expression.
* Change the key map:
Modify ranger/defaults/keys.py. This should be self-explanatory.
-Check out ranger/actions.py for the most common actions, of course
+Check out ranger/core/actions.py for the most common actions, of course
you can also use your own functions.
* Change the file type => application associations:
diff --git a/INSTALL b/INSTALL
index 4635478b..d14d3891 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,8 +1,23 @@
-You can run ranger without installing by simply starting the executable
-file ranger.py in the top directory of this package.
+Installing
+==========
+You don't need to install anything.
-To install ranger, follow this instructions:
+You can run ranger by simply starting the executable file ranger.py
+in the top directory of this package.
+Use the --clean option and it will leave no trace whatsoever on your system.
+
+
+If you insist on conventionally install it, use the package manager
+of your operating system. If there is no package or it is out of date,
+you can also follow these instructions:
+
+
+Step by step
+============
+
+(This is all done automagically if you type `sudo make install',
+though you might want to read the Makefile first)
0. Make sure you have a recent version of python, including the
curses module, which is the case if this shell command prints no errors:
@@ -27,4 +42,14 @@ To install ranger, follow this instructions:
alias rng="source ranger ranger"
(Unfortunately this feature is shell dependent. It has been
- successfully tested with BASH only.)
+ successfully tested with BASH and ZSH only.)
+
+
+Uninstalling
+============
+
+Use your package manager to uninstall ranger. If you manually installed
+it, revert the steps described above.
+
+Ranger can also create a configuration directory at ~/.ranger which
+you might want to remove as well.
diff --git a/Makefile b/Makefile
index feef0bf0..ac7b0502 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,16 @@
NAME = ranger
-VERSION = 1.0.3
-PYTHON = python
-DOCDIR = doc/pydoc
+VERSION = 1.0.4
+PYTHON ?= python
+DOCDIR ?= doc/pydoc
+PREFIX ?= /usr/local
+PYTHONOPTIMIZE ?= 2
CWD = $(shell pwd)
-EDITOR = vim
+EDITOR ?= vim
+DEST ?= $(shell $(PYTHON) -c 'import sys; sys.stdout.write( \
+ [p for p in sys.path if "site" in p][0])' 2> /dev/null)/ranger
-.PHONY: all clean doc cleandoc edit push test commit install info snapshot minimal_snapshot
+.PHONY: all compile clean doc cleandoc edit push test commit \
+ install uninstall info snapshot minimal_snapshot
info:
@echo 'This makefile provides shortcuts for common tasks.'
@@ -21,7 +26,12 @@ info:
@echo 'make push: push the changes via git'
@echo 'make edit: open all relevant files in your editor'
-all: test
+all: test install
+
+compile: clean
+ @echo 'Compiling...'
+ python -m compileall -q ranger
+ PYTHONOPTIMIZE=$(PYTHONOPTIMIZE) python -m compileall -q ranger
doc: cleandoc
mkdir -p $(DOCDIR)
@@ -30,16 +40,40 @@ doc: cleandoc
sys.path[0] = "$(CWD)"; \
pydoc.writedocs("$(CWD)")'
-install:
- @less -XF INSTALL
+uninstall:
+ @echo 'To uninstall ranger, please remove these files:'
+ @echo $(DEST)'/*'
+ @echo $(PREFIX)'/bin/ranger'
+ @echo 'and optionally the config files at:'
+ @echo '~/.ranger'
+
+install: compile
+ @if [ '$(DEST)' == '/ranger' ]; then \
+ echo 'Cannot find a suitable destination for the files.'; \
+ false; \
+ fi
+ @echo "Installing..."
+ cp ranger.py $(PREFIX)/bin/ranger
+ cp -ruT ranger $(DEST)
+ chmod 755 $(PREFIX)/bin/ranger
+ chmod -R +rX $(DEST)
+ @echo '--------------------------------------'
+ @echo 'Finished.'
+ @echo 'If you use BASH or ZSH, you can activate an extra feature now:'
+ @echo 'When you exit ranger, the directory of the current shell can be'
+ @echo 'changed to the last visited directory in ranger. To do so, add'
+ @echo 'this alias to your shell rc file (like ~/.bashrc):'
+ @echo 'alias rng="source ranger ranger"'
+ @echo 'And run ranger by typing rng.'
+
cleandoc:
test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html
clean:
- find . -regex .\*.py[co]$ | xargs rm -f --
+ find . -regex [^\s]\*.py[co]$ | xargs rm -f --
-test: clean
+test:
./all_tests.py
edit:
@@ -49,7 +83,6 @@ push:
@for repo in $(shell git remote); do \
echo "Pushing to $$repo..."; \
git push $$repo master; \
- git push $$repo -f hut; \
done
commit: test
diff --git a/README b/README
index 88d9523f..b97b5ed7 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Ranger v.1.0.3
+Ranger v.1.0.4
==============
Ranger
@@ -6,23 +6,28 @@ Ranger
A keeper, guardian, or soldier who ranges over a region
to protect the area or enforce the law.
-This file browser gives you the ability to swiftly move around
-and get a broad overview of your forest of directory trees.
+This is the filemanager Chuck Norris the Texas Ranger would use
+if he had a computer with a unix-like operating system. (He doesn't
+trust computers though and prefers to do the calculations himself.)
-Rangers default hotkeys make it intuitive for users of the popular
-text-editor VIM, but it is fully customizable.
+After all, as a professional ranger, he needs a broad overview of his
+territory, and the multi-column display of ranger provides just that,
+rather than restricting you to the current directory only.
+You can preview the content of the selected file or directory, copy or move
+files around with the VIM-like commands dd and yy, execute predefined
+applications when opening a file, etc...
-The program is written in Python since version 1.0.0 and uses
-ncurses for the (completely text based) user interface.
+Everything is fully customizable and written in Python (2.6 and 3.1
+compatible) using curses for the text-based user interface.
About
-----
-* Author: hut
-* Email: hut@lavabit.com
-* Git repo: http://repo.or.cz/w/ranger.git
-* Version: 1.0.3
+* Author: Roman Zimbelmann
+* Email: romanz@lavabit.com
+* Git repo: http://git.savannah.gnu.org/cgit/ranger.git
+* Version: 1.0.4
Features
@@ -42,32 +47,39 @@ Features
Dependencies
------------
-* A Unix-like OS (Linux, BSD, Mac OS, ...)
+* A Unix-like Operating System
* Python 2.6 or 3.1
-* Python curses module
+* Python curses module (often but not always included with Python)
Bugs and Feature Requests
-------------------------
-Report bugs and feature requests on the bug tracker of
-the ranger repository on GitHub:
- http://github.com/hut/ranger/issues
+Report bugs and feature requests on savannah:
+ https://savannah.nongnu.org/bugs/?func=additem&group=ranger
-Alternatively you can send an email to hut@lavabit.com.
+Alternatively you can send an email to romanz@lavabit.com.
Please include as much relevant information as possible.
Using ranger with the --debug option will abort the program and
-print tracebacks in certain cases.
+print tracebacks rather than a red message in the statusbar.
+If this applies to you, please include such a traceback in your report.
Getting Started
---------------
-At first, it's a good idea to create a symlink in your bin dir:
- sudo ln -s /path/to/ranger.py /usr/bin/ranger
+If you just want to check out ranger without installing it, type
-Now type in ranger to start it.
+ ./ranger.py --clean
+
+in the top directory of ranger. By using the --clean switch, it will
+leave no trace on your system whatsoever.
+
+To properly install it, follow the instructions in the INSTALL file,
+then type:
+
+ ranger
You should see 4 columns. The third is the directory where you are at
the moment. To the left, there are the directories above the current
diff --git a/TODO b/TODO
index 44de45aa..17991c40 100644
--- a/TODO
+++ b/TODO
@@ -46,7 +46,9 @@ General
(X) #61 10/02/09 show sum of size of marked files
(X) #63 10/02/15 limit filesize in previews
( ) #64 10/02/25 scroll in previews
- ( ) #66 10/02/28 explain how colorschemes work
+ (X) #66 10/02/28 explain how colorschemes work
+ ( ) #70 10/03/14 mouse handler for titlebar
+ ( ) #71 10/03/21 previews: black/whitelist + read file
Bugs
@@ -69,6 +71,9 @@ Bugs
(X) #62 10/02/15 curs_set can raise an exception
(X) #65 10/02/16 "source ranger ranger some/file.txt" shouldn't cd after exit
( ) #67 10/03/08 terminal title in tty
+ (X) #69 10/03/11 tab-completion breaks with Apps subclass
+ ( ) #73 10/03/21 when clicking on the first column, it goes 1x down
+ ( ) #74 10/03/21 console doesn't scroll
Ideas
@@ -80,4 +85,6 @@ Ideas
( ) #33 10/01/08 accelerate mousewheel speed
( ) #45 10/01/18 hooks for events like setting changes
( ) #53 10/01/23 merge fm and environment
+ ( ) #68 10/03/10 threads, to seperate ui and loading
+ ( ) #72 10/03/21 ranger daemon which does the slow io tasks
diff --git a/doc/cd-after-exit.txt b/doc/cd-after-exit.txt
index 5e54fee0..ee300518 100644
--- a/doc/cd-after-exit.txt
+++ b/doc/cd-after-exit.txt
@@ -1,6 +1,8 @@
The "cd-after-exit" Feature
+===========================
-== Abstract
+Abstract
+--------
This document explains the troublesome implementation of the "cd-after-exit"
feature.
@@ -8,7 +10,8 @@ feature.
This is written for developers who wonder how it's working.
-== Specification
+Specification
+-------------
When the feature is enabled, ranger will attempt to change the directory of
the parent shell (from which ranger is run) to the last visited directory
@@ -20,7 +23,8 @@ addition of support for csh, ksh, and other shells to those who actually use
those shells.
-== What's the problem?
+What's the problem?
+-------------------
Shells have several limitations, the implementation could not be done easily
because:
@@ -33,7 +37,8 @@ of the parent shell at all.
which is directly integrated in to the shell and can not be run this way.
-== Redirection of streams
+Redirection of streams
+----------------------
The only way I found is using cd `program` from inside the shell to change
the directory to whatever `program` prints to the stdout:
@@ -62,7 +67,8 @@ switch which:
bash$ cd `ranger --cd-after-exit 3>&1 1>&2 2>&3 3>&-`
-== Argument passing
+Argument passing
+----------------
This works well enough, but there are two remaining problems:
@@ -92,7 +98,8 @@ run.sh:
cd "`$RANGER --cd-after-exit \"$@\" 3>&1 1>&2 2>&3 3>&-`"
-== Put it in a nutshell
+Put it in a nutshell
+--------------------
I didn't want to have 2 files for the main program and wanted just one
file at /usr/bin/ranger. So I used this trick to merge both files into one:
@@ -120,7 +127,8 @@ A convenient way of using this feature is adding this line to your bashrc:
alias rn='source ranger ranger'
-== Open issues
+Open issues
+-----------
Unfortunately there is some redundancy: you have to type the path to ranger
twice. I know of no way to fix this, because it is not possible to get the
diff --git a/doc/colorschemes.txt b/doc/colorschemes.txt
new file mode 100644
index 00000000..905c7a3e
--- /dev/null
+++ b/doc/colorschemes.txt
@@ -0,0 +1,101 @@
+Colorschemes
+============
+
+Abstract
+--------
+
+
+This text explains colorschemes and how they work.
+
+
+Context Tags
+------------
+
+Context Tags provide information about the context. If the tag
+"in_titlebar" is set, you probably want to know about the color
+of a part of the titlebar now.
+
+There are a number of context tags, specified in /ranger/gui/context.py
+in the constant CONTEXT_KEYS.
+
+A Context object, defined in the same file, contains attributes with
+the names of all tags, whose values are either True or False.
+
+
+Implementation in the GUI Classes
+---------------------------------
+
+The class CursesShortcuts in the file /ranger/gui/curses_shortcuts.py
+defines the methods color(*tags), color_at(y, x, wid, *tags) and
+color_reset(). This class is a superclass of Displayable, so these
+methods are available almost everywhere.
+
+Something like color("in_titlebar", "directory") will be called to
+get the color of directories in the titlebar. This creates a
+ranger.gui.context.Context object, sets its attributes "in_titlebar" and
+"directory" to True, leaves the others as False, and passes it to the
+colorscheme's use(context) method.
+
+
+The Color Scheme
+----------------
+
+A colorscheme should be a subclass of ranger.gui.ColorScheme and
+define the method use(context). By looking at the context, this use-method
+has to determine a 3-tuple of integers: (foreground, background, attribute)
+and return it.
+
+foreground and background are integers representing colors,
+attribute is another integer with each bit representing one attribute.
+These integers are interpreted by the used terminal emulator.
+
+Abbreviations for colors and attributes are defined in ranger.gui.color.
+Two attributes can be combined via bitwise OR: bold | reverse
+
+Once the color for a set of tags is determined, it will be cached by
+default. If you want more dynamic colorschemes (such as a different
+color for very large files), you will need to dig into the source code,
+perhaps add an own tag and modify the draw-method of the widget to use
+that tag.
+
+Run tc_colorscheme to check if your colorschemes are valid.
+
+
+Specify a Colorscheme
+---------------------
+
+Colorschemes are searched for in these directories:
+~/.ranger/colorschemes/
+/ranger/colorschemes/
+
+To specify which colorscheme to use, define the variable "colorscheme"
+in your options.py:
+colorscheme = colorschemes.default
+
+This means, use the (one) colorscheme contained in
+either ~/.ranger/colorschemes/default.py or /ranger/colorschemes/default.py.
+
+You can define more than one colorscheme in a colorscheme file. The
+one named "Scheme" will be chosen in that case. If there is no colorscheme
+named "Scheme", an arbitrary one will be picked. You could also explicitly
+specify which colorscheme to use in your options.py:
+colorscheme = colorschemes.default.MyOtherScheme
+
+
+Adapt a colorscheme
+-------------------
+
+You may want to adapt a colorscheme to your needs without having
+a complete copy of it, but rather the changes only. Say, you
+want the exact same colors as in the default colorscheme, but
+the directories to be green rather than blue, because you find the
+blue hard to read.
+
+This is done in the jungle colorscheme ranger.colorschemes.jungle.Scheme,
+check it out for implementation details. In short, I made a subclass
+of the default scheme, set the initial colors to the result of the
+default use() method and modified the colors how I wanted.
+
+This has the obvious advantage that you need to write less, which
+results in less maintainance work and a greater chance that your colorscheme
+will work with future versions of ranger.
diff --git a/doc/print_colors.py b/doc/print_colors.py
new file mode 100755
index 00000000..7ffd6500
--- /dev/null
+++ b/doc/print_colors.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+"""
+You can use this tool to display all supported colors and their color number.
+It will exit after a keypress.
+"""
+
+import curses
+from curses import *
+
+@wrapper
+def main(win):
+ def print_all_colors(attr):
+ for c in range(0, curses.COLORS):
+ init_pair(c, c, -1)
+ win.addstr(str(c) + ' ', color_pair(c) | attr)
+ use_default_colors()
+ win.addstr("available colors: %d\n\n" % curses.COLORS)
+ print_all_colors(0)
+ win.addstr("\n\n")
+ print_all_colors(A_BOLD)
+ win.refresh()
+ win.getch()
+
diff --git a/doc/pydoc/curses.ascii.html b/doc/pydoc/curses.ascii.html
deleted file mode 100644
index 53cc58c1..00000000
--- a/doc/pydoc/curses.ascii.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module curses.ascii</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="curses.html"><font color="#ffffff">curses</font></a>.ascii</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python2.6/curses/ascii.py">/usr/lib/python2.6/curses/ascii.py</a><br><a href="http://docs.python.org/library/curses.ascii">Module Docs</a></font></td></tr></table>
- <p><tt>Constants and membership tests for ASCII characters</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-alt"><strong>alt</strong></a>(c)</dt></dl>
- <dl><dt><a name="-ascii"><strong>ascii</strong></a>(c)</dt></dl>
- <dl><dt><a name="-ctrl"><strong>ctrl</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isalnum"><strong>isalnum</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isalpha"><strong>isalpha</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isascii"><strong>isascii</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isblank"><strong>isblank</strong></a>(c)</dt></dl>
- <dl><dt><a name="-iscntrl"><strong>iscntrl</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isctrl"><strong>isctrl</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isdigit"><strong>isdigit</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isgraph"><strong>isgraph</strong></a>(c)</dt></dl>
- <dl><dt><a name="-islower"><strong>islower</strong></a>(c)</dt></dl>
- <dl><dt><a name="-ismeta"><strong>ismeta</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isprint"><strong>isprint</strong></a>(c)</dt></dl>
- <dl><dt><a name="-ispunct"><strong>ispunct</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isspace"><strong>isspace</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isupper"><strong>isupper</strong></a>(c)</dt></dl>
- <dl><dt><a name="-isxdigit"><strong>isxdigit</strong></a>(c)</dt></dl>
- <dl><dt><a name="-unctrl"><strong>unctrl</strong></a>(c)</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>ACK</strong> = 6<br>
-<strong>BEL</strong> = 7<br>
-<strong>BS</strong> = 8<br>
-<strong>CAN</strong> = 24<br>
-<strong>CR</strong> = 13<br>
-<strong>DC1</strong> = 17<br>
-<strong>DC2</strong> = 18<br>
-<strong>DC3</strong> = 19<br>
-<strong>DC4</strong> = 20<br>
-<strong>DEL</strong> = 127<br>
-<strong>DLE</strong> = 16<br>
-<strong>EM</strong> = 25<br>
-<strong>ENQ</strong> = 5<br>
-<strong>EOT</strong> = 4<br>
-<strong>ESC</strong> = 27<br>
-<strong>ETB</strong> = 23<br>
-<strong>ETX</strong> = 3<br>
-<strong>FF</strong> = 12<br>
-<strong>FS</strong> = 28<br>
-<strong>GS</strong> = 29<br>
-<strong>HT</strong> = 9<br>
-<strong>LF</strong> = 10<br>
-<strong>NAK</strong> = 21<br>
-<strong>NL</strong> = 10<br>
-<strong>NUL</strong> = 0<br>
-<strong>RS</strong> = 30<br>
-<strong>SI</strong> = 15<br>
-<strong>SO</strong> = 14<br>
-<strong>SOH</strong> = 1<br>
-<strong>SP</strong> = 32<br>
-<strong>STX</strong> = 2<br>
-<strong>SUB</strong> = 26<br>
-<strong>SYN</strong> = 22<br>
-<strong>TAB</strong> = 9<br>
-<strong>US</strong> = 31<br>
-<strong>VT</strong> = 11<br>
-<strong>controlnames</strong> = ['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'SO', 'SI', 'DLE', 'DC1', 'DC2', 'DC3', ...]</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/curses.html b/doc/pydoc/curses.html
deleted file mode 100644
index 87afc0e1..00000000
--- a/doc/pydoc/curses.html
+++ /dev/null
@@ -1,331 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package curses</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>curses</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python2.6/curses/__init__.py">/usr/lib/python2.6/curses/__init__.py</a><br><a href="http://docs.python.org/library/curses">Module Docs</a></font></td></tr></table>
- <p><tt>curses<br>
- <br>
-The main package for curses support for Python. Normally used by importing<br>
-the package, and perhaps a particular module inside it.<br>
- <br>
- import curses<br>
- from curses import textpad<br>
- curses.initwin()<br>
- ...</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.ascii.html">ascii</a><br>
-<a href="curses.has_key.html">has_key</a><br>
-</td><td width="25%" valign=top><a href="curses.panel.html">panel</a><br>
-<a href="curses.textpad.html">textpad</a><br>
-</td><td width="25%" valign=top><a href="curses.wrapper.html">wrapper</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-baudrate"><strong>baudrate</strong></a>(...)</dt></dl>
- <dl><dt><a name="-beep"><strong>beep</strong></a>(...)</dt></dl>
- <dl><dt><a name="-can_change_color"><strong>can_change_color</strong></a>(...)</dt></dl>
- <dl><dt><a name="-cbreak"><strong>cbreak</strong></a>(...)</dt></dl>
- <dl><dt><a name="-color_content"><strong>color_content</strong></a>(...)</dt></dl>
- <dl><dt><a name="-color_pair"><strong>color_pair</strong></a>(...)</dt></dl>
- <dl><dt><a name="-curs_set"><strong>curs_set</strong></a>(...)</dt></dl>
- <dl><dt><a name="-def_prog_mode"><strong>def_prog_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-def_shell_mode"><strong>def_shell_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-delay_output"><strong>delay_output</strong></a>(...)</dt></dl>
- <dl><dt><a name="-doupdate"><strong>doupdate</strong></a>(...)</dt></dl>
- <dl><dt><a name="-echo"><strong>echo</strong></a>(...)</dt></dl>
- <dl><dt><a name="-endwin"><strong>endwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-erasechar"><strong>erasechar</strong></a>(...)</dt></dl>
- <dl><dt><a name="-filter"><strong>filter</strong></a>(...)</dt></dl>
- <dl><dt><a name="-flash"><strong>flash</strong></a>(...)</dt></dl>
- <dl><dt><a name="-flushinp"><strong>flushinp</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getmouse"><strong>getmouse</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getsyx"><strong>getsyx</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getwin"><strong>getwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-halfdelay"><strong>halfdelay</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_colors"><strong>has_colors</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_ic"><strong>has_ic</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_il"><strong>has_il</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_key"><strong>has_key</strong></a>(...)</dt></dl>
- <dl><dt><a name="-init_color"><strong>init_color</strong></a>(...)</dt></dl>
- <dl><dt><a name="-init_pair"><strong>init_pair</strong></a>(...)</dt></dl>
- <dl><dt><a name="-initscr"><strong>initscr</strong></a>()</dt></dl>
- <dl><dt><a name="-intrflush"><strong>intrflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-is_term_resized"><strong>is_term_resized</strong></a>(...)</dt></dl>
- <dl><dt><a name="-isendwin"><strong>isendwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-keyname"><strong>keyname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-killchar"><strong>killchar</strong></a>(...)</dt></dl>
- <dl><dt><a name="-longname"><strong>longname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-meta"><strong>meta</strong></a>(...)</dt></dl>
- <dl><dt><a name="-mouseinterval"><strong>mouseinterval</strong></a>(...)</dt></dl>
- <dl><dt><a name="-mousemask"><strong>mousemask</strong></a>(...)</dt></dl>
- <dl><dt><a name="-napms"><strong>napms</strong></a>(...)</dt></dl>
- <dl><dt><a name="-newpad"><strong>newpad</strong></a>(...)</dt></dl>
- <dl><dt><a name="-newwin"><strong>newwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nl"><strong>nl</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nocbreak"><strong>nocbreak</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noecho"><strong>noecho</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nonl"><strong>nonl</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noqiflush"><strong>noqiflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noraw"><strong>noraw</strong></a>(...)</dt></dl>
- <dl><dt><a name="-pair_content"><strong>pair_content</strong></a>(...)</dt></dl>
- <dl><dt><a name="-pair_number"><strong>pair_number</strong></a>(...)</dt></dl>
- <dl><dt><a name="-putp"><strong>putp</strong></a>(...)</dt></dl>
- <dl><dt><a name="-qiflush"><strong>qiflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-raw"><strong>raw</strong></a>(...)</dt></dl>
- <dl><dt><a name="-reset_prog_mode"><strong>reset_prog_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-reset_shell_mode"><strong>reset_shell_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resetty"><strong>resetty</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resize_term"><strong>resize_term</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resizeterm"><strong>resizeterm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-savetty"><strong>savetty</strong></a>(...)</dt></dl>
- <dl><dt><a name="-setsyx"><strong>setsyx</strong></a>(...)</dt></dl>
- <dl><dt><a name="-setupterm"><strong>setupterm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-start_color"><strong>start_color</strong></a>()</dt></dl>
- <dl><dt><a name="-termattrs"><strong>termattrs</strong></a>(...)</dt></dl>
- <dl><dt><a name="-termname"><strong>termname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetflag"><strong>tigetflag</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetnum"><strong>tigetnum</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetstr"><strong>tigetstr</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tparm"><strong>tparm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-typeahead"><strong>typeahead</strong></a>(...)</dt></dl>
- <dl><dt><a name="-unctrl"><strong>unctrl</strong></a>(...)</dt></dl>
- <dl><dt><a name="-ungetch"><strong>ungetch</strong></a>(...)</dt></dl>
- <dl><dt><a name="-ungetmouse"><strong>ungetmouse</strong></a>(...)</dt></dl>
- <dl><dt><a name="-use_default_colors"><strong>use_default_colors</strong></a>(...)</dt></dl>
- <dl><dt><a name="-use_env"><strong>use_env</strong></a>(...)</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>ALL_MOUSE_EVENTS</strong> = 134217727<br>
-<strong>A_ALTCHARSET</strong> = 4194304<br>
-<strong>A_ATTRIBUTES</strong> = 4294967040<br>
-<strong>A_BLINK</strong> = 524288<br>
-<strong>A_BOLD</strong> = 2097152<br>
-<strong>A_CHARTEXT</strong> = 255<br>
-<strong>A_COLOR</strong> = 65280<br>
-<strong>A_DIM</strong> = 1048576<br>
-<strong>A_HORIZONTAL</strong> = 33554432<br>
-<strong>A_INVIS</strong> = 8388608<br>
-<strong>A_LEFT</strong> = 67108864<br>
-<strong>A_LOW</strong> = 134217728<br>
-<strong>A_NORMAL</strong> = 0<br>
-<strong>A_PROTECT</strong> = 16777216<br>
-<strong>A_REVERSE</strong> = 262144<br>
-<strong>A_RIGHT</strong> = 268435456<br>
-<strong>A_STANDOUT</strong> = 65536<br>
-<strong>A_TOP</strong> = 536870912<br>
-<strong>A_UNDERLINE</strong> = 131072<br>
-<strong>A_VERTICAL</strong> = 1073741824<br>
-<strong>BUTTON1_CLICKED</strong> = 4<br>
-<strong>BUTTON1_DOUBLE_CLICKED</strong> = 8<br>
-<strong>BUTTON1_PRESSED</strong> = 2<br>
-<strong>BUTTON1_RELEASED</strong> = 1<br>
-<strong>BUTTON1_TRIPLE_CLICKED</strong> = 16<br>
-<strong>BUTTON2_CLICKED</strong> = 256<br>
-<strong>BUTTON2_DOUBLE_CLICKED</strong> = 512<br>
-<strong>BUTTON2_PRESSED</strong> = 128<br>
-<strong>BUTTON2_RELEASED</strong> = 64<br>
-<strong>BUTTON2_TRIPLE_CLICKED</strong> = 1024<br>
-<strong>BUTTON3_CLICKED</strong> = 16384<br>
-<strong>BUTTON3_DOUBLE_CLICKED</strong> = 32768<br>
-<strong>BUTTON3_PRESSED</strong> = 8192<br>
-<strong>BUTTON3_RELEASED</strong> = 4096<br>
-<strong>BUTTON3_TRIPLE_CLICKED</strong> = 65536<br>
-<strong>BUTTON4_CLICKED</strong> = 1048576<br>
-<strong>BUTTON4_DOUBLE_CLICKED</strong> = 2097152<br>
-<strong>BUTTON4_PRESSED</strong> = 524288<br>
-<strong>BUTTON4_RELEASED</strong> = 262144<br>
-<strong>BUTTON4_TRIPLE_CLICKED</strong> = 4194304<br>
-<strong>BUTTON_ALT</strong> = 67108864<br>
-<strong>BUTTON_CTRL</strong> = 16777216<br>
-<strong>BUTTON_SHIFT</strong> = 33554432<br>
-<strong>COLOR_BLACK</strong> = 0<br>
-<strong>COLOR_BLUE</strong> = 4<br>
-<strong>COLOR_CYAN</strong> = 6<br>
-<strong>COLOR_GREEN</strong> = 2<br>
-<strong>COLOR_MAGENTA</strong> = 5<br>
-<strong>COLOR_RED</strong> = 1<br>
-<strong>COLOR_WHITE</strong> = 7<br>
-<strong>COLOR_YELLOW</strong> = 3<br>
-<strong>ERR</strong> = -1<br>
-<strong>KEY_A1</strong> = 348<br>
-<strong>KEY_A3</strong> = 349<br>
-<strong>KEY_B2</strong> = 350<br>
-<strong>KEY_BACKSPACE</strong> = 263<br>
-<strong>KEY_BEG</strong> = 354<br>
-<strong>KEY_BREAK</strong> = 257<br>
-<strong>KEY_BTAB</strong> = 353<br>
-<strong>KEY_C1</strong> = 351<br>
-<strong>KEY_C3</strong> = 352<br>
-<strong>KEY_CANCEL</strong> = 355<br>
-<strong>KEY_CATAB</strong> = 342<br>
-<strong>KEY_CLEAR</strong> = 333<br>
-<strong>KEY_CLOSE</strong> = 356<br>
-<strong>KEY_COMMAND</strong> = 357<br>
-<strong>KEY_COPY</strong> = 358<br>
-<strong>KEY_CREATE</strong> = 359<br>
-<strong>KEY_CTAB</strong> = 341<br>
-<strong>KEY_DC</strong> = 330<br>
-<strong>KEY_DL</strong> = 328<br>
-<strong>KEY_DOWN</strong> = 258<br>
-<strong>KEY_EIC</strong> = 332<br>
-<strong>KEY_END</strong> = 360<br>
-<strong>KEY_ENTER</strong> = 343<br>
-<strong>KEY_EOL</strong> = 335<br>
-<strong>KEY_EOS</strong> = 334<br>
-<strong>KEY_EXIT</strong> = 361<br>
-<strong>KEY_F0</strong> = 264<br>
-<strong>KEY_F1</strong> = 265<br>
-<strong>KEY_F10</strong> = 274<br>
-<strong>KEY_F11</strong> = 275<br>
-<strong>KEY_F12</strong> = 276<br>
-<strong>KEY_F13</strong> = 277<br>
-<strong>KEY_F14</strong> = 278<br>
-<strong>KEY_F15</strong> = 279<br>
-<strong>KEY_F16</strong> = 280<br>
-<strong>KEY_F17</strong> = 281<br>
-<strong>KEY_F18</strong> = 282<br>
-<strong>KEY_F19</strong> = 283<br>
-<strong>KEY_F2</strong> = 266<br>
-<strong>KEY_F20</strong> = 284<br>
-<strong>KEY_F21</strong> = 285<br>
-<strong>KEY_F22</strong> = 286<br>
-<strong>KEY_F23</strong> = 287<br>
-<strong>KEY_F24</strong> = 288<br>
-<strong>KEY_F25</strong> = 289<br>
-<strong>KEY_F26</strong> = 290<br>
-<strong>KEY_F27</strong> = 291<br>
-<strong>KEY_F28</strong> = 292<br>
-<strong>KEY_F29</strong> = 293<br>
-<strong>KEY_F3</strong> = 267<br>
-<strong>KEY_F30</strong> = 294<br>
-<strong>KEY_F31</strong> = 295<br>
-<strong>KEY_F32</strong> = 296<br>
-<strong>KEY_F33</strong> = 297<br>
-<strong>KEY_F34</strong> = 298<br>
-<strong>KEY_F35</strong> = 299<br>
-<strong>KEY_F36</strong> = 300<br>
-<strong>KEY_F37</strong> = 301<br>
-<strong>KEY_F38</strong> = 302<br>
-<strong>KEY_F39</strong> = 303<br>
-<strong>KEY_F4</strong> = 268<br>
-<strong>KEY_F40</strong> = 304<br>
-<strong>KEY_F41</strong> = 305<br>
-<strong>KEY_F42</strong> = 306<br>
-<strong>KEY_F43</strong> = 307<br>
-<strong>KEY_F44</strong> = 308<br>
-<strong>KEY_F45</strong> = 309<br>
-<strong>KEY_F46</strong> = 310<br>
-<strong>KEY_F47</strong> = 311<br>
-<strong>KEY_F48</strong> = 312<br>
-<strong>KEY_F49</strong> = 313<br>
-<strong>KEY_F5</strong> = 269<br>
-<strong>KEY_F50</strong> = 314<br>
-<strong>KEY_F51</strong> = 315<br>
-<strong>KEY_F52</strong> = 316<br>
-<strong>KEY_F53</strong> = 317<br>
-<strong>KEY_F54</strong> = 318<br>
-<strong>KEY_F55</strong> = 319<br>
-<strong>KEY_F56</strong> = 320<br>
-<strong>KEY_F57</strong> = 321<br>
-<strong>KEY_F58</strong> = 322<br>
-<strong>KEY_F59</strong> = 323<br>
-<strong>KEY_F6</strong> = 270<br>
-<strong>KEY_F60</strong> = 324<br>
-<strong>KEY_F61</strong> = 325<br>
-<strong>KEY_F62</strong> = 326<br>
-<strong>KEY_F63</strong> = 327<br>
-<strong>KEY_F7</strong> = 271<br>
-<strong>KEY_F8</strong> = 272<br>
-<strong>KEY_F9</strong> = 273<br>
-<strong>KEY_FIND</strong> = 362<br>
-<strong>KEY_HELP</strong> = 363<br>
-<strong>KEY_HOME</strong> = 262<br>
-<strong>KEY_IC</strong> = 331<br>
-<strong>KEY_IL</strong> = 329<br>
-<strong>KEY_LEFT</strong> = 260<br>
-<strong>KEY_LL</strong> = 347<br>
-<strong>KEY_MARK</strong> = 364<br>
-<strong>KEY_MAX</strong> = 511<br>
-<strong>KEY_MESSAGE</strong> = 365<br>
-<strong>KEY_MIN</strong> = 257<br>
-<strong>KEY_MOUSE</strong> = 409<br>
-<strong>KEY_MOVE</strong> = 366<br>
-<strong>KEY_NEXT</strong> = 367<br>
-<strong>KEY_NPAGE</strong> = 338<br>
-<strong>KEY_OPEN</strong> = 368<br>
-<strong>KEY_OPTIONS</strong> = 369<br>
-<strong>KEY_PPAGE</strong> = 339<br>
-<strong>KEY_PREVIOUS</strong> = 370<br>
-<strong>KEY_PRINT</strong> = 346<br>
-<strong>KEY_REDO</strong> = 371<br>
-<strong>KEY_REFERENCE</strong> = 372<br>
-<strong>KEY_REFRESH</strong> = 373<br>
-<strong>KEY_REPLACE</strong> = 374<br>
-<strong>KEY_RESET</strong> = 345<br>
-<strong>KEY_RESIZE</strong> = 410<br>
-<strong>KEY_RESTART</strong> = 375<br>
-<strong>KEY_RESUME</strong> = 376<br>
-<strong>KEY_RIGHT</strong> = 261<br>
-<strong>KEY_SAVE</strong> = 377<br>
-<strong>KEY_SBEG</strong> = 378<br>
-<strong>KEY_SCANCEL</strong> = 379<br>
-<strong>KEY_SCOMMAND</strong> = 380<br>
-<strong>KEY_SCOPY</strong> = 381<br>
-<strong>KEY_SCREATE</strong> = 382<br>
-<strong>KEY_SDC</strong> = 383<br>
-<strong>KEY_SDL</strong> = 384<br>
-<strong>KEY_SELECT</strong> = 385<br>
-<strong>KEY_SEND</strong> = 386<br>
-<strong>KEY_SEOL</strong> = 387<br>
-<strong>KEY_SEXIT</strong> = 388<br>
-<strong>KEY_SF</strong> = 336<br>
-<strong>KEY_SFIND</strong> = 389<br>
-<strong>KEY_SHELP</strong> = 390<br>
-<strong>KEY_SHOME</strong> = 391<br>
-<strong>KEY_SIC</strong> = 392<br>
-<strong>KEY_SLEFT</strong> = 393<br>
-<strong>KEY_SMESSAGE</strong> = 394<br>
-<strong>KEY_SMOVE</strong> = 395<br>
-<strong>KEY_SNEXT</strong> = 396<br>
-<strong>KEY_SOPTIONS</strong> = 397<br>
-<strong>KEY_SPREVIOUS</strong> = 398<br>
-<strong>KEY_SPRINT</strong> = 399<br>
-<strong>KEY_SR</strong> = 337<br>
-<strong>KEY_SREDO</strong> = 400<br>
-<strong>KEY_SREPLACE</strong> = 401<br>
-<strong>KEY_SRESET</strong> = 344<br>
-<strong>KEY_SRIGHT</strong> = 402<br>
-<strong>KEY_SRSUME</strong> = 403<br>
-<strong>KEY_SSAVE</strong> = 404<br>
-<strong>KEY_SSUSPEND</strong> = 405<br>
-<strong>KEY_STAB</strong> = 340<br>
-<strong>KEY_SUNDO</strong> = 406<br>
-<strong>KEY_SUSPEND</strong> = 407<br>
-<strong>KEY_UNDO</strong> = 408<br>
-<strong>KEY_UP</strong> = 259<br>
-<strong>OK</strong> = 0<br>
-<strong>REPORT_MOUSE_POSITION</strong> = 134217728<br>
-<strong>__revision__</strong> = '$Id: __init__.py 61064 2008-02-25 16:29:58Z andrew.kuchling $'<br>
-<strong>version</strong> = '2.2'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/make_doc.html b/doc/pydoc/make_doc.html
deleted file mode 100644
index 03a852f0..00000000
--- a/doc/pydoc/make_doc.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module make_doc</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>make_doc</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/make_doc.py">/home/hut/ranger/make_doc.py</a></font></td></tr></table>
- <p><tt>Generate pydoc documentation and move it to the doc directory.<br>
-THIS WILL DELETE ALL EXISTING HTML FILES IN THAT DIRECTORY, so don't<br>
-store important content there.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="pydoc.html">pydoc</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/os.html b/doc/pydoc/os.html
deleted file mode 100644
index b0b2b308..00000000
--- a/doc/pydoc/os.html
+++ /dev/null
@@ -1,949 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module os</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>os</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python2.6/os.py">/usr/lib/python2.6/os.py</a><br><a href="http://docs.python.org/library/os">Module Docs</a></font></td></tr></table>
- <p><tt>OS routines for Mac, NT, or Posix depending on what system we're on.<br>
- <br>
-This exports:<br>
- - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc.<br>
- - os.path is one of the modules posixpath, or ntpath<br>
- - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos'<br>
- - os.curdir is a string representing the current directory ('.' or ':')<br>
- - os.pardir is a string representing the parent directory ('..' or '::')<br>
- - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\')<br>
- - os.extsep is the extension separator ('.' or '/')<br>
- - os.altsep is the alternate pathname separator (None or '/')<br>
- - os.pathsep is the component separator used in $PATH etc<br>
- - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')<br>
- - os.defpath is the default search path for executables<br>
- - os.devnull is the file path of the null device ('/dev/null', etc.)<br>
- <br>
-Programs that import and use 'os' stand a better chance of being<br>
-portable between different platforms. Of course, they must then<br>
-only use functions that are defined by all platforms (e.g., unlink<br>
-and opendir), and leave all pathname manipulation to os.path<br>
-(e.g., split and join).</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="UserDict.html">UserDict</a><br>
-<a href="copy_reg.html">copy_reg</a><br>
-</td><td width="25%" valign=top><a href="errno.html">errno</a><br>
-<a href="posixpath.html">posixpath</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="posix.html#stat_result">posix.stat_result</a>
-</font></dt><dt><font face="helvetica, arial"><a href="posix.html#statvfs_result">posix.statvfs_result</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>(<a href="exceptions.html#StandardError">exceptions.StandardError</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="exceptions.html#OSError">exceptions.OSError</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><strong>error</strong> = <a name="error">class OSError</a>(<a href="exceptions.html#EnvironmentError">EnvironmentError</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>OS system call failed.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="exceptions.html#OSError">OSError</a></dd>
-<dd><a href="exceptions.html#EnvironmentError">EnvironmentError</a></dd>
-<dd><a href="exceptions.html#StandardError">StandardError</a></dd>
-<dd><a href="exceptions.html#Exception">Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="OSError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__init__">__init__</a>(...) initializes x; see x.__class__.__doc__ for signature</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7034f80><dd><tt>T.<a href="#error-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#EnvironmentError">EnvironmentError</a>:<br>
-<dl><dt><a name="OSError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="OSError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#EnvironmentError">EnvironmentError</a>:<br>
-<dl><dt><strong>errno</strong></dt>
-<dd><tt>exception errno</tt></dd>
-</dl>
-<dl><dt><strong>filename</strong></dt>
-<dd><tt>exception filename</tt></dd>
-</dl>
-<dl><dt><strong>strerror</strong></dt>
-<dd><tt>exception strerror</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">BaseException</a>:<br>
-<dl><dt><a name="OSError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
-
-<dl><dt><a name="OSError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
-
-<dl><dt><a name="OSError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="OSError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="OSError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="OSError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
-
-<dl><dt><a name="OSError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="OSError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="stat_result">class <strong>stat_result</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt><a href="#stat_result">stat_result</a>: Result from stat or lstat.<br>
- <br>
-This <a href="__builtin__.html#object">object</a> may be accessed either as a tuple of<br>
- (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)<br>
-or via the attributes st_mode, st_ino, st_dev, st_nlink, st_uid, and so on.<br>
- <br>
-Posix/windows: If your platform supports st_blksize, st_blocks, st_rdev,<br>
-or st_flags, they are available as attributes only.<br>
- <br>
-See os.stat for more information.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="stat_result-__add__"><strong>__add__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__add__">__add__</a>(y) <==> x+y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__contains__">__contains__</a>(y) <==> y in x</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__eq__">__eq__</a>(y) <==> x==y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__ge__">__ge__</a>(y) <==> x>=y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__gt__">__gt__</a>(y) <==> x>y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__hash__"><strong>__hash__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__hash__">__hash__</a>() <==> hash(x)</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__le__">__le__</a>(y) <==> x<=y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__len__">__len__</a>() <==> len(x)</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__lt__">__lt__</a>(y) <==> x<y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__mul__"><strong>__mul__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__mul__">__mul__</a>(n) <==> x*n</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__ne__">__ne__</a>(y) <==> x!=y</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="stat_result-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="stat_result-__rmul__"><strong>__rmul__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__rmul__">__rmul__</a>(n) <==> n*x</tt></dd></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>st_atime</strong></dt>
-<dd><tt>time of last access</tt></dd>
-</dl>
-<dl><dt><strong>st_blksize</strong></dt>
-<dd><tt>blocksize for filesystem I/O</tt></dd>
-</dl>
-<dl><dt><strong>st_blocks</strong></dt>
-<dd><tt>number of blocks allocated</tt></dd>
-</dl>
-<dl><dt><strong>st_ctime</strong></dt>
-<dd><tt>time of last change</tt></dd>
-</dl>
-<dl><dt><strong>st_dev</strong></dt>
-<dd><tt>device</tt></dd>
-</dl>
-<dl><dt><strong>st_gid</strong></dt>
-<dd><tt>group ID of owner</tt></dd>
-</dl>
-<dl><dt><strong>st_ino</strong></dt>
-<dd><tt>inode</tt></dd>
-</dl>
-<dl><dt><strong>st_mode</strong></dt>
-<dd><tt>protection bits</tt></dd>
-</dl>
-<dl><dt><strong>st_mtime</strong></dt>
-<dd><tt>time of last modification</tt></dd>
-</dl>
-<dl><dt><strong>st_nlink</strong></dt>
-<dd><tt>number of hard links</tt></dd>
-</dl>
-<dl><dt><strong>st_rdev</strong></dt>
-<dd><tt>device type (if inode device)</tt></dd>
-</dl>
-<dl><dt><strong>st_size</strong></dt>
-<dd><tt>total size, in bytes</tt></dd>
-</dl>
-<dl><dt><strong>st_uid</strong></dt>
-<dd><tt>user ID of owner</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7073800><dd><tt>T.<a href="#stat_result-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
-
-<dl><dt><strong>n_fields</strong> = 16</dl>
-
-<dl><dt><strong>n_sequence_fields</strong> = 10</dl>
-
-<dl><dt><strong>n_unnamed_fields</strong> = 3</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="statvfs_result">class <strong>statvfs_result</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt><a href="#statvfs_result">statvfs_result</a>: Result from statvfs or fstatvfs.<br>
- <br>
-This <a href="__builtin__.html#object">object</a> may be accessed either as a tuple of<br>
- (bsize, frsize, blocks, bfree, bavail, files, ffree, favail, flag, namemax),<br>
-or via the attributes f_bsize, f_frsize, f_blocks, f_bfree, and so on.<br>
- <br>
-See os.statvfs for more information.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="statvfs_result-__add__"><strong>__add__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__add__">__add__</a>(y) <==> x+y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__contains__">__contains__</a>(y) <==> y in x</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__eq__">__eq__</a>(y) <==> x==y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__ge__">__ge__</a>(y) <==> x>=y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__gt__">__gt__</a>(y) <==> x>y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__hash__"><strong>__hash__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__hash__">__hash__</a>() <==> hash(x)</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__le__">__le__</a>(y) <==> x<=y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__len__">__len__</a>() <==> len(x)</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__lt__">__lt__</a>(y) <==> x<y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__mul__"><strong>__mul__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__mul__">__mul__</a>(n) <==> x*n</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__ne__">__ne__</a>(y) <==> x!=y</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="statvfs_result-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="statvfs_result-__rmul__"><strong>__rmul__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__rmul__">__rmul__</a>(n) <==> n*x</tt></dd></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>f_bavail</strong></dt>
-</dl>
-<dl><dt><strong>f_bfree</strong></dt>
-</dl>
-<dl><dt><strong>f_blocks</strong></dt>
-</dl>
-<dl><dt><strong>f_bsize</strong></dt>
-</dl>
-<dl><dt><strong>f_favail</strong></dt>
-</dl>
-<dl><dt><strong>f_ffree</strong></dt>
-</dl>
-<dl><dt><strong>f_files</strong></dt>
-</dl>
-<dl><dt><strong>f_flag</strong></dt>
-</dl>
-<dl><dt><strong>f_frsize</strong></dt>
-</dl>
-<dl><dt><strong>f_namemax</strong></dt>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe70739a0><dd><tt>T.<a href="#statvfs_result-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
-
-<dl><dt><strong>n_fields</strong> = 10</dl>
-
-<dl><dt><strong>n_sequence_fields</strong> = 10</dl>
-
-<dl><dt><strong>n_unnamed_fields</strong> = 0</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-WCOREDUMP"><strong>WCOREDUMP</strong></a>(...)</dt><dd><tt><a href="#-WCOREDUMP">WCOREDUMP</a>(status) -> bool<br>
- <br>
-Return True if the process returning 'status' was dumped to a core file.</tt></dd></dl>
- <dl><dt><a name="-WEXITSTATUS"><strong>WEXITSTATUS</strong></a>(...)</dt><dd><tt><a href="#-WEXITSTATUS">WEXITSTATUS</a>(status) -> integer<br>
- <br>
-Return the process return code from 'status'.</tt></dd></dl>
- <dl><dt><a name="-WIFCONTINUED"><strong>WIFCONTINUED</strong></a>(...)</dt><dd><tt><a href="#-WIFCONTINUED">WIFCONTINUED</a>(status) -> bool<br>
- <br>
-Return True if the process returning 'status' was continued from a<br>
-job control stop.</tt></dd></dl>
- <dl><dt><a name="-WIFEXITED"><strong>WIFEXITED</strong></a>(...)</dt><dd><tt><a href="#-WIFEXITED">WIFEXITED</a>(status) -> bool<br>
- <br>
-Return true if the process returning 'status' exited using the exit()<br>
-system call.</tt></dd></dl>
- <dl><dt><a name="-WIFSIGNALED"><strong>WIFSIGNALED</strong></a>(...)</dt><dd><tt><a href="#-WIFSIGNALED">WIFSIGNALED</a>(status) -> bool<br>
- <br>
-Return True if the process returning 'status' was terminated by a signal.</tt></dd></dl>
- <dl><dt><a name="-WIFSTOPPED"><strong>WIFSTOPPED</strong></a>(...)</dt><dd><tt><a href="#-WIFSTOPPED">WIFSTOPPED</a>(status) -> bool<br>
- <br>
-Return True if the process returning 'status' was stopped.</tt></dd></dl>
- <dl><dt><a name="-WSTOPSIG"><strong>WSTOPSIG</strong></a>(...)</dt><dd><tt><a href="#-WSTOPSIG">WSTOPSIG</a>(status) -> integer<br>
- <br>
-Return the signal that stopped the process that provided<br>
-the 'status' value.</tt></dd></dl>
- <dl><dt><a name="-WTERMSIG"><strong>WTERMSIG</strong></a>(...)</dt><dd><tt><a href="#-WTERMSIG">WTERMSIG</a>(status) -> integer<br>
- <br>
-Return the signal that terminated the process that provided the 'status'<br>
-value.</tt></dd></dl>
- <dl><dt><a name="-abort"><strong>abort</strong></a>(...)</dt><dd><tt><a href="#-abort">abort</a>() -> does not return!<br>
- <br>
-Abort the interpreter immediately. This 'dumps core' or otherwise fails<br>
-in the hardest way possible on the hosting operating system.</tt></dd></dl>
- <dl><dt><a name="-access"><strong>access</strong></a>(...)</dt><dd><tt><a href="#-access">access</a>(path, mode) -> True if granted, False otherwise<br>
- <br>
-Use the real uid/gid to test for access to a path. Note that most<br>
-operations will use the effective uid/gid, therefore this routine can<br>
-be used in a suid/sgid environment to test if the invoking user has the<br>
-specified access to the path. The mode argument can be F_OK to test<br>
-existence, or the inclusive-OR of R_OK, W_OK, and X_OK.</tt></dd></dl>
- <dl><dt><a name="-chdir"><strong>chdir</strong></a>(...)</dt><dd><tt><a href="#-chdir">chdir</a>(path)<br>
- <br>
-Change the current working directory to the specified path.</tt></dd></dl>
- <dl><dt><a name="-chmod"><strong>chmod</strong></a>(...)</dt><dd><tt><a href="#-chmod">chmod</a>(path, mode)<br>
- <br>
-Change the access permissions of a file.</tt></dd></dl>
- <dl><dt><a name="-chown"><strong>chown</strong></a>(...)</dt><dd><tt><a href="#-chown">chown</a>(path, uid, gid)<br>
- <br>
-Change the owner and group id of path to the numeric uid and gid.</tt></dd></dl>
- <dl><dt><a name="-chroot"><strong>chroot</strong></a>(...)</dt><dd><tt><a href="#-chroot">chroot</a>(path)<br>
- <br>
-Change root directory to path.</tt></dd></dl>
- <dl><dt><a name="-close"><strong>close</strong></a>(...)</dt><dd><tt><a href="#-close">close</a>(fd)<br>
- <br>
-Close a file descriptor (for low level IO).</tt></dd></dl>
- <dl><dt><a name="-closerange"><strong>closerange</strong></a>(...)</dt><dd><tt><a href="#-closerange">closerange</a>(fd_low, fd_high)<br>
- <br>
-Closes all file descriptors in [fd_low, fd_high), ignoring errors.</tt></dd></dl>
- <dl><dt><a name="-confstr"><strong>confstr</strong></a>(...)</dt><dd><tt><a href="#-confstr">confstr</a>(name) -> string<br>
- <br>
-Return a string-valued system configuration variable.</tt></dd></dl>
- <dl><dt><a name="-ctermid"><strong>ctermid</strong></a>(...)</dt><dd><tt><a href="#-ctermid">ctermid</a>() -> string<br>
- <br>
-Return the name of the controlling terminal for this process.</tt></dd></dl>
- <dl><dt><a name="-dup"><strong>dup</strong></a>(...)</dt><dd><tt><a href="#-dup">dup</a>(fd) -> fd2<br>
- <br>
-Return a duplicate of a file descriptor.</tt></dd></dl>
- <dl><dt><a name="-dup2"><strong>dup2</strong></a>(...)</dt><dd><tt><a href="#-dup2">dup2</a>(old_fd, new_fd)<br>
- <br>
-Duplicate file descriptor.</tt></dd></dl>
- <dl><dt><a name="-execl"><strong>execl</strong></a>(file, *args)</dt><dd><tt><a href="#-execl">execl</a>(file, *args)<br>
- <br>
-Execute the executable file with argument list args, replacing the<br>
-current process.</tt></dd></dl>
- <dl><dt><a name="-execle"><strong>execle</strong></a>(file, *args)</dt><dd><tt><a href="#-execle">execle</a>(file, *args, env)<br>
- <br>
-Execute the executable file with argument list args and<br>
-environment env, replacing the current process.</tt></dd></dl>
- <dl><dt><a name="-execlp"><strong>execlp</strong></a>(file, *args)</dt><dd><tt><a href="#-execlp">execlp</a>(file, *args)<br>
- <br>
-Execute the executable file (which is searched for along $PATH)<br>
-with argument list args, replacing the current process.</tt></dd></dl>
- <dl><dt><a name="-execlpe"><strong>execlpe</strong></a>(file, *args)</dt><dd><tt><a href="#-execlpe">execlpe</a>(file, *args, env)<br>
- <br>
-Execute the executable file (which is searched for along $PATH)<br>
-with argument list args and environment env, replacing the current<br>
-process.</tt></dd></dl>
- <dl><dt><a name="-execv"><strong>execv</strong></a>(...)</dt><dd><tt><a href="#-execv">execv</a>(path, args)<br>
- <br>
-Execute an executable path with arguments, replacing current process.<br>
- <br>
- path: path of executable file<br>
- args: tuple or list of strings</tt></dd></dl>
- <dl><dt><a name="-execve"><strong>execve</strong></a>(...)</dt><dd><tt><a href="#-execve">execve</a>(path, args, env)<br>
- <br>
-Execute a path with arguments and environment, replacing current process.<br>
- <br>
- path: path of executable file<br>
- args: tuple or list of arguments<br>
- env: dictionary of strings mapping to strings</tt></dd></dl>
- <dl><dt><a name="-execvp"><strong>execvp</strong></a>(file, args)</dt><dd><tt>execp(file, args)<br>
- <br>
-Execute the executable file (which is searched for along $PATH)<br>
-with argument list args, replacing the current process.<br>
-args may be a list or tuple of strings.</tt></dd></dl>
- <dl><dt><a name="-execvpe"><strong>execvpe</strong></a>(file, args, env)</dt><dd><tt><a href="#-execvpe">execvpe</a>(file, args, env)<br>
- <br>
-Execute the executable file (which is searched for along $PATH)<br>
-with argument list args and environment env , replacing the<br>
-current process.<br>
-args may be a list or tuple of strings.</tt></dd></dl>
- <dl><dt><a name="-fchdir"><strong>fchdir</strong></a>(...)</dt><dd><tt><a href="#-fchdir">fchdir</a>(fildes)<br>
- <br>
-Change to the directory of the given file descriptor. fildes must be<br>
-opened on a directory, not a file.</tt></dd></dl>
- <dl><dt><a name="-fchmod"><strong>fchmod</strong></a>(...)</dt><dd><tt><a href="#-fchmod">fchmod</a>(fd, mode)<br>
- <br>
-Change the access permissions of the file given by file<br>
-descriptor fd.</tt></dd></dl>
- <dl><dt><a name="-fchown"><strong>fchown</strong></a>(...)</dt><dd><tt><a href="#-fchown">fchown</a>(fd, uid, gid)<br>
- <br>
-Change the owner and group id of the file given by file descriptor<br>
-fd to the numeric uid and gid.</tt></dd></dl>
- <dl><dt><a name="-fdatasync"><strong>fdatasync</strong></a>(...)</dt><dd><tt><a href="#-fdatasync">fdatasync</a>(fildes)<br>
- <br>
-force write of file with filedescriptor to disk.<br>
- does not force update of metadata.</tt></dd></dl>
- <dl><dt><a name="-fdopen"><strong>fdopen</strong></a>(...)</dt><dd><tt><a href="#-fdopen">fdopen</a>(fd [, mode='r' [, bufsize]]) -> file_object<br>
- <br>
-Return an open file <a href="__builtin__.html#object">object</a> connected to a file descriptor.</tt></dd></dl>
- <dl><dt><a name="-fork"><strong>fork</strong></a>(...)</dt><dd><tt><a href="#-fork">fork</a>() -> pid<br>
- <br>
-Fork a child process.<br>
-Return 0 to child process and PID of child to parent process.</tt></dd></dl>
- <dl><dt><a name="-forkpty"><strong>forkpty</strong></a>(...)</dt><dd><tt><a href="#-forkpty">forkpty</a>() -> (pid, master_fd)<br>
- <br>
-Fork a new process with a new pseudo-terminal as controlling tty.<br>
- <br>
-Like <a href="#-fork">fork</a>(), return 0 as pid to child process, and PID of child to parent.<br>
-To both, return fd of newly opened pseudo-terminal.</tt></dd></dl>
- <dl><dt><a name="-fpathconf"><strong>fpathconf</strong></a>(...)</dt><dd><tt><a href="#-fpathconf">fpathconf</a>(fd, name) -> integer<br>
- <br>
-Return the configuration limit name for the file descriptor fd.<br>
-If there is no limit, return -1.</tt></dd></dl>
- <dl><dt><a name="-fstat"><strong>fstat</strong></a>(...)</dt><dd><tt><a href="#-fstat">fstat</a>(fd) -> stat result<br>
- <br>
-Like <a href="#-stat">stat</a>(), but for an open file descriptor.</tt></dd></dl>
- <dl><dt><a name="-fstatvfs"><strong>fstatvfs</strong></a>(...)</dt><dd><tt><a href="#-fstatvfs">fstatvfs</a>(fd) -> statvfs result<br>
- <br>
-Perform an fstatvfs system call on the given fd.</tt></dd></dl>
- <dl><dt><a name="-fsync"><strong>fsync</strong></a>(...)</dt><dd><tt><a href="#-fsync">fsync</a>(fildes)<br>
- <br>
-force write of file with filedescriptor to disk.</tt></dd></dl>
- <dl><dt><a name="-ftruncate"><strong>ftruncate</strong></a>(...)</dt><dd><tt><a href="#-ftruncate">ftruncate</a>(fd, length)<br>
- <br>
-Truncate a file to a specified length.</tt></dd></dl>
- <dl><dt><a name="-getcwd"><strong>getcwd</strong></a>(...)</dt><dd><tt><a href="#-getcwd">getcwd</a>() -> path<br>
- <br>
-Return a string representing the current working directory.</tt></dd></dl>
- <dl><dt><a name="-getcwdu"><strong>getcwdu</strong></a>(...)</dt><dd><tt><a href="#-getcwdu">getcwdu</a>() -> path<br>
- <br>
-Return a unicode string representing the current working directory.</tt></dd></dl>
- <dl><dt><a name="-getegid"><strong>getegid</strong></a>(...)</dt><dd><tt><a href="#-getegid">getegid</a>() -> egid<br>
- <br>
-Return the current process's effective group id.</tt></dd></dl>
- <dl><dt><a name="-getenv"><strong>getenv</strong></a>(key, default<font color="#909090">=None</font>)</dt><dd><tt>Get an environment variable, return None if it doesn't exist.<br>
-The optional second argument can specify an alternate default.</tt></dd></dl>
- <dl><dt><a name="-geteuid"><strong>geteuid</strong></a>(...)</dt><dd><tt><a href="#-geteuid">geteuid</a>() -> euid<br>
- <br>
-Return the current process's effective user id.</tt></dd></dl>
- <dl><dt><a name="-getgid"><strong>getgid</strong></a>(...)</dt><dd><tt><a href="#-getgid">getgid</a>() -> gid<br>
- <br>
-Return the current process's group id.</tt></dd></dl>
- <dl><dt><a name="-getgroups"><strong>getgroups</strong></a>(...)</dt><dd><tt><a href="#-getgroups">getgroups</a>() -> list of group IDs<br>
- <br>
-Return list of supplemental group IDs for the process.</tt></dd></dl>
- <dl><dt><a name="-getloadavg"><strong>getloadavg</strong></a>(...)</dt><dd><tt><a href="#-getloadavg">getloadavg</a>() -> (float, float, float)<br>
- <br>
-Return the number of processes in the system run queue averaged over<br>
-the last 1, 5, and 15 minutes or raises OSError if the load average<br>
-was unobtainable</tt></dd></dl>
- <dl><dt><a name="-getlogin"><strong>getlogin</strong></a>(...)</dt><dd><tt><a href="#-getlogin">getlogin</a>() -> string<br>
- <br>
-Return the actual login name.</tt></dd></dl>
- <dl><dt><a name="-getpgid"><strong>getpgid</strong></a>(...)</dt><dd><tt><a href="#-getpgid">getpgid</a>(pid) -> pgid<br>
- <br>
-Call the system call <a href="#-getpgid">getpgid</a>().</tt></dd></dl>
- <dl><dt><a name="-getpgrp"><strong>getpgrp</strong></a>(...)</dt><dd><tt><a href="#-getpgrp">getpgrp</a>() -> pgrp<br>
- <br>
-Return the current process group id.</tt></dd></dl>
- <dl><dt><a name="-getpid"><strong>getpid</strong></a>(...)</dt><dd><tt><a href="#-getpid">getpid</a>() -> pid<br>
- <br>
-Return the current process id</tt></dd></dl>
- <dl><dt><a name="-getppid"><strong>getppid</strong></a>(...)</dt><dd><tt><a href="#-getppid">getppid</a>() -> ppid<br>
- <br>
-Return the parent's process id.</tt></dd></dl>
- <dl><dt><a name="-getsid"><strong>getsid</strong></a>(...)</dt><dd><tt><a href="#-getsid">getsid</a>(pid) -> sid<br>
- <br>
-Call the system call <a href="#-getsid">getsid</a>().</tt></dd></dl>
- <dl><dt><a name="-getuid"><strong>getuid</strong></a>(...)</dt><dd><tt><a href="#-getuid">getuid</a>() -> uid<br>
- <br>
-Return the current process's user id.</tt></dd></dl>
- <dl><dt><a name="-isatty"><strong>isatty</strong></a>(...)</dt><dd><tt><a href="#-isatty">isatty</a>(fd) -> bool<br>
- <br>
-Return True if the file descriptor 'fd' is an open file descriptor<br>
-connected to the slave end of a terminal.</tt></dd></dl>
- <dl><dt><a name="-kill"><strong>kill</strong></a>(...)</dt><dd><tt><a href="#-kill">kill</a>(pid, sig)<br>
- <br>
-Kill a process with a signal.</tt></dd></dl>
- <dl><dt><a name="-killpg"><strong>killpg</strong></a>(...)</dt><dd><tt><a href="#-killpg">killpg</a>(pgid, sig)<br>
- <br>
-Kill a process group with a signal.</tt></dd></dl>
- <dl><dt><a name="-lchown"><strong>lchown</strong></a>(...)</dt><dd><tt><a href="#-lchown">lchown</a>(path, uid, gid)<br>
- <br>
-Change the owner and group id of path to the numeric uid and gid.<br>
-This function will not follow symbolic links.</tt></dd></dl>
- <dl><dt><a name="-link"><strong>link</strong></a>(...)</dt><dd><tt><a href="#-link">link</a>(src, dst)<br>
- <br>
-Create a hard link to a file.</tt></dd></dl>
- <dl><dt><a name="-listdir"><strong>listdir</strong></a>(...)</dt><dd><tt><a href="#-listdir">listdir</a>(path) -> list_of_strings<br>
- <br>
-Return a list containing the names of the entries in the directory.<br>
- <br>
- path: path of directory to list<br>
- <br>
-The list is in arbitrary order. It does not include the special<br>
-entries '.' and '..' even if they are present in the directory.</tt></dd></dl>
- <dl><dt><a name="-lseek"><strong>lseek</strong></a>(...)</dt><dd><tt><a href="#-lseek">lseek</a>(fd, pos, how) -> newpos<br>
- <br>
-Set the current position of a file descriptor.</tt></dd></dl>
- <dl><dt><a name="-lstat"><strong>lstat</strong></a>(...)</dt><dd><tt><a href="#-lstat">lstat</a>(path) -> stat result<br>
- <br>
-Like <a href="#-stat">stat</a>(path), but do not follow symbolic links.</tt></dd></dl>
- <dl><dt><a name="-major"><strong>major</strong></a>(...)</dt><dd><tt><a href="#-major">major</a>(device) -> major number<br>
-Extracts a device major number from a raw device number.</tt></dd></dl>
- <dl><dt><a name="-makedev"><strong>makedev</strong></a>(...)</dt><dd><tt><a href="#-makedev">makedev</a>(major, minor) -> device number<br>
-Composes a raw device number from the major and minor device numbers.</tt></dd></dl>
- <dl><dt><a name="-makedirs"><strong>makedirs</strong></a>(name, mode<font color="#909090">=511</font>)</dt><dd><tt><a href="#-makedirs">makedirs</a>(path [, mode=0777])<br>
- <br>
-Super-mkdir; create a leaf directory and all intermediate ones.<br>
-Works like mkdir, except that any intermediate path segment (not<br>
-just the rightmost) will be created if it does not exist. This is<br>
-recursive.</tt></dd></dl>
- <dl><dt><a name="-minor"><strong>minor</strong></a>(...)</dt><dd><tt><a href="#-minor">minor</a>(device) -> minor number<br>
-Extracts a device minor number from a raw device number.</tt></dd></dl>
- <dl><dt><a name="-mkdir"><strong>mkdir</strong></a>(...)</dt><dd><tt><a href="#-mkdir">mkdir</a>(path [, mode=0777])<br>
- <br>
-Create a directory.</tt></dd></dl>
- <dl><dt><a name="-mkfifo"><strong>mkfifo</strong></a>(...)</dt><dd><tt><a href="#-mkfifo">mkfifo</a>(filename [, mode=0666])<br>
- <br>
-Create a FIFO (a POSIX named pipe).</tt></dd></dl>
- <dl><dt><a name="-mknod"><strong>mknod</strong></a>(...)</dt><dd><tt><a href="#-mknod">mknod</a>(filename [, mode=0600, device])<br>
- <br>
-Create a filesystem node (file, device special file or named pipe)<br>
-named filename. mode specifies both the permissions to use and the<br>
-type of node to be created, being combined (bitwise OR) with one of<br>
-S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. For S_IFCHR and S_IFBLK,<br>
-device defines the newly created device special file (probably using<br>
-os.<a href="#-makedev">makedev</a>()), otherwise it is ignored.</tt></dd></dl>
- <dl><dt><a name="-nice"><strong>nice</strong></a>(...)</dt><dd><tt><a href="#-nice">nice</a>(inc) -> new_priority<br>
- <br>
-Decrease the priority of process by inc and return the new priority.</tt></dd></dl>
- <dl><dt><a name="-open"><strong>open</strong></a>(...)</dt><dd><tt><a href="#-open">open</a>(filename, flag [, mode=0777]) -> fd<br>
- <br>
-Open a file (for low level IO).</tt></dd></dl>
- <dl><dt><a name="-openpty"><strong>openpty</strong></a>(...)</dt><dd><tt><a href="#-openpty">openpty</a>() -> (master_fd, slave_fd)<br>
- <br>
-Open a pseudo-terminal, returning open fd's for both master and slave end.</tt></dd></dl>
- <dl><dt><a name="-pathconf"><strong>pathconf</strong></a>(...)</dt><dd><tt><a href="#-pathconf">pathconf</a>(path, name) -> integer<br>
- <br>
-Return the configuration limit name for the file or directory path.<br>
-If there is no limit, return -1.</tt></dd></dl>
- <dl><dt><a name="-pipe"><strong>pipe</strong></a>(...)</dt><dd><tt><a href="#-pipe">pipe</a>() -> (read_end, write_end)<br>
- <br>
-Create a pipe.</tt></dd></dl>
- <dl><dt><a name="-popen"><strong>popen</strong></a>(...)</dt><dd><tt><a href="#-popen">popen</a>(command [, mode='r' [, bufsize]]) -> pipe<br>
- <br>
-Open a pipe to/from a command returning a file <a href="__builtin__.html#object">object</a>.</tt></dd></dl>
- <dl><dt><a name="-popen2"><strong>popen2</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'<br>
-may be a sequence, in which case arguments will be passed directly to<br>
-the program without shell intervention (as with os.<a href="#-spawnv">spawnv</a>()). If 'cmd'<br>
-is a string it will be passed to the shell (as with os.<a href="#-system">system</a>()). If<br>
-'bufsize' is specified, it sets the buffer size for the I/O pipes. The<br>
-file objects (child_stdin, child_stdout) are returned.</tt></dd></dl>
- <dl><dt><a name="-popen3"><strong>popen3</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'<br>
-may be a sequence, in which case arguments will be passed directly to<br>
-the program without shell intervention (as with os.<a href="#-spawnv">spawnv</a>()). If 'cmd'<br>
-is a string it will be passed to the shell (as with os.<a href="#-system">system</a>()). If<br>
-'bufsize' is specified, it sets the buffer size for the I/O pipes. The<br>
-file objects (child_stdin, child_stdout, child_stderr) are returned.</tt></dd></dl>
- <dl><dt><a name="-popen4"><strong>popen4</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'<br>
-may be a sequence, in which case arguments will be passed directly to<br>
-the program without shell intervention (as with os.<a href="#-spawnv">spawnv</a>()). If 'cmd'<br>
-is a string it will be passed to the shell (as with os.<a href="#-system">system</a>()). If<br>
-'bufsize' is specified, it sets the buffer size for the I/O pipes. The<br>
-file objects (child_stdin, child_stdout_stderr) are returned.</tt></dd></dl>
- <dl><dt><a name="-putenv"><strong>putenv</strong></a>(...)</dt><dd><tt><a href="#-putenv">putenv</a>(key, value)<br>
- <br>
-Change or add an environment variable.</tt></dd></dl>
- <dl><dt><a name="-read"><strong>read</strong></a>(...)</dt><dd><tt><a href="#-read">read</a>(fd, buffersize) -> string<br>
- <br>
-Read a file descriptor.</tt></dd></dl>
- <dl><dt><a name="-readlink"><strong>readlink</strong></a>(...)</dt><dd><tt><a href="#-readlink">readlink</a>(path) -> path<br>
- <br>
-Return a string representing the path to which the symbolic link points.</tt></dd></dl>
- <dl><dt><a name="-remove"><strong>remove</strong></a>(...)</dt><dd><tt><a href="#-remove">remove</a>(path)<br>
- <br>
-Remove a file (same as <a href="#-unlink">unlink</a>(path)).</tt></dd></dl>
- <dl><dt><a name="-removedirs"><strong>removedirs</strong></a>(name)</dt><dd><tt><a href="#-removedirs">removedirs</a>(path)<br>
- <br>
-Super-rmdir; remove a leaf directory and all empty intermediate<br>
-ones. Works like rmdir except that, if the leaf directory is<br>
-successfully removed, directories corresponding to rightmost path<br>
-segments will be pruned away until either the whole path is<br>
-consumed or an <a href="#error">error</a> occurs. Errors during this latter phase are<br>
-ignored -- they generally mean that a directory was not empty.</tt></dd></dl>
- <dl><dt><a name="-rename"><strong>rename</strong></a>(...)</dt><dd><tt><a href="#-rename">rename</a>(old, new)<br>
- <br>
-Rename a file or directory.</tt></dd></dl>
- <dl><dt><a name="-renames"><strong>renames</strong></a>(old, new)</dt><dd><tt><a href="#-renames">renames</a>(old, new)<br>
- <br>
-Super-rename; create directories as necessary and delete any left<br>
-empty. Works like rename, except creation of any intermediate<br>
-directories needed to make the new pathname good is attempted<br>
-first. After the rename, directories corresponding to rightmost<br>
-path segments of the old name will be pruned way until either the<br>
-whole path is consumed or a nonempty directory is found.<br>
- <br>
-Note: this function can fail with the new directory structure made<br>
-if you lack permissions needed to unlink the leaf directory or<br>
-file.</tt></dd></dl>
- <dl><dt><a name="-rmdir"><strong>rmdir</strong></a>(...)</dt><dd><tt><a href="#-rmdir">rmdir</a>(path)<br>
- <br>
-Remove a directory.</tt></dd></dl>
- <dl><dt><a name="-setegid"><strong>setegid</strong></a>(...)</dt><dd><tt><a href="#-setegid">setegid</a>(gid)<br>
- <br>
-Set the current process's effective group id.</tt></dd></dl>
- <dl><dt><a name="-seteuid"><strong>seteuid</strong></a>(...)</dt><dd><tt><a href="#-seteuid">seteuid</a>(uid)<br>
- <br>
-Set the current process's effective user id.</tt></dd></dl>
- <dl><dt><a name="-setgid"><strong>setgid</strong></a>(...)</dt><dd><tt><a href="#-setgid">setgid</a>(gid)<br>
- <br>
-Set the current process's group id.</tt></dd></dl>
- <dl><dt><a name="-setgroups"><strong>setgroups</strong></a>(...)</dt><dd><tt><a href="#-setgroups">setgroups</a>(list)<br>
- <br>
-Set the groups of the current process to list.</tt></dd></dl>
- <dl><dt><a name="-setpgid"><strong>setpgid</strong></a>(...)</dt><dd><tt><a href="#-setpgid">setpgid</a>(pid, pgrp)<br>
- <br>
-Call the system call <a href="#-setpgid">setpgid</a>().</tt></dd></dl>
- <dl><dt><a name="-setpgrp"><strong>setpgrp</strong></a>(...)</dt><dd><tt><a href="#-setpgrp">setpgrp</a>()<br>
- <br>
-Make this process a session leader.</tt></dd></dl>
- <dl><dt><a name="-setregid"><strong>setregid</strong></a>(...)</dt><dd><tt><a href="#-setregid">setregid</a>(rgid, egid)<br>
- <br>
-Set the current process's real and effective group ids.</tt></dd></dl>
- <dl><dt><a name="-setreuid"><strong>setreuid</strong></a>(...)</dt><dd><tt><a href="#-setreuid">setreuid</a>(ruid, euid)<br>
- <br>
-Set the current process's real and effective user ids.</tt></dd></dl>
- <dl><dt><a name="-setsid"><strong>setsid</strong></a>(...)</dt><dd><tt><a href="#-setsid">setsid</a>()<br>
- <br>
-Call the system call <a href="#-setsid">setsid</a>().</tt></dd></dl>
- <dl><dt><a name="-setuid"><strong>setuid</strong></a>(...)</dt><dd><tt><a href="#-setuid">setuid</a>(uid)<br>
- <br>
-Set the current process's user id.</tt></dd></dl>
- <dl><dt><a name="-spawnl"><strong>spawnl</strong></a>(mode, file, *args)</dt><dd><tt><a href="#-spawnl">spawnl</a>(mode, file, *args) -> integer<br>
- <br>
-Execute file with arguments from args in a subprocess.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnle"><strong>spawnle</strong></a>(mode, file, *args)</dt><dd><tt><a href="#-spawnle">spawnle</a>(mode, file, *args, env) -> integer<br>
- <br>
-Execute file with arguments from args in a subprocess with the<br>
-supplied environment.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnlp"><strong>spawnlp</strong></a>(mode, file, *args)</dt><dd><tt><a href="#-spawnlp">spawnlp</a>(mode, file, *args) -> integer<br>
- <br>
-Execute file (which is looked for along $PATH) with arguments from<br>
-args in a subprocess with the supplied environment.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnlpe"><strong>spawnlpe</strong></a>(mode, file, *args)</dt><dd><tt><a href="#-spawnlpe">spawnlpe</a>(mode, file, *args, env) -> integer<br>
- <br>
-Execute file (which is looked for along $PATH) with arguments from<br>
-args in a subprocess with the supplied environment.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnv"><strong>spawnv</strong></a>(mode, file, args)</dt><dd><tt><a href="#-spawnv">spawnv</a>(mode, file, args) -> integer<br>
- <br>
-Execute file with arguments from args in a subprocess.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnve"><strong>spawnve</strong></a>(mode, file, args, env)</dt><dd><tt><a href="#-spawnve">spawnve</a>(mode, file, args, env) -> integer<br>
- <br>
-Execute file with arguments from args in a subprocess with the<br>
-specified environment.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnvp"><strong>spawnvp</strong></a>(mode, file, args)</dt><dd><tt><a href="#-spawnvp">spawnvp</a>(mode, file, args) -> integer<br>
- <br>
-Execute file (which is looked for along $PATH) with arguments from<br>
-args in a subprocess.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-spawnvpe"><strong>spawnvpe</strong></a>(mode, file, args, env)</dt><dd><tt><a href="#-spawnvpe">spawnvpe</a>(mode, file, args, env) -> integer<br>
- <br>
-Execute file (which is looked for along $PATH) with arguments from<br>
-args in a subprocess with the supplied environment.<br>
-If mode == P_NOWAIT return the pid of the process.<br>
-If mode == P_WAIT return the process's exit code if it exits normally;<br>
-otherwise return -SIG, where SIG is the signal that killed it.</tt></dd></dl>
- <dl><dt><a name="-stat"><strong>stat</strong></a>(...)</dt><dd><tt><a href="#-stat">stat</a>(path) -> stat result<br>
- <br>
-Perform a stat system call on the given path.</tt></dd></dl>
- <dl><dt><a name="-stat_float_times"><strong>stat_float_times</strong></a>(...)</dt><dd><tt><a href="#-stat_float_times">stat_float_times</a>([newval]) -> oldval<br>
- <br>
-Determine whether os.[lf]stat represents time stamps as float objects.<br>
-If newval is True, future calls to <a href="#-stat">stat</a>() return floats, if it is False,<br>
-future calls return ints. <br>
-If newval is omitted, return the current setting.</tt></dd></dl>
- <dl><dt><a name="-statvfs"><strong>statvfs</strong></a>(...)</dt><dd><tt><a href="#-statvfs">statvfs</a>(path) -> statvfs result<br>
- <br>
-Perform a statvfs system call on the given path.</tt></dd></dl>
- <dl><dt><a name="-strerror"><strong>strerror</strong></a>(...)</dt><dd><tt><a href="#-strerror">strerror</a>(code) -> string<br>
- <br>
-Translate an <a href="#error">error</a> code to a message string.</tt></dd></dl>
- <dl><dt><a name="-symlink"><strong>symlink</strong></a>(...)</dt><dd><tt><a href="#-symlink">symlink</a>(src, dst)<br>
- <br>
-Create a symbolic link pointing to src named dst.</tt></dd></dl>
- <dl><dt><a name="-sysconf"><strong>sysconf</strong></a>(...)</dt><dd><tt><a href="#-sysconf">sysconf</a>(name) -> integer<br>
- <br>
-Return an integer-valued system configuration variable.</tt></dd></dl>
- <dl><dt><a name="-system"><strong>system</strong></a>(...)</dt><dd><tt><a href="#-system">system</a>(command) -> exit_status<br>
- <br>
-Execute the command (a string) in a subshell.</tt></dd></dl>
- <dl><dt><a name="-tcgetpgrp"><strong>tcgetpgrp</strong></a>(...)</dt><dd><tt><a href="#-tcgetpgrp">tcgetpgrp</a>(fd) -> pgid<br>
- <br>
-Return the process group associated with the terminal given by a fd.</tt></dd></dl>
- <dl><dt><a name="-tcsetpgrp"><strong>tcsetpgrp</strong></a>(...)</dt><dd><tt><a href="#-tcsetpgrp">tcsetpgrp</a>(fd, pgid)<br>
- <br>
-Set the process group associated with the terminal given by a fd.</tt></dd></dl>
- <dl><dt><a name="-tempnam"><strong>tempnam</strong></a>(...)</dt><dd><tt><a href="#-tempnam">tempnam</a>([dir[, prefix]]) -> string<br>
- <br>
-Return a unique name for a temporary file.<br>
-The directory and a prefix may be specified as strings; they may be omitted<br>
-or None if not needed.</tt></dd></dl>
- <dl><dt><a name="-times"><strong>times</strong></a>(...)</dt><dd><tt><a href="#-times">times</a>() -> (utime, stime, cutime, cstime, elapsed_time)<br>
- <br>
-Return a tuple of floating point numbers indicating process times.</tt></dd></dl>
- <dl><dt><a name="-tmpfile"><strong>tmpfile</strong></a>(...)</dt><dd><tt><a href="#-tmpfile">tmpfile</a>() -> file <a href="__builtin__.html#object">object</a><br>
- <br>
-Create a temporary file with no directory entries.</tt></dd></dl>
- <dl><dt><a name="-tmpnam"><strong>tmpnam</strong></a>(...)</dt><dd><tt><a href="#-tmpnam">tmpnam</a>() -> string<br>
- <br>
-Return a unique name for a temporary file.</tt></dd></dl>
- <dl><dt><a name="-ttyname"><strong>ttyname</strong></a>(...)</dt><dd><tt><a href="#-ttyname">ttyname</a>(fd) -> string<br>
- <br>
-Return the name of the terminal device connected to 'fd'.</tt></dd></dl>
- <dl><dt><a name="-umask"><strong>umask</strong></a>(...)</dt><dd><tt><a href="#-umask">umask</a>(new_mask) -> old_mask<br>
- <br>
-Set the current numeric umask and return the previous umask.</tt></dd></dl>
- <dl><dt><a name="-uname"><strong>uname</strong></a>(...)</dt><dd><tt><a href="#-uname">uname</a>() -> (sysname, nodename, release, version, machine)<br>
- <br>
-Return a tuple identifying the current operating system.</tt></dd></dl>
- <dl><dt><a name="-unlink"><strong>unlink</strong></a>(...)</dt><dd><tt><a href="#-unlink">unlink</a>(path)<br>
- <br>
-Remove a file (same as <a href="#-remove">remove</a>(path)).</tt></dd></dl>
- <dl><dt><a name="-unsetenv"><strong>unsetenv</strong></a>(...)</dt><dd><tt><a href="#-unsetenv">unsetenv</a>(key)<br>
- <br>
-Delete an environment variable.</tt></dd></dl>
- <dl><dt><a name="-utime"><strong>utime</strong></a>(...)</dt><dd><tt><a href="#-utime">utime</a>(path, (atime, mtime))<br>
-<a href="#-utime">utime</a>(path, None)<br>
- <br>
-Set the access and modified time of the file to the given values. If the<br>
-second form is used, set the access and modified times to the current time.</tt></dd></dl>
- <dl><dt><a name="-wait"><strong>wait</strong></a>(...)</dt><dd><tt><a href="#-wait">wait</a>() -> (pid, status)<br>
- <br>
-Wait for completion of a child process.</tt></dd></dl>
- <dl><dt><a name="-wait3"><strong>wait3</strong></a>(...)</dt><dd><tt><a href="#-wait3">wait3</a>(options) -> (pid, status, rusage)<br>
- <br>
-Wait for completion of a child process.</tt></dd></dl>
- <dl><dt><a name="-wait4"><strong>wait4</strong></a>(...)</dt><dd><tt><a href="#-wait4">wait4</a>(pid, options) -> (pid, status, rusage)<br>
- <br>
-Wait for completion of a given child process.</tt></dd></dl>
- <dl><dt><a name="-waitpid"><strong>waitpid</strong></a>(...)</dt><dd><tt><a href="#-waitpid">waitpid</a>(pid, options) -> (pid, status)<br>
- <br>
-Wait for completion of a given child process.</tt></dd></dl>
- <dl><dt><a name="-walk"><strong>walk</strong></a>(top, topdown<font color="#909090">=True</font>, onerror<font color="#909090">=None</font>, followlinks<font color="#909090">=False</font>)</dt><dd><tt>Directory tree generator.<br>
- <br>
-For each directory in the directory tree rooted at top (including top<br>
-itself, but excluding '.' and '..'), yields a 3-tuple<br>
- <br>
- dirpath, dirnames, filenames<br>
- <br>
-dirpath is a string, the path to the directory. dirnames is a list of<br>
-the names of the subdirectories in dirpath (excluding '.' and '..').<br>
-filenames is a list of the names of the non-directory files in dirpath.<br>
-Note that the names in the lists are just names, with no path components.<br>
-To get a full path (which begins with top) to a file or directory in<br>
-dirpath, do os.path.join(dirpath, name).<br>
- <br>
-If optional arg 'topdown' is true or not specified, the triple for a<br>
-directory is generated before the triples for any of its subdirectories<br>
-(directories are generated top down). If topdown is false, the triple<br>
-for a directory is generated after the triples for all of its<br>
-subdirectories (directories are generated bottom up).<br>
- <br>
-When topdown is true, the caller can modify the dirnames list in-place<br>
-(e.g., via del or slice assignment), and walk will only recurse into the<br>
-subdirectories whose names remain in dirnames; this can be used to prune<br>
-the search, or to impose a specific order of visiting. Modifying<br>
-dirnames when topdown is false is ineffective, since the directories in<br>
-dirnames have already been generated by the time dirnames itself is<br>
-generated.<br>
- <br>
-By default errors from the os.<a href="#-listdir">listdir</a>() call are ignored. If<br>
-optional arg 'onerror' is specified, it should be a function; it<br>
-will be called with one argument, an os.<a href="#error">error</a> instance. It can<br>
-report the <a href="#error">error</a> to continue with the walk, or raise the exception<br>
-to abort the walk. Note that the filename is available as the<br>
-filename attribute of the exception <a href="__builtin__.html#object">object</a>.<br>
- <br>
-By default, os.walk does not follow symbolic links to subdirectories on<br>
-systems that support them. In order to get this functionality, set the<br>
-optional argument 'followlinks' to true.<br>
- <br>
-Caution: if you pass a relative pathname for top, don't change the<br>
-current working directory between resumptions of walk. walk never<br>
-changes the current directory, and assumes that the client doesn't<br>
-either.<br>
- <br>
-Example:<br>
- <br>
-import os<br>
-from os.path import join, getsize<br>
-for root, dirs, files in os.<a href="#-walk">walk</a>('python/Lib/email'):<br>
- print root, "consumes",<br>
- print sum([getsize(join(root, name)) for name in files]),<br>
- print "bytes in", len(files), "non-directory files"<br>
- if 'CVS' in dirs:<br>
- dirs.<a href="#-remove">remove</a>('CVS') # don't visit CVS directories</tt></dd></dl>
- <dl><dt><a name="-write"><strong>write</strong></a>(...)</dt><dd><tt><a href="#-write">write</a>(fd, string) -> byteswritten<br>
- <br>
-Write a string to a file descriptor.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>EX_CANTCREAT</strong> = 73<br>
-<strong>EX_CONFIG</strong> = 78<br>
-<strong>EX_DATAERR</strong> = 65<br>
-<strong>EX_IOERR</strong> = 74<br>
-<strong>EX_NOHOST</strong> = 68<br>
-<strong>EX_NOINPUT</strong> = 66<br>
-<strong>EX_NOPERM</strong> = 77<br>
-<strong>EX_NOUSER</strong> = 67<br>
-<strong>EX_OK</strong> = 0<br>
-<strong>EX_OSERR</strong> = 71<br>
-<strong>EX_OSFILE</strong> = 72<br>
-<strong>EX_PROTOCOL</strong> = 76<br>
-<strong>EX_SOFTWARE</strong> = 70<br>
-<strong>EX_TEMPFAIL</strong> = 75<br>
-<strong>EX_UNAVAILABLE</strong> = 69<br>
-<strong>EX_USAGE</strong> = 64<br>
-<strong>F_OK</strong> = 0<br>
-<strong>NGROUPS_MAX</strong> = 65536<br>
-<strong>O_APPEND</strong> = 1024<br>
-<strong>O_ASYNC</strong> = 8192<br>
-<strong>O_CREAT</strong> = 64<br>
-<strong>O_DIRECT</strong> = 16384<br>
-<strong>O_DIRECTORY</strong> = 65536<br>
-<strong>O_DSYNC</strong> = 4096<br>
-<strong>O_EXCL</strong> = 128<br>
-<strong>O_LARGEFILE</strong> = 0<br>
-<strong>O_NDELAY</strong> = 2048<br>
-<strong>O_NOATIME</strong> = 262144<br>
-<strong>O_NOCTTY</strong> = 256<br>
-<strong>O_NOFOLLOW</strong> = 131072<br>
-<strong>O_NONBLOCK</strong> = 2048<br>
-<strong>O_RDONLY</strong> = 0<br>
-<strong>O_RDWR</strong> = 2<br>
-<strong>O_RSYNC</strong> = 4096<br>
-<strong>O_SYNC</strong> = 4096<br>
-<strong>O_TRUNC</strong> = 512<br>
-<strong>O_WRONLY</strong> = 1<br>
-<strong>R_OK</strong> = 4<br>
-<strong>SEEK_CUR</strong> = 1<br>
-<strong>SEEK_END</strong> = 2<br>
-<strong>SEEK_SET</strong> = 0<br>
-<strong>TMP_MAX</strong> = 238328<br>
-<strong>WCONTINUED</strong> = 8<br>
-<strong>WNOHANG</strong> = 1<br>
-<strong>WUNTRACED</strong> = 2<br>
-<strong>W_OK</strong> = 2<br>
-<strong>X_OK</strong> = 1<br>
-<strong>__all__</strong> = ['altsep', 'curdir', 'pardir', 'sep', 'extsep', 'pathsep', 'linesep', 'defpath', 'name', 'path', 'devnull', 'SEEK_SET', 'SEEK_CUR', 'SEEK_END', 'EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', ...]<br>
-<strong>altsep</strong> = None<br>
-<strong>confstr_names</strong> = {'CS_LFS64_CFLAGS': 1004, 'CS_LFS64_LDFLAGS': 1005, 'CS_LFS64_LIBS': 1006, 'CS_LFS64_LINTFLAGS': 1007, 'CS_LFS_CFLAGS': 1000, 'CS_LFS_LDFLAGS': 1001, 'CS_LFS_LIBS': 1002, 'CS_LFS_LINTFLAGS': 1003, 'CS_PATH': 0, 'CS_XBS5_ILP32_OFF32_CFLAGS': 1100, ...}<br>
-<strong>curdir</strong> = '.'<br>
-<strong>defpath</strong> = ':/bin:/usr/bin'<br>
-<strong>devnull</strong> = '/dev/null'<br>
-<strong>environ</strong> = {'PROMPT_COMMAND': 'echo -ne "\\033]0;${USER}@${...L': '/var/spool/mail/hut', 'OLDPWD': '/home/hut'}<br>
-<strong>extsep</strong> = '.'<br>
-<strong>linesep</strong> = '<font color="#c040c0">\n</font>'<br>
-<strong>name</strong> = 'posix'<br>
-<strong>pardir</strong> = '..'<br>
-<strong>pathconf_names</strong> = {'PC_ASYNC_IO': 10, 'PC_CHOWN_RESTRICTED': 6, 'PC_FILESIZEBITS': 13, 'PC_LINK_MAX': 0, 'PC_MAX_CANON': 1, 'PC_MAX_INPUT': 2, 'PC_NAME_MAX': 3, 'PC_NO_TRUNC': 7, 'PC_PATH_MAX': 4, 'PC_PIPE_BUF': 5, ...}<br>
-<strong>pathsep</strong> = ':'<br>
-<strong>sep</strong> = '/'<br>
-<strong>sysconf_names</strong> = {'SC_2_CHAR_TERM': 95, 'SC_2_C_BIND': 47, 'SC_2_C_DEV': 48, 'SC_2_C_VERSION': 96, 'SC_2_FORT_DEV': 49, 'SC_2_FORT_RUN': 50, 'SC_2_LOCALEDEF': 52, 'SC_2_SW_DEV': 51, 'SC_2_UPE': 97, 'SC_2_VERSION': 46, ...}</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/os.path.html b/doc/pydoc/os.path.html
deleted file mode 100644
index f62cddae..00000000
--- a/doc/pydoc/os.path.html
+++ /dev/null
@@ -1,108 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module posixpath</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>posixpath</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python2.6/posixpath.py">/usr/lib/python2.6/posixpath.py</a><br><a href="http://docs.python.org/library/posixpath">Module Docs</a></font></td></tr></table>
- <p><tt>Common operations on Posix pathnames.<br>
- <br>
-Instead of importing this module directly, import os and refer to<br>
-this module as os.path. The "os.path" name is an alias for this<br>
-module on Posix systems; on other systems (e.g. Mac, Windows),<br>
-os.path provides the same operations in a manner specific to that<br>
-platform, and is an alias to another module (e.g. macpath, ntpath).<br>
- <br>
-Some of this can actually be useful on non-Posix systems too, e.g.<br>
-for manipulation of the pathname component of URLs.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="genericpath.html">genericpath</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="stat.html">stat</a><br>
-</td><td width="25%" valign=top><a href="warnings.html">warnings</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-abspath"><strong>abspath</strong></a>(path)</dt><dd><tt>Return an absolute path.</tt></dd></dl>
- <dl><dt><a name="-basename"><strong>basename</strong></a>(p)</dt><dd><tt>Returns the final component of a pathname</tt></dd></dl>
- <dl><dt><a name="-commonprefix"><strong>commonprefix</strong></a>(m)</dt><dd><tt>Given a list of pathnames, returns the longest common leading component</tt></dd></dl>
- <dl><dt><a name="-dirname"><strong>dirname</strong></a>(p)</dt><dd><tt>Returns the directory component of a pathname</tt></dd></dl>
- <dl><dt><a name="-exists"><strong>exists</strong></a>(path)</dt><dd><tt>Test whether a path exists. Returns False for broken symbolic links</tt></dd></dl>
- <dl><dt><a name="-expanduser"><strong>expanduser</strong></a>(path)</dt><dd><tt>Expand ~ and ~user constructions. If user or $HOME is unknown,<br>
-do nothing.</tt></dd></dl>
- <dl><dt><a name="-expandvars"><strong>expandvars</strong></a>(path)</dt><dd><tt>Expand shell variables of form $var and ${var}. Unknown variables<br>
-are left unchanged.</tt></dd></dl>
- <dl><dt><a name="-getatime"><strong>getatime</strong></a>(filename)</dt><dd><tt>Return the last access time of a file, reported by os.stat().</tt></dd></dl>
- <dl><dt><a name="-getctime"><strong>getctime</strong></a>(filename)</dt><dd><tt>Return the metadata change time of a file, reported by os.stat().</tt></dd></dl>
- <dl><dt><a name="-getmtime"><strong>getmtime</strong></a>(filename)</dt><dd><tt>Return the last modification time of a file, reported by os.stat().</tt></dd></dl>
- <dl><dt><a name="-getsize"><strong>getsize</strong></a>(filename)</dt><dd><tt>Return the size of a file, reported by os.stat().</tt></dd></dl>
- <dl><dt><a name="-isabs"><strong>isabs</strong></a>(s)</dt><dd><tt>Test whether a path is absolute</tt></dd></dl>
- <dl><dt><a name="-isdir"><strong>isdir</strong></a>(s)</dt><dd><tt>Return true if the pathname refers to an existing directory.</tt></dd></dl>
- <dl><dt><a name="-isfile"><strong>isfile</strong></a>(path)</dt><dd><tt>Test whether a path is a regular file</tt></dd></dl>
- <dl><dt><a name="-islink"><strong>islink</strong></a>(path)</dt><dd><tt>Test whether a path is a symbolic link</tt></dd></dl>
- <dl><dt><a name="-ismount"><strong>ismount</strong></a>(path)</dt><dd><tt>Test whether a path is a mount point</tt></dd></dl>
- <dl><dt><a name="-join"><strong>join</strong></a>(a, *p)</dt><dd><tt>Join two or more pathname components, inserting '/' as needed.<br>
-If any component is an absolute path, all previous path components<br>
-will be discarded.</tt></dd></dl>
- <dl><dt><a name="-lexists"><strong>lexists</strong></a>(path)</dt><dd><tt>Test whether a path exists. Returns True for broken symbolic links</tt></dd></dl>
- <dl><dt><a name="-normcase"><strong>normcase</strong></a>(s)</dt><dd><tt>Normalize case of pathname. Has no effect under Posix</tt></dd></dl>
- <dl><dt><a name="-normpath"><strong>normpath</strong></a>(path)</dt><dd><tt>Normalize path, eliminating double slashes, etc.</tt></dd></dl>
- <dl><dt><a name="-realpath"><strong>realpath</strong></a>(filename)</dt><dd><tt>Return the canonical path of the specified filename, eliminating any<br>
-symbolic links encountered in the path.</tt></dd></dl>
- <dl><dt><a name="-relpath"><strong>relpath</strong></a>(path, start<font color="#909090">='.'</font>)</dt><dd><tt>Return a relative version of a path</tt></dd></dl>
- <dl><dt><a name="-samefile"><strong>samefile</strong></a>(f1, f2)</dt><dd><tt>Test whether two pathnames reference the same actual file</tt></dd></dl>
- <dl><dt><a name="-sameopenfile"><strong>sameopenfile</strong></a>(fp1, fp2)</dt><dd><tt>Test whether two open file objects reference the same file</tt></dd></dl>
- <dl><dt><a name="-samestat"><strong>samestat</strong></a>(s1, s2)</dt><dd><tt>Test whether two stat buffers reference the same file</tt></dd></dl>
- <dl><dt><a name="-split"><strong>split</strong></a>(p)</dt><dd><tt>Split a pathname. Returns tuple "(head, tail)" where "tail" is<br>
-everything after the final slash. Either part may be empty.</tt></dd></dl>
- <dl><dt><a name="-splitdrive"><strong>splitdrive</strong></a>(p)</dt><dd><tt>Split a pathname into drive and path. On Posix, drive is always<br>
-empty.</tt></dd></dl>
- <dl><dt><a name="-splitext"><strong>splitext</strong></a>(p)</dt><dd><tt>Split the extension from a pathname.<br>
- <br>
-Extension is everything from the last dot to the end, ignoring<br>
-leading dots. Returns "(root, ext)"; ext may be empty.</tt></dd></dl>
- <dl><dt><a name="-walk"><strong>walk</strong></a>(top, func, arg)</dt><dd><tt>Directory tree walk with callback function.<br>
- <br>
-For each directory in the directory tree rooted at top (including top<br>
-itself, but excluding '.' and '..'), call func(arg, dirname, fnames).<br>
-dirname is the name of the directory, and fnames a list of the names of<br>
-the files and subdirectories in dirname (excluding '.' and '..'). func<br>
-may modify the fnames list in-place (e.g. via del or slice assignment),<br>
-and walk will only recurse into the subdirectories whose names remain in<br>
-fnames; this can be used to implement a filter, or to impose a specific<br>
-order of visiting. No semantics are defined for, or required of, arg,<br>
-beyond that arg is always passed to func. It can be used, e.g., to pass<br>
-a filename pattern, or a mutable object designed to accumulate<br>
-statistics. Passing None for arg is common.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__all__</strong> = ['normcase', 'isabs', 'join', 'splitdrive', 'split', 'splitext', 'basename', 'dirname', 'commonprefix', 'getsize', 'getmtime', 'getatime', 'getctime', 'islink', 'exists', 'lexists', 'isdir', 'isfile', 'ismount', 'walk', ...]<br>
-<strong>altsep</strong> = None<br>
-<strong>curdir</strong> = '.'<br>
-<strong>defpath</strong> = ':/bin:/usr/bin'<br>
-<strong>devnull</strong> = '/dev/null'<br>
-<strong>extsep</strong> = '.'<br>
-<strong>pardir</strong> = '..'<br>
-<strong>pathsep</strong> = ':'<br>
-<strong>sep</strong> = '/'<br>
-<strong>supports_unicode_filenames</strong> = False</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.__main__.html b/doc/pydoc/ranger.__main__.html
index 76b66476..a0ec1557 100644
--- a/doc/pydoc/ranger.__main__.html
+++ b/doc/pydoc/ranger.__main__.html
@@ -11,19 +11,20 @@
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/__main__.py">/home/hut/ranger/ranger/__main__.py</a></font></td></tr></table>
<p><tt># coding=utf-8<br>
#<br>
-# Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -41,5 +42,6 @@
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt><a name="-main"><strong>main</strong></a>()</dt><dd><tt>initialize objects and run the filemanager</tt></dd></dl>
+ <dl><dt><a name="-parse_arguments"><strong>parse_arguments</strong></a>()</dt><dd><tt>Parse the program arguments</tt></dd></dl>
</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.actions.html b/doc/pydoc/ranger.actions.html
deleted file mode 100644
index 761d2299..00000000
--- a/doc/pydoc/ranger.actions.html
+++ /dev/null
@@ -1,192 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.actions</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.actions</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/actions.py">/home/hut/ranger/ranger/actions.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.widgets.console_mode.html">ranger.gui.widgets.console_mode</a><br>
-<a href="ranger.fsobject.html">ranger.fsobject</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-<a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top><a href="shutil.html">shutil</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.actions.html#Actions">Actions</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.actions.html#Actions">Actions</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Actions">class <strong>Actions</strong></a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)</font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.actions.html#Actions">Actions</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Actions-cd"><strong>cd</strong></a>(self, path, remember<font color="#909090">=True</font>)</dt><dd><tt>enter the directory at the given path, remember=True</tt></dd></dl>
-
-<dl><dt><a name="Actions-copy"><strong>copy</strong></a>(self)</dt><dd><tt>Copy the selected items</tt></dd></dl>
-
-<dl><dt><a name="Actions-cut"><strong>cut</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-delete"><strong>delete</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-display_command_help"><strong>display_command_help</strong></a>(self, console_widget)</dt></dl>
-
-<dl><dt><a name="Actions-display_file"><strong>display_file</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-display_help"><strong>display_help</strong></a>(self, topic<font color="#909090">='index'</font>, narg<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Actions-display_log"><strong>display_log</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-edit_file"><strong>edit_file</strong></a>(self, file<font color="#909090">=None</font>)</dt><dd><tt>Calls execute_file with the current file and app='editor'</tt></dd></dl>
-
-<dl><dt><a name="Actions-enter_bookmark"><strong>enter_bookmark</strong></a>(self, key)</dt><dd><tt>Enter the bookmark with the name <key></tt></dd></dl>
-
-<dl><dt><a name="Actions-enter_dir"><strong>enter_dir</strong></a>(self, path, remember<font color="#909090">=False</font>)</dt><dd><tt>Enter the directory at the given path</tt></dd></dl>
-
-<dl><dt><a name="Actions-execute_command"><strong>execute_command</strong></a>(self, cmd, **kw)</dt></dl>
-
-<dl><dt><a name="Actions-execute_file"><strong>execute_file</strong></a>(self, files, **kw)</dt><dd><tt>Execute a file.<br>
-app is the name of a method in Applications, without the "app_"<br>
-flags is a string consisting of runner.ALLOWED_FLAGS<br>
-mode is a positive integer.<br>
-Both flags and mode specify how the program is run.</tt></dd></dl>
-
-<dl><dt><a name="Actions-exit"><strong>exit</strong></a>(self)</dt><dd><tt>Exit the program</tt></dd></dl>
-
-<dl><dt><a name="Actions-force_load_preview"><strong>force_load_preview</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-handle_mouse"><strong>handle_mouse</strong></a>(self)</dt><dd><tt>Handle mouse-buttons if one was pressed</tt></dd></dl>
-
-<dl><dt><a name="Actions-history_go"><strong>history_go</strong></a>(self, relative)</dt><dd><tt>Move back and forth in the history</tt></dd></dl>
-
-<dl><dt><a name="Actions-mark"><strong>mark</strong></a>(self, all<font color="#909090">=False</font>, toggle<font color="#909090">=False</font>, val<font color="#909090">=None</font>, movedown<font color="#909090">=None</font>, narg<font color="#909090">=1</font>)</dt><dd><tt>A wrapper for the directory.mark_xyz functions.<br>
- <br>
-Arguments:<br>
-all - change all files of the current directory at once?<br>
-toggle - toggle the marked-status?<br>
-val - mark or unmark?</tt></dd></dl>
-
-<dl><dt><a name="Actions-mkdir"><strong>mkdir</strong></a>(self, name)</dt></dl>
-
-<dl><dt><a name="Actions-move_left"><strong>move_left</strong></a>(self, narg<font color="#909090">=1</font>)</dt><dd><tt>Enter the parent directory</tt></dd></dl>
-
-<dl><dt><a name="Actions-move_pointer"><strong>move_pointer</strong></a>(self, relative<font color="#909090">=0</font>, absolute<font color="#909090">=None</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Move the pointer down by <relative> or to <absolute></tt></dd></dl>
-
-<dl><dt><a name="Actions-move_pointer_by_pages"><strong>move_pointer_by_pages</strong></a>(self, relative)</dt><dd><tt>Move the pointer down by <relative> pages</tt></dd></dl>
-
-<dl><dt><a name="Actions-move_pointer_by_percentage"><strong>move_pointer_by_percentage</strong></a>(self, relative<font color="#909090">=0</font>, absolute<font color="#909090">=None</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Move the pointer down by <relative>% or to <absolute>%</tt></dd></dl>
-
-<dl><dt><a name="Actions-move_right"><strong>move_right</strong></a>(self, mode<font color="#909090">=0</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Enter the current directory or execute the current file</tt></dd></dl>
-
-<dl><dt><a name="Actions-notify"><strong>notify</strong></a>(self, text, duration<font color="#909090">=4</font>, bad<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="Actions-open_console"><strong>open_console</strong></a>(self, mode<font color="#909090">=':'</font>, string<font color="#909090">=''</font>)</dt><dd><tt>Open the console if the current UI supports that</tt></dd></dl>
-
-<dl><dt><a name="Actions-paste"><strong>paste</strong></a>(self, overwrite<font color="#909090">=False</font>)</dt><dd><tt>Paste the selected items into the current directory</tt></dd></dl>
-
-<dl><dt><a name="Actions-paste_symlink"><strong>paste_symlink</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-redraw_window"><strong>redraw_window</strong></a>(self)</dt><dd><tt>Redraw the window</tt></dd></dl>
-
-<dl><dt><a name="Actions-reload_cwd"><strong>reload_cwd</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Actions-rename"><strong>rename</strong></a>(self, src, dest)</dt></dl>
-
-<dl><dt><a name="Actions-reset"><strong>reset</strong></a>(self)</dt><dd><tt>Reset the filemanager, clearing the directory buffer</tt></dd></dl>
-
-<dl><dt><a name="Actions-resize"><strong>resize</strong></a>(self)</dt><dd><tt>Update the size of the UI</tt></dd></dl>
-
-<dl><dt><a name="Actions-scroll"><strong>scroll</strong></a>(self, relative)</dt><dd><tt>Scroll down by <relative> lines</tt></dd></dl>
-
-<dl><dt><a name="Actions-search"><strong>search</strong></a>(self, order<font color="#909090">=None</font>, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="Actions-set_bookmark"><strong>set_bookmark</strong></a>(self, key)</dt><dd><tt>Set the bookmark with the name <key> to the current directory</tt></dd></dl>
-
-<dl><dt><a name="Actions-set_filter"><strong>set_filter</strong></a>(self, fltr)</dt></dl>
-
-<dl><dt><a name="Actions-set_search_method"><strong>set_search_method</strong></a>(self, order, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="Actions-sort"><strong>sort</strong></a>(self, func<font color="#909090">=None</font>, reverse<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Actions-tag_remove"><strong>tag_remove</strong></a>(self, movedown<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Actions-tag_toggle"><strong>tag_toggle</strong></a>(self, movedown<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Actions-toggle_boolean_option"><strong>toggle_boolean_option</strong></a>(self, string)</dt><dd><tt>Toggle a boolean option named <string></tt></dd></dl>
-
-<dl><dt><a name="Actions-unset_bookmark"><strong>unset_bookmark</strong></a>(self, key)</dt><dd><tt>Delete the bookmark with the name <key></tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>search_forward</strong> = False</dl>
-
-<dl><dt><strong>search_method</strong> = 'ctime'</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.applications.html b/doc/pydoc/ranger.applications.html
deleted file mode 100644
index 29755773..00000000
--- a/doc/pydoc/ranger.applications.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.applications</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.applications</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/applications.pyc">/home/hut/ranger/ranger/applications.pyc</a></font></td></tr></table>
- <p><tt>This module provides helper functions/classes for ranger.defaults.apps.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.applications.html#Applications">Applications</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Applications">class <strong>Applications</strong></a>(<a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>This class contains definitions on how to run programs and should<br>
-be extended in ranger.defaults.apps<br>
- <br>
-The user can decide what program to run, and if he uses eg. 'vim', the<br>
-function app_vim() will be called. However, usually the user<br>
-simply wants to "start" the file without specific instructions.<br>
-In such a case, app_default() is called, where you should examine<br>
-the context and decide which program to use.<br>
- <br>
-All app functions have a name starting with app_ and return a string<br>
-containing the whole command or a tuple containing a list of the<br>
-arguments. They are supplied with one argument, which is the<br>
-AppContext instance.<br>
- <br>
-You should define at least app_default, app_pager and app_editor since<br>
-internal functions depend on those. Here are sample implementations:<br>
- <br>
-def app_default(self, context):<br>
- if context.file.media:<br>
- if context.file.video:<br>
- # detach videos from the filemanager<br>
- context.flags += 'd'<br>
- return app_mplayer(context)<br>
- else:<br>
- return app_editor(context)<br>
- <br>
-def app_pager(self, context):<br>
- return ('less', ) + tuple(context)<br>
- <br>
-def app_editor(self, context):<br>
- return ('vim', ) + tuple(context)<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.applications.html#Applications">Applications</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Applications-all"><strong>all</strong></a>(self)</dt><dd><tt>Returns a list with all application functions</tt></dd></dl>
-
-<dl><dt><a name="Applications-app_self"><strong>app_self</strong></a>(self, context)</dt><dd><tt>Run the file itself</tt></dd></dl>
-
-<dl><dt><a name="Applications-apply"><strong>apply</strong></a>(self, app, context)</dt></dl>
-
-<dl><dt><a name="Applications-either"><strong>either</strong></a>(self, context, *args)</dt></dl>
-
-<dl><dt><a name="Applications-get"><strong>get</strong></a>(self, app)</dt><dd><tt>Looks for an application, returns app_default if it doesn't exist</tt></dd></dl>
-
-<dl><dt><a name="Applications-has"><strong>has</strong></a>(self, app)</dt><dd><tt>Returns whether an application is defined</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-depends_on"><strong>depends_on</strong></a>(*args)</dt></dl>
- <dl><dt><a name="-tup"><strong>tup</strong></a>(*args)</dt><dd><tt>This helper function creates a tuple out of the arguments.<br>
- <br>
-('a', ) + tuple(some_iterator)<br>
-is equivalent to:<br>
-<a href="#-tup">tup</a>('a', *some_iterator)</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>PIPE</strong> = -1</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.default.html b/doc/pydoc/ranger.colorschemes.default.html
index 1acec09d..5c5dbcc9 100644
--- a/doc/pydoc/ranger.colorschemes.default.html
+++ b/doc/pydoc/ranger.colorschemes.default.html
@@ -1,27 +1,28 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module colorschemes.default</title>
+<html><head><title>Python: module ranger.colorschemes.default</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="colorschemes.html"><font color="#ffffff">colorschemes</font></a>.default</strong></big></big></font></td
+<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.default</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/.ranger/colorschemes/default.py">/home/hut/.ranger/colorschemes/default.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/default.py">/home/hut/ranger/ranger/colorschemes/default.py</a></font></td></tr></table>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -41,7 +42,7 @@
<dt><font face="helvetica, arial"><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
-<dt><font face="helvetica, arial"><a href="colorschemes.default.html#Default">Default</a>
+<dt><font face="helvetica, arial"><a href="ranger.colorschemes.default.html#Default">Default</a>
</font></dt></dl>
</dd>
</dl>
@@ -53,7 +54,7 @@
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="colorschemes.default.html#Default">Default</a></dd>
+<dd><a href="ranger.colorschemes.default.html#Default">Default</a></dd>
<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
diff --git a/doc/pydoc/ranger.colorschemes.html b/doc/pydoc/ranger.colorschemes.html
index 9b1d8c98..5dcb0f83 100644
--- a/doc/pydoc/ranger.colorschemes.html
+++ b/doc/pydoc/ranger.colorschemes.html
@@ -9,8 +9,7 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.colorschemes</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/__init__.py">/home/hut/ranger/ranger/colorschemes/__init__.py</a></font></td></tr></table>
- <p><tt>Colorschemes are required to be located here,<br>
-or in the CONFDIR/colorschemes/ directory</tt></p>
+ <p><tt>Colorschemes are required to be located here or in CONFDIR/colorschemes/</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -19,14 +18,9 @@ or in the CONFDIR/colorschemes/ directory</tt></p>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.colorschemes.default.html">default</a><br>
+<a href="ranger.colorschemes.default88.html">default88</a><br>
</td><td width="25%" valign=top><a href="ranger.colorschemes.jungle.html">jungle</a><br>
-</td><td width="25%" valign=top><a href="ranger.colorschemes.snow.html">snow</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__all__</strong> = ['jungle', 'default', 'snow']</td></tr></table>
+<a href="ranger.colorschemes.snow.html">snow</a><br>
+</td><td width="25%" valign=top><a href="ranger.colorschemes.texas.html">texas</a><br>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.jungle.html b/doc/pydoc/ranger.colorschemes.jungle.html
index 279379b3..41f1a80c 100644
--- a/doc/pydoc/ranger.colorschemes.jungle.html
+++ b/doc/pydoc/ranger.colorschemes.jungle.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.jungle</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/jungle.py">/home/hut/ranger/ranger/colorschemes/jungle.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -38,10 +39,10 @@
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
+<dt><font face="helvetica, arial"><a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a>(<a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>)
</font></dt><dd>
<dl>
-<dt><font face="helvetica, arial"><a href="ranger.colorschemes.jungle.html#Default">Default</a>
+<dt><font face="helvetica, arial"><a href="ranger.colorschemes.jungle.html#Scheme">Scheme</a>
</font></dt></dl>
</dd>
</dl>
@@ -49,28 +50,29 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Default">class <strong>Default</strong></a>(<a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="Scheme">class <strong>Scheme</strong></a>(<a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a>)</font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.colorschemes.jungle.html#Default">Default</a></dd>
+<dd><a href="ranger.colorschemes.jungle.html#Scheme">Scheme</a></dd>
+<dd><a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a></dd>
<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
-<dl><dt><a name="Default-use"><strong>use</strong></a>(self, context)</dt></dl>
+<dl><dt><a name="Scheme-use"><strong>use</strong></a>(self, context)</dt></dl>
<hr>
Methods inherited from <a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>:<br>
-<dl><dt><a name="Default-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+<dl><dt><a name="Scheme-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-<dl><dt><a name="Default-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns the (fg, bg, attr) for the given keys.<br>
+<dl><dt><a name="Scheme-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns the (fg, bg, attr) for the given keys.<br>
<br>
-Using this function rather than <a href="#Default-use">use</a>() will cache all<br>
+Using this function rather than <a href="#Scheme-use">use</a>() will cache all<br>
colors for faster access.</tt></dd></dl>
-<dl><dt><a name="Default-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns the curses attribute for the specified keys<br>
+<dl><dt><a name="Scheme-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns the curses attribute for the specified keys<br>
<br>
Ready to use for curses.setattr()</tt></dd></dl>
diff --git a/doc/pydoc/ranger.colorschemes.snow.html b/doc/pydoc/ranger.colorschemes.snow.html
index 275d2f95..b0e88d84 100644
--- a/doc/pydoc/ranger.colorschemes.snow.html
+++ b/doc/pydoc/ranger.colorschemes.snow.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.snow</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/snow.py">/home/hut/ranger/ranger/colorschemes/snow.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/ranger.commands.html b/doc/pydoc/ranger.commands.html
deleted file mode 100644
index 1238a19b..00000000
--- a/doc/pydoc/ranger.commands.html
+++ /dev/null
@@ -1,677 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.commands</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.commands</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/commands.py">/home/hut/ranger/ranger/commands.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.widgets.console_mode.html">ranger.gui.widgets.console_mode</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.commands.html#Command">Command</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.commands.html#cd">cd</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#chmod">chmod</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#delete">delete</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#edit">edit</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#filter">filter</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#find">find</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#grep">grep</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#mkdir">mkdir</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#quit">quit</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#rename">rename</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.commands.html#touch">touch</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Command">class <strong>Command</strong></a>(<a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Abstract command class<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Command-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="Command-execute"><strong>execute</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="Command-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="Command-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="cd">class <strong>cd</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#cd">cd</a> <dirname><br>
- <br>
-The <a href="#cd">cd</a> command changes the directory.<br>
-The command '<a href="#cd">cd</a> -' is equivalent to typing ``.<br>
- <br>
-In the quick console, the directory will be entered without the<br>
-need to press enter, as soon as there is one unambiguous match.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#cd">cd</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="cd-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="cd-quick_open"><strong>quick_open</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="cd-tab"><strong>tab</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="cd-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="chmod">class <strong>chmod</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#chmod">chmod</a> <octal number><br>
- <br>
-Sets the permissions of the selection to the octal number.<br>
- <br>
-The octal number is between 0 and 777. The digits specify the<br>
-permissions for the user, the group and others.<br>
- <br>
-A 1 permits execution, a 2 permits writing, a 4 permits reading.<br>
-Add those numbers to combine them. So a 7 permits everything.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#chmod">chmod</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="chmod-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="chmod-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="chmod-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="chmod-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="delete">class <strong>delete</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#delete">delete</a><br>
- <br>
-Tries to <a href="#delete">delete</a> the selection.<br>
- <br>
-"Selection" is defined as all the "marked files" (by default, you<br>
-can mark files with space or v). If there are no marked files,<br>
-use the "current file" (where the cursor is)<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#delete">delete</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="delete-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>allow_abbrev</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="delete-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="delete-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="delete-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="edit">class <strong>edit</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#edit">edit</a> <filename><br>
- <br>
-Opens the specified file in vim<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#edit">edit</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="edit-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="edit-tab"><strong>tab</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="edit-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="edit-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="filter">class <strong>filter</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#filter">filter</a> <string><br>
- <br>
-Displays only the files which contain <string> in their basename.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#filter">filter</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="filter-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="filter-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="filter-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="filter-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="find">class <strong>find</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#find">find</a> <string><br>
- <br>
-The <a href="#find">find</a> command will attempt to <a href="#find">find</a> a partial, case insensitive<br>
-match in the filenames of the current directory.<br>
- <br>
-In the quick command console, once there is one unambiguous match,<br>
-the file will be run automatically.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#find">find</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="find-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="find-quick_open"><strong>quick_open</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="find-tab"><strong>tab</strong></a> = _tab_directory_content(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>count</strong> = 0</dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="find-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="grep">class <strong>grep</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#grep">grep</a> <string><br>
- <br>
-Looks for a string in all marked files or directories<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#grep">grep</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="grep-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="grep-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="grep-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="grep-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="mkdir">class <strong>mkdir</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#mkdir">mkdir</a> <dirname><br>
- <br>
-Creates a directory with the name <dirname>.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#mkdir">mkdir</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="mkdir-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="mkdir-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="mkdir-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="mkdir-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="quit">class <strong>quit</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#quit">quit</a><br>
- <br>
-Quits the program immediately.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#quit">quit</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="quit-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="quit-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="quit-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="quit-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="rename">class <strong>rename</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#rename">rename</a> <newname><br>
- <br>
-Changes the name of the currently highlighted file to <newname><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#rename">rename</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="rename-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="rename-tab"><strong>tab</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="rename-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="rename-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="touch">class <strong>touch</strong></a>(<a href="ranger.commands.html#Command">Command</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>:<a href="#touch">touch</a> <fname><br>
- <br>
-Creates a file with the name <fname>.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.commands.html#touch">touch</a></dd>
-<dd><a href="ranger.commands.html#Command">Command</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="touch-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><a name="touch-__init__"><strong>__init__</strong></a>(self, line, mode)</dt></dl>
-
-<dl><dt><a name="touch-quick_open"><strong>quick_open</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<dl><dt><a name="touch-tab"><strong>tab</strong></a>(self)</dt><dd><tt>Override this</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.commands.html#Command">Command</a>:<br>
-<dl><dt><strong>allow_abbrev</strong> = True</dl>
-
-<dl><dt><strong>name</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-alias"><strong>alias</strong></a>(**kw)</dt><dd><tt>Create an alias for commands, eg: <a href="#-alias">alias</a>(<a href="#quit">quit</a>=exit)</tt></dd></dl>
- <dl><dt><a name="-command_generator"><strong>command_generator</strong></a>(start)</dt></dl>
- <dl><dt><a name="-get_command"><strong>get_command</strong></a>(name, abbrev<font color="#909090">=True</font>)</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>by_name</strong> = {'cd': <class 'ranger.commands.cd'>, 'chmod': <class 'ranger.commands.chmod'>, 'delete': <class 'ranger.commands.delete'>, 'edit': <class 'ranger.commands.edit'>, 'filter': <class 'ranger.commands.filter'>, 'find': <class 'ranger.commands.find'>, 'grep': <class 'ranger.commands.grep'>, 'mkdir': <class 'ranger.commands.mkdir'>, 'quit': <class 'ranger.commands.quit'>, 'rename': <class 'ranger.commands.rename'>, ...}</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.bookmarks.html b/doc/pydoc/ranger.container.bookmarks.html
index bf0bec97..2868a5ae 100644
--- a/doc/pydoc/ranger.container.bookmarks.html
+++ b/doc/pydoc/ranger.container.bookmarks.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.bookmarks</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/bookmarks.py">/home/hut/ranger/ranger/container/bookmarks.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -109,7 +110,7 @@ Data and other attributes defined here:<br>
<dl><dt><strong>last_mtime</strong> = None</dl>
-<dl><dt><strong>load_pattern</strong> = <_sre.SRE_Pattern object at 0xec7430></dl>
+<dl><dt><strong>load_pattern</strong> = <_sre.SRE_Pattern object></dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.container.commandlist.html b/doc/pydoc/ranger.container.commandlist.html
index 11f10162..6b17bb06 100644
--- a/doc/pydoc/ranger.container.commandlist.html
+++ b/doc/pydoc/ranger.container.commandlist.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.commandlist</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/commandlist.py">/home/hut/ranger/ranger/container/commandlist.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -140,6 +141,8 @@ Data descriptors defined here:<br>
for a given key combination. CommandLists must be filled before use.<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
+<dl><dt><a name="CommandList-__call__"><strong>__call__</strong></a>(self, *args, **keywords)</dt></dl>
+
<dl><dt><a name="CommandList-__getitem__"><strong>__getitem__</strong></a>(self, key)</dt><dd><tt>Returns the command with the given key combination</tt></dd></dl>
<dl><dt><a name="CommandList-__init__"><strong>__init__</strong></a>(self)</dt></dl>
diff --git a/doc/pydoc/ranger.container.environment.html b/doc/pydoc/ranger.container.environment.html
deleted file mode 100644
index 660ef0c6..00000000
--- a/doc/pydoc/ranger.container.environment.html
+++ /dev/null
@@ -1,130 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.container.environment</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.environment</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/environment.py">/home/hut/ranger/ranger/container/environment.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.environment.html#Environment">Environment</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Environment">class <strong>Environment</strong></a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A collection of data which is relevant for more than<br>
-one class.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.container.environment.html#Environment">Environment</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Environment-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
-
-<dl><dt><a name="Environment-assign_correct_cursor_positions"><strong>assign_correct_cursor_positions</strong></a>(self)</dt><dd><tt>Assign correct cursor positions for subdirectories</tt></dd></dl>
-
-<dl><dt><a name="Environment-at_level"><strong>at_level</strong></a>(self, level)</dt><dd><tt>Returns the FileSystemObject at the given level.<br>
-level 1 => preview<br>
-level 0 => current file/directory<br>
-level <0 => parent directories</tt></dd></dl>
-
-<dl><dt><a name="Environment-enter_dir"><strong>enter_dir</strong></a>(self, path, history<font color="#909090">=True</font>)</dt><dd><tt>Enter given path</tt></dd></dl>
-
-<dl><dt><a name="Environment-garbage_collect"><strong>garbage_collect</strong></a>(self)</dt><dd><tt>Delete unused directory objects</tt></dd></dl>
-
-<dl><dt><a name="Environment-get_directory"><strong>get_directory</strong></a>(self, path)</dt><dd><tt>Get the directory object at the given path</tt></dd></dl>
-
-<dl><dt><a name="Environment-get_free_space"><strong>get_free_space</strong></a>(self, path)</dt></dl>
-
-<dl><dt><a name="Environment-get_selection"><strong>get_selection</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Environment-history_go"><strong>history_go</strong></a>(self, relative)</dt><dd><tt>Move relative in history</tt></dd></dl>
-
-<dl><dt><a name="Environment-key_append"><strong>key_append</strong></a>(self, key)</dt><dd><tt>Append a key to the keybuffer</tt></dd></dl>
-
-<dl><dt><a name="Environment-key_clear"><strong>key_clear</strong></a>(self)</dt><dd><tt>Clear the keybuffer</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>cf</strong> = None</dl>
-
-<dl><dt><strong>cmd</strong> = None</dl>
-
-<dl><dt><strong>copy</strong> = None</dl>
-
-<dl><dt><strong>cut</strong> = None</dl>
-
-<dl><dt><strong>directories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>keybuffer</strong> = None</dl>
-
-<dl><dt><strong>last_search</strong> = None</dl>
-
-<dl><dt><strong>path</strong> = None</dl>
-
-<dl><dt><strong>pathway</strong> = None</dl>
-
-<dl><dt><strong>pwd</strong> = None</dl>
-
-<dl><dt><strong>termsize</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.history.html b/doc/pydoc/ranger.container.history.html
index 1e977b62..5a98f7ec 100644
--- a/doc/pydoc/ranger.container.history.html
+++ b/doc/pydoc/ranger.container.history.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.history</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/history.py">/home/hut/ranger/ranger/container/history.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -109,7 +110,7 @@ Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception<
<hr>
Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7033f40><dd><tt>T.<a href="#HistoryEmptyException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#HistoryEmptyException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
diff --git a/doc/pydoc/ranger.container.html b/doc/pydoc/ranger.container.html
index df13c170..2e464299 100644
--- a/doc/pydoc/ranger.container.html
+++ b/doc/pydoc/ranger.container.html
@@ -20,9 +20,8 @@ used to manage stored data</tt></p>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.container.bookmarks.html">bookmarks</a><br>
<a href="ranger.container.commandlist.html">commandlist</a><br>
-</td><td width="25%" valign=top><a href="ranger.container.environment.html">environment</a><br>
-<a href="ranger.container.history.html">history</a><br>
-</td><td width="25%" valign=top><a href="ranger.container.keybuffer.html">keybuffer</a><br>
-<a href="ranger.container.tags.html">tags</a><br>
+</td><td width="25%" valign=top><a href="ranger.container.history.html">history</a><br>
+<a href="ranger.container.keybuffer.html">keybuffer</a><br>
+</td><td width="25%" valign=top><a href="ranger.container.tags.html">tags</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.keybuffer.html b/doc/pydoc/ranger.container.keybuffer.html
index 07d9ad4f..5ebc033a 100644
--- a/doc/pydoc/ranger.container.keybuffer.html
+++ b/doc/pydoc/ranger.container.keybuffer.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.keybuffer</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/keybuffer.py">/home/hut/ranger/ranger/container/keybuffer.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
diff --git a/doc/pydoc/ranger.container.tags.html b/doc/pydoc/ranger.container.tags.html
index c0b67267..9f3ff6e8 100644
--- a/doc/pydoc/ranger.container.tags.html
+++ b/doc/pydoc/ranger.container.tags.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.tags</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/tags.py">/home/hut/ranger/ranger/container/tags.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -45,10 +46,14 @@
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Tags-__bool__"><strong>__bool__</strong></a> = <a href="#Tags-__nonzero__">__nonzero__</a>(self)</dt></dl>
+
<dl><dt><a name="Tags-__contains__"><strong>__contains__</strong></a>(self, item)</dt></dl>
<dl><dt><a name="Tags-__init__"><strong>__init__</strong></a>(self, filename)</dt></dl>
+<dl><dt><a name="Tags-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt></dl>
+
<dl><dt><a name="Tags-add"><strong>add</strong></a>(self, *items)</dt></dl>
<dl><dt><a name="Tags-dump"><strong>dump</strong></a>(self)</dt></dl>
diff --git a/doc/pydoc/ranger.defaults.apps.html b/doc/pydoc/ranger.defaults.apps.html
index b4383a69..a759a187 100644
--- a/doc/pydoc/ranger.defaults.apps.html
+++ b/doc/pydoc/ranger.defaults.apps.html
@@ -19,24 +19,24 @@ you may want to subclass <a href="#CustomApplications">
This example modifies the behaviour of "feh" and adds a custom media player:<br>
<br>
#### start of the ~/.ranger/apps.py example<br>
-from ranger.defaults.apps import <a href="#CustomApplications">CustomApplications</a> as DefaultApps<br>
-from ranger.api.apps import *<br>
- <br>
-class <a href="#CustomApplications">CustomApplications</a>(DefaultApps):<br>
- def app_kaffeine(self, c):<br>
- return tup('kaffeine', *c)<br>
+ from ranger.defaults.apps import <a href="#CustomApplications">CustomApplications</a> as DefaultApps<br>
+ from ranger.api.apps import *<br>
+ <br>
+ class <a href="#CustomApplications">CustomApplications</a>(DefaultApps):<br>
+ def app_kaffeine(self, c):<br>
+ return tup('kaffeine', *c)<br>
<br>
- def app_feh_fullscreen_by_default(self, c):<br>
- return tup('feh', '-F', *c)<br>
+ def app_feh_fullscreen_by_default(self, c):<br>
+ return tup('feh', '-F', *c)<br>
<br>
- def app_default(self, c):<br>
- if c.file.video or c.file.audio:<br>
- return app_kaffeine(c)<br>
+ def app_default(self, c):<br>
+ if c.file.video or c.file.audio:<br>
+ return app_kaffeine(c)<br>
<br>
- if c.file.image and c.mode == 0:<br>
- return app_feh_fullscreen_by_default(c)<br>
+ if c.file.image and c.mode == 0:<br>
+ return app_feh_fullscreen_by_default(c)<br>
<br>
- return DefaultApps.app_default(self, c)<br>
+ return DefaultApps.app_default(self, c)<br>
#### end of the example</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -93,16 +93,22 @@ Methods defined here:<br>
<dl><dt><a name="CustomApplications-app_evince"><strong>app_evince</strong></a>(self, c)</dt></dl>
+<dl><dt><a name="CustomApplications-app_eye_of_gnome"><strong>app_eye_of_gnome</strong></a>(self, c)</dt></dl>
+
<dl><dt><a name="CustomApplications-app_feh"><strong>app_feh</strong></a>(self, c)</dt></dl>
<dl><dt><a name="CustomApplications-app_firefox"><strong>app_firefox</strong></a>(self, c)</dt></dl>
+<dl><dt><a name="CustomApplications-app_gimp"><strong>app_gimp</strong></a>(self, c)</dt></dl>
+
<dl><dt><a name="CustomApplications-app_java"><strong>app_java</strong></a>(self, c)</dt></dl>
<dl><dt><a name="CustomApplications-app_javac"><strong>app_javac</strong></a>(self, c)</dt></dl>
<dl><dt><a name="CustomApplications-app_make"><strong>app_make</strong></a>(self, c)</dt></dl>
+<dl><dt><a name="CustomApplications-app_mirage"><strong>app_mirage</strong></a>(self, c)</dt></dl>
+
<dl><dt><a name="CustomApplications-app_mplayer"><strong>app_mplayer</strong></a>(self, c)</dt></dl>
<dl><dt><a name="CustomApplications-app_opera"><strong>app_opera</strong></a>(self, c)</dt></dl>
@@ -115,6 +121,8 @@ Methods defined here:<br>
<dl><dt><a name="CustomApplications-app_wine"><strong>app_wine</strong></a>(self, c)</dt></dl>
+<dl><dt><a name="CustomApplications-app_zathura"><strong>app_zathura</strong></a>(self, c)</dt></dl>
+
<dl><dt><a name="CustomApplications-app_zsnes"><strong>app_zsnes</strong></a>(self, c)</dt></dl>
<hr>
@@ -150,6 +158,6 @@ Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.sh
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>INTERPRETED_LANGUAGES</strong> = <_sre.SRE_Pattern object at 0xf6f2d0><br>
+<td width="100%"><strong>INTERPRETED_LANGUAGES</strong> = <_sre.SRE_Pattern object><br>
<strong>PIPE</strong> = -1</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.html b/doc/pydoc/ranger.defaults.html
index 454fec42..d0b18018 100644
--- a/doc/pydoc/ranger.defaults.html
+++ b/doc/pydoc/ranger.defaults.html
@@ -18,7 +18,8 @@
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.defaults.apps.html">apps</a><br>
+</td><td width="25%" valign=top><a href="ranger.defaults.commands.html">commands</a><br>
</td><td width="25%" valign=top><a href="ranger.defaults.keys.html">keys</a><br>
</td><td width="25%" valign=top><a href="ranger.defaults.options.html">options</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table>
+</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.keys.html b/doc/pydoc/ranger.defaults.keys.html
index f31e4159..ee20b40b 100644
--- a/doc/pydoc/ranger.defaults.keys.html
+++ b/doc/pydoc/ranger.defaults.keys.html
@@ -10,7 +10,7 @@
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/defaults/keys.py">/home/hut/ranger/ranger/defaults/keys.py</a></font></td></tr></table>
<p><tt>This is the default key configuration file of ranger.<br>
-Syntax for binding keys: bind(*keys, fnc)<br>
+Syntax for binding keys: map(*keys, fnc)<br>
<br>
keys are one or more key-combinations which are either:<br>
* a string<br>
@@ -70,11 +70,11 @@ Check ranger.keyapi for more information</tt></p>
<dl><dt><a name="-has_key"><strong>has_key</strong></a>(...)</dt></dl>
<dl><dt><a name="-init_color"><strong>init_color</strong></a>(...)</dt></dl>
<dl><dt><a name="-init_pair"><strong>init_pair</strong></a>(...)</dt></dl>
- <dl><dt><a name="-initialize_commands"><strong>initialize_commands</strong></a>(command_list)</dt><dd><tt>Initialize the commands for the main user interface</tt></dd></dl>
- <dl><dt><a name="-initialize_console_commands"><strong>initialize_console_commands</strong></a>(command_list)</dt><dd><tt>Initialize the commands for the console widget only</tt></dd></dl>
- <dl><dt><a name="-initialize_embedded_pager_commands"><strong>initialize_embedded_pager_commands</strong></a>(command_list)</dt></dl>
- <dl><dt><a name="-initialize_pager_commands"><strong>initialize_pager_commands</strong></a>(command_list)</dt></dl>
- <dl><dt><a name="-initialize_taskview_commands"><strong>initialize_taskview_commands</strong></a>(command_list)</dt><dd><tt>Initialize the commands for the TaskView widget</tt></dd></dl>
+ <dl><dt><a name="-initialize_commands"><strong>initialize_commands</strong></a>(map)</dt><dd><tt>Initialize the commands for the main user interface</tt></dd></dl>
+ <dl><dt><a name="-initialize_console_commands"><strong>initialize_console_commands</strong></a>(map)</dt><dd><tt>Initialize the commands for the console widget only</tt></dd></dl>
+ <dl><dt><a name="-initialize_embedded_pager_commands"><strong>initialize_embedded_pager_commands</strong></a>(map)</dt></dl>
+ <dl><dt><a name="-initialize_pager_commands"><strong>initialize_pager_commands</strong></a>(map)</dt></dl>
+ <dl><dt><a name="-initialize_taskview_commands"><strong>initialize_taskview_commands</strong></a>(map)</dt><dd><tt>Initialize the commands for the TaskView widget</tt></dd></dl>
<dl><dt><a name="-intrflush"><strong>intrflush</strong></a>(...)</dt></dl>
<dl><dt><a name="-is_term_resized"><strong>is_term_resized</strong></a>(...)</dt></dl>
<dl><dt><a name="-isendwin"><strong>isendwin</strong></a>(...)</dt></dl>
@@ -374,7 +374,7 @@ Check ranger.keyapi for more information</tt></p>
<strong>US</strong> = 31<br>
<strong>VT</strong> = 11<br>
<strong>controlnames</strong> = ['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'SO', 'SI', 'DLE', 'DC1', 'DC2', 'DC3', ...]<br>
-<strong>fm</strong> = <ranger.api.keys.Wrapper object at 0xecf210><br>
+<strong>fm</strong> = <ranger.api.keys.Wrapper object><br>
<strong>version</strong> = '2.2'<br>
-<strong>wdg</strong> = <ranger.api.keys.Wrapper object at 0xecf250></td></tr></table>
+<strong>wdg</strong> = <ranger.api.keys.Wrapper object></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.options.html b/doc/pydoc/ranger.defaults.options.html
index ce9c7ec7..76e7089d 100644
--- a/doc/pydoc/ranger.defaults.options.html
+++ b/doc/pydoc/ranger.defaults.options.html
@@ -10,8 +10,20 @@
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/defaults/options.py">/home/hut/ranger/ranger/defaults/options.py</a></font></td></tr></table>
<p><tt>This is the default configuration file of ranger.<br>
-If you do any changes, make sure the import-line stays<br>
-intact and the type of the value stays the same.</tt></p>
+ <br>
+There are two ways of customizing ranger. The first and recommended<br>
+method is creating a file at ~/.ranger/options.py and adding<br>
+those lines you want to change. It might look like this:<br>
+ <br>
+from ranger.api.options import *<br>
+preview_files = False # I hate previews!<br>
+max_history_size = 2000 # I can afford it.<br>
+ <br>
+The other way is directly editing this file. This will make upgrades<br>
+of ranger more complicated though.<br>
+ <br>
+Whatever you do, make sure the import-line stays intact and the type<br>
+of the values stay the same.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -19,10 +31,9 @@ intact and the type of the value stays t
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="colorschemes.default.html">colorschemes.default</a><br>
-</td><td width="25%" valign=top><a href="ranger.colorschemes.html">ranger.colorschemes</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.colorschemes.html">ranger.colorschemes</a><br>
</td><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
@@ -31,13 +42,18 @@ intact and the type of the value stays t
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
<td width="100%"><strong>autosave_bookmarks</strong> = True<br>
<strong>collapse_preview</strong> = True<br>
+<strong>colorscheme</strong> = 'default'<br>
<strong>directories_first</strong> = True<br>
+<strong>draw_borders</strong> = False<br>
<strong>flushinput</strong> = True<br>
-<strong>hidden_filter</strong> = <_sre.SRE_Pattern object at 0xf84030><br>
+<strong>hidden_filter</strong> = <_sre.SRE_Pattern object><br>
+<strong>max_filesize_for_preview</strong> = 307200<br>
<strong>max_history_size</strong> = 20<br>
+<strong>preview_directories</strong> = True<br>
<strong>preview_files</strong> = True<br>
<strong>reverse</strong> = False<br>
<strong>scroll_offset</strong> = 2<br>
+<strong>shorten_title</strong> = 3<br>
<strong>show_cursor</strong> = False<br>
<strong>show_hidden</strong> = False<br>
<strong>sort</strong> = 'basename'<br>
diff --git a/doc/pydoc/ranger.ext.accumulator.html b/doc/pydoc/ranger.ext.accumulator.html
index a9c389b5..170aeea0 100644
--- a/doc/pydoc/ranger.ext.accumulator.html
+++ b/doc/pydoc/ranger.ext.accumulator.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.accumulator</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/accumulator.py">/home/hut/ranger/ranger/ext/accumulator.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
diff --git a/doc/pydoc/ranger.ext.command_parser.html b/doc/pydoc/ranger.ext.command_parser.html
index c447113c..9e6fc950 100644
--- a/doc/pydoc/ranger.ext.command_parser.html
+++ b/doc/pydoc/ranger.ext.command_parser.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.command_parser</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/command_parser.py">/home/hut/ranger/ranger/ext/command_parser.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
diff --git a/doc/pydoc/ranger.ext.debug.html b/doc/pydoc/ranger.ext.debug.html
deleted file mode 100644
index 140ab883..00000000
--- a/doc/pydoc/ranger.ext.debug.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.debug</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.debug</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/debug.py">/home/hut/ranger/ranger/ext/debug.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-log"><strong>log</strong></a>(*objects, **keywords)</dt><dd><tt>Writes objects to a logfile.<br>
-Has the same arguments as print() in python3</tt></dd></dl>
- <dl><dt><a name="-trace"><strong>trace</strong></a>()</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>LOGFILE</strong> = '/tmp/errorlog'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.get_all_modules.html b/doc/pydoc/ranger.ext.get_all_modules.html
index a1cc8a50..98a88675 100644
--- a/doc/pydoc/ranger.ext.get_all_modules.html
+++ b/doc/pydoc/ranger.ext.get_all_modules.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.get_all_modules</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/get_all_modules.py">/home/hut/ranger/ranger/ext/get_all_modules.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
diff --git a/doc/pydoc/ranger.ext.html b/doc/pydoc/ranger.ext.html
index 3da196d3..d58c1b87 100644
--- a/doc/pydoc/ranger.ext.html
+++ b/doc/pydoc/ranger.ext.html
@@ -20,17 +20,15 @@
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.ext.accumulator.html">accumulator</a><br>
<a href="ranger.ext.command_parser.html">command_parser</a><br>
<a href="ranger.ext.curses_interrupt_handler.html">curses_interrupt_handler</a><br>
-<a href="ranger.ext.debug.html">debug</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.get_all_modules.html">get_all_modules</a><br>
-<a href="ranger.ext.get_executables.html">get_executables</a><br>
+<a href="ranger.ext.get_all_modules.html">get_all_modules</a><br>
+</td><td width="25%" valign=top><a href="ranger.ext.get_executables.html">get_executables</a><br>
<a href="ranger.ext.human_readable.html">human_readable</a><br>
<a href="ranger.ext.iter_tools.html">iter_tools</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.mount_path.html">mount_path</a><br>
-<a href="ranger.ext.move.html">move</a><br>
+<a href="ranger.ext.mount_path.html">mount_path</a><br>
+</td><td width="25%" valign=top><a href="ranger.ext.move.html">move</a><br>
<a href="ranger.ext.openstruct.html">openstruct</a><br>
-<a href="ranger.ext.relpath.html">relpath</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.shell_escape.html">shell_escape</a><br>
+<a href="ranger.ext.shell_escape.html">shell_escape</a><br>
<a href="ranger.ext.shutil_generatorized.html">shutil_generatorized</a><br>
-<a href="ranger.ext.waitpid_no_intr.html">waitpid_no_intr</a><br>
+</td><td width="25%" valign=top><a href="ranger.ext.waitpid_no_intr.html">waitpid_no_intr</a><br>
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.human_readable.html b/doc/pydoc/ranger.ext.human_readable.html
index 6fffb7bb..a4d71ea9 100644
--- a/doc/pydoc/ranger.ext.human_readable.html
+++ b/doc/pydoc/ranger.ext.human_readable.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.human_readable</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/human_readable.py">/home/hut/ranger/ranger/ext/human_readable.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
diff --git a/doc/pydoc/ranger.ext.move.html b/doc/pydoc/ranger.ext.move.html
index 76123bd9..d3858ab4 100644
--- a/doc/pydoc/ranger.ext.move.html
+++ b/doc/pydoc/ranger.ext.move.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.move</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/move.py">/home/hut/ranger/ranger/ext/move.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
diff --git a/doc/pydoc/ranger.ext.openstruct.html b/doc/pydoc/ranger.ext.openstruct.html
index 4df349ce..d4340807 100644
--- a/doc/pydoc/ranger.ext.openstruct.html
+++ b/doc/pydoc/ranger.ext.openstruct.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.openstruct</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/openstruct.py">/home/hut/ranger/ranger/ext/openstruct.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -30,7 +31,7 @@
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
+<dt><font face="helvetica, arial"><a href="__builtin__.html#dict">__builtin__.dict</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.ext.openstruct.html#OpenStruct">OpenStruct</a>
@@ -41,17 +42,19 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="OpenStruct">class <strong>OpenStruct</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="OpenStruct">class <strong>OpenStruct</strong></a>(<a href="__builtin__.html#dict">__builtin__.dict</a>)</font></td></tr>
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="OpenStruct-__contains__"><strong>__contains__</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="OpenStruct-__getitem__"><strong>__getitem__</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="OpenStruct-__init__"><strong>__init__</strong></a>(self, _OpenStruct__dictionary<font color="#909090">=None</font>, **_OpenStruct__keywords)</dt></dl>
-
-<dl><dt><a name="OpenStruct-__setitem__"><strong>__setitem__</strong></a>(self, key, value)</dt></dl>
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>The fusion of <a href="__builtin__.html#dict">dict</a> and struct<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%"><dl><dt>Method resolution order:</dt>
+<dd><a href="ranger.ext.openstruct.html#OpenStruct">OpenStruct</a></dd>
+<dd><a href="__builtin__.html#dict">__builtin__.dict</a></dd>
+<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
+</dl>
+<hr>
+Methods defined here:<br>
+<dl><dt><a name="OpenStruct-__init__"><strong>__init__</strong></a>(self, *_OpenStruct__args, **_OpenStruct__keywords)</dt></dl>
<hr>
Data descriptors defined here:<br>
@@ -61,5 +64,81 @@ Data descriptors defined here:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
+<hr>
+Methods inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
+<dl><dt><a name="OpenStruct-__cmp__"><strong>__cmp__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__cmp__">__cmp__</a>(y) <==> cmp(x,y)</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-__contains__">__contains__</a>(k) -> True if D has a key k, else False</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__delitem__"><strong>__delitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__delitem__">__delitem__</a>(y) <==> del x[y]</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__eq__">__eq__</a>(y) <==> x==y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__ge__">__ge__</a>(y) <==> x>=y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__gt__">__gt__</a>(y) <==> x>y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__iter__">__iter__</a>() <==> iter(x)</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__le__">__le__</a>(y) <==> x<=y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__len__">__len__</a>() <==> len(x)</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__lt__">__lt__</a>(y) <==> x<y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__ne__">__ne__</a>(y) <==> x!=y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__setitem__"><strong>__setitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__setitem__">__setitem__</a>(i, y) <==> x[i]=y</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-__sizeof__"><strong>__sizeof__</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-__sizeof__">__sizeof__</a>() -> size of D in memory, in bytes</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-clear"><strong>clear</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-clear">clear</a>() -> None. Remove all items from D.</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-copy"><strong>copy</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-copy">copy</a>() -> a shallow copy of D</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-get"><strong>get</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-get">get</a>(k[,d]) -> D[k] if k in D, else d. d defaults to None.</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-has_key"><strong>has_key</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-has_key">has_key</a>(k) -> True if D has a key k, else False</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-items"><strong>items</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-items">items</a>() -> list of D's (key, value) pairs, as 2-tuples</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-iteritems"><strong>iteritems</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-iteritems">iteritems</a>() -> an iterator over the (key, value) items of D</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-iterkeys"><strong>iterkeys</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-iterkeys">iterkeys</a>() -> an iterator over the keys of D</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-itervalues"><strong>itervalues</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-itervalues">itervalues</a>() -> an iterator over the values of D</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-keys"><strong>keys</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-keys">keys</a>() -> list of D's keys</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-pop"><strong>pop</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-pop">pop</a>(k[,d]) -> v, remove specified key and return the corresponding value.<br>
+If key is not found, d is returned if given, otherwise KeyError is raised</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-popitem"><strong>popitem</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-popitem">popitem</a>() -> (k, v), remove and return some (key, value) pair as a<br>
+2-tuple; but raise KeyError if D is empty.</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-setdefault"><strong>setdefault</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-setdefault">setdefault</a>(k[,d]) -> D.<a href="#OpenStruct-get">get</a>(k,d), also set D[k]=d if k not in D</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-update"><strong>update</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-update">update</a>(E, **F) -> None. Update D from <a href="__builtin__.html#dict">dict</a>/iterable E and F.<br>
+If E has a .<a href="#OpenStruct-keys">keys</a>() method, does: for k in E: D[k] = E[k]<br>
+If E lacks .<a href="#OpenStruct-keys">keys</a>() method, does: for (k, v) in E: D[k] = v<br>
+In either case, this is followed by: for k in F: D[k] = F[k]</tt></dd></dl>
+
+<dl><dt><a name="OpenStruct-values"><strong>values</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-values">values</a>() -> list of D's values</tt></dd></dl>
+
+<hr>
+Data and other attributes inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
+<dl><dt><strong>__hash__</strong> = None</dl>
+
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#OpenStruct-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
+
+<dl><dt><strong>fromkeys</strong> = <built-in method fromkeys of type object><dd><tt><a href="__builtin__.html#dict">dict</a>.<a href="#OpenStruct-fromkeys">fromkeys</a>(S[,v]) -> New <a href="__builtin__.html#dict">dict</a> with keys from S and values equal to v.<br>
+v defaults to None.</tt></dl>
+
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.relpath.html b/doc/pydoc/ranger.ext.relpath.html
deleted file mode 100644
index 246c5889..00000000
--- a/doc/pydoc/ranger.ext.relpath.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.relpath</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.relpath</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/relpath.py">/home/hut/ranger/ranger/ext/relpath.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-relpath"><strong>relpath</strong></a>(*paths)</dt><dd><tt>returns the path relative to rangers library directory</tt></dd></dl>
- <dl><dt><a name="-relpath_conf"><strong>relpath_conf</strong></a>(*paths)</dt><dd><tt>returns the path relative to rangers configuration directory</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.shutil_generatorized.html b/doc/pydoc/ranger.ext.shutil_generatorized.html
index 8c768653..f9db29b7 100644
--- a/doc/pydoc/ranger.ext.shutil_generatorized.html
+++ b/doc/pydoc/ranger.ext.shutil_generatorized.html
@@ -80,7 +80,7 @@ Data descriptors inherited from <a href="exceptions.html#EnvironmentError">excep
</dl>
<hr>
Data and other attributes inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7034c40><dd><tt>T.<a href="#Error-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#Error-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
@@ -154,7 +154,7 @@ Data descriptors inherited from <a href="exceptions.html#EnvironmentError">excep
</dl>
<hr>
Data and other attributes inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7034c40><dd><tt>T.<a href="#SpecialFileError-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#SpecialFileError-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
diff --git a/doc/pydoc/ranger.ext.waitpid_no_intr.html b/doc/pydoc/ranger.ext.waitpid_no_intr.html
index be349e28..4f141858 100644
--- a/doc/pydoc/ranger.ext.waitpid_no_intr.html
+++ b/doc/pydoc/ranger.ext.waitpid_no_intr.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.waitpid_no_intr</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/waitpid_no_intr.py">/home/hut/ranger/ranger/ext/waitpid_no_intr.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
diff --git a/doc/pydoc/ranger.fm.html b/doc/pydoc/ranger.fm.html
deleted file mode 100644
index bf97bb22..00000000
--- a/doc/pydoc/ranger.fm.html
+++ /dev/null
@@ -1,222 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.fm</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.fm</strong></big></big> (version 1.0.3)</font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fm.py">/home/hut/ranger/ranger/fm.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
-#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
-#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.actions.html#Actions">ranger.actions.Actions</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fm.html#FM">FM</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="FM">class <strong>FM</strong></a>(<a href="ranger.actions.html#Actions">ranger.actions.Actions</a>)</font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fm.html#FM">FM</a></dd>
-<dd><a href="ranger.actions.html#Actions">ranger.actions.Actions</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="FM-__init__"><strong>__init__</strong></a>(self, ui<font color="#909090">=None</font>, bookmarks<font color="#909090">=None</font>, tags<font color="#909090">=None</font>)</dt><dd><tt>Initialize <a href="#FM">FM</a>.</tt></dd></dl>
-
-<dl><dt><a name="FM-block_input"><strong>block_input</strong></a>(self, sec<font color="#909090">=0</font>)</dt></dl>
-
-<dl><dt><a name="FM-initialize"><strong>initialize</strong></a>(self)</dt><dd><tt>If ui/bookmarks are None, they will be initialized here.</tt></dd></dl>
-
-<dl><dt><a name="FM-loop"><strong>loop</strong></a>(self)</dt><dd><tt>The main loop consists of:<br>
-1. reloading bookmarks if outdated<br>
-2. letting the loader work<br>
-3. drawing and finalizing ui<br>
-4. reading and handling user input<br>
-5. after X loops: collecting unused directory objects</tt></dd></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>executables</strong></dt>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>input_blocked</strong> = False</dl>
-
-<dl><dt><strong>input_blocked_until</strong> = 0</dl>
-
-<dl><dt><strong>stderr_to_out</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.actions.html#Actions">ranger.actions.Actions</a>:<br>
-<dl><dt><a name="FM-cd"><strong>cd</strong></a>(self, path, remember<font color="#909090">=True</font>)</dt><dd><tt>enter the directory at the given path, remember=True</tt></dd></dl>
-
-<dl><dt><a name="FM-copy"><strong>copy</strong></a>(self)</dt><dd><tt>Copy the selected items</tt></dd></dl>
-
-<dl><dt><a name="FM-cut"><strong>cut</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-delete"><strong>delete</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-display_command_help"><strong>display_command_help</strong></a>(self, console_widget)</dt></dl>
-
-<dl><dt><a name="FM-display_file"><strong>display_file</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-display_help"><strong>display_help</strong></a>(self, topic<font color="#909090">='index'</font>, narg<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="FM-display_log"><strong>display_log</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-edit_file"><strong>edit_file</strong></a>(self, file<font color="#909090">=None</font>)</dt><dd><tt>Calls execute_file with the current file and app='editor'</tt></dd></dl>
-
-<dl><dt><a name="FM-enter_bookmark"><strong>enter_bookmark</strong></a>(self, key)</dt><dd><tt>Enter the bookmark with the name <key></tt></dd></dl>
-
-<dl><dt><a name="FM-enter_dir"><strong>enter_dir</strong></a>(self, path, remember<font color="#909090">=False</font>)</dt><dd><tt>Enter the directory at the given path</tt></dd></dl>
-
-<dl><dt><a name="FM-execute_command"><strong>execute_command</strong></a>(self, cmd, **kw)</dt></dl>
-
-<dl><dt><a name="FM-execute_file"><strong>execute_file</strong></a>(self, files, **kw)</dt><dd><tt>Execute a file.<br>
-app is the name of a method in Applications, without the "app_"<br>
-flags is a string consisting of runner.ALLOWED_FLAGS<br>
-mode is a positive integer.<br>
-Both flags and mode specify how the program is run.</tt></dd></dl>
-
-<dl><dt><a name="FM-exit"><strong>exit</strong></a>(self)</dt><dd><tt>Exit the program</tt></dd></dl>
-
-<dl><dt><a name="FM-force_load_preview"><strong>force_load_preview</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-handle_mouse"><strong>handle_mouse</strong></a>(self)</dt><dd><tt>Handle mouse-buttons if one was pressed</tt></dd></dl>
-
-<dl><dt><a name="FM-history_go"><strong>history_go</strong></a>(self, relative)</dt><dd><tt>Move back and forth in the history</tt></dd></dl>
-
-<dl><dt><a name="FM-mark"><strong>mark</strong></a>(self, all<font color="#909090">=False</font>, toggle<font color="#909090">=False</font>, val<font color="#909090">=None</font>, movedown<font color="#909090">=None</font>, narg<font color="#909090">=1</font>)</dt><dd><tt>A wrapper for the directory.mark_xyz functions.<br>
- <br>
-Arguments:<br>
-all - change all files of the current directory at once?<br>
-toggle - toggle the marked-status?<br>
-val - mark or unmark?</tt></dd></dl>
-
-<dl><dt><a name="FM-mkdir"><strong>mkdir</strong></a>(self, name)</dt></dl>
-
-<dl><dt><a name="FM-move_left"><strong>move_left</strong></a>(self, narg<font color="#909090">=1</font>)</dt><dd><tt>Enter the parent directory</tt></dd></dl>
-
-<dl><dt><a name="FM-move_pointer"><strong>move_pointer</strong></a>(self, relative<font color="#909090">=0</font>, absolute<font color="#909090">=None</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Move the pointer down by <relative> or to <absolute></tt></dd></dl>
-
-<dl><dt><a name="FM-move_pointer_by_pages"><strong>move_pointer_by_pages</strong></a>(self, relative)</dt><dd><tt>Move the pointer down by <relative> pages</tt></dd></dl>
-
-<dl><dt><a name="FM-move_pointer_by_percentage"><strong>move_pointer_by_percentage</strong></a>(self, relative<font color="#909090">=0</font>, absolute<font color="#909090">=None</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Move the pointer down by <relative>% or to <absolute>%</tt></dd></dl>
-
-<dl><dt><a name="FM-move_right"><strong>move_right</strong></a>(self, mode<font color="#909090">=0</font>, narg<font color="#909090">=None</font>)</dt><dd><tt>Enter the current directory or execute the current file</tt></dd></dl>
-
-<dl><dt><a name="FM-notify"><strong>notify</strong></a>(self, text, duration<font color="#909090">=4</font>, bad<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="FM-open_console"><strong>open_console</strong></a>(self, mode<font color="#909090">=':'</font>, string<font color="#909090">=''</font>)</dt><dd><tt>Open the console if the current UI supports that</tt></dd></dl>
-
-<dl><dt><a name="FM-paste"><strong>paste</strong></a>(self, overwrite<font color="#909090">=False</font>)</dt><dd><tt>Paste the selected items into the current directory</tt></dd></dl>
-
-<dl><dt><a name="FM-paste_symlink"><strong>paste_symlink</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-redraw_window"><strong>redraw_window</strong></a>(self)</dt><dd><tt>Redraw the window</tt></dd></dl>
-
-<dl><dt><a name="FM-reload_cwd"><strong>reload_cwd</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FM-rename"><strong>rename</strong></a>(self, src, dest)</dt></dl>
-
-<dl><dt><a name="FM-reset"><strong>reset</strong></a>(self)</dt><dd><tt>Reset the filemanager, clearing the directory buffer</tt></dd></dl>
-
-<dl><dt><a name="FM-resize"><strong>resize</strong></a>(self)</dt><dd><tt>Update the size of the UI</tt></dd></dl>
-
-<dl><dt><a name="FM-scroll"><strong>scroll</strong></a>(self, relative)</dt><dd><tt>Scroll down by <relative> lines</tt></dd></dl>
-
-<dl><dt><a name="FM-search"><strong>search</strong></a>(self, order<font color="#909090">=None</font>, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="FM-set_bookmark"><strong>set_bookmark</strong></a>(self, key)</dt><dd><tt>Set the bookmark with the name <key> to the current directory</tt></dd></dl>
-
-<dl><dt><a name="FM-set_filter"><strong>set_filter</strong></a>(self, fltr)</dt></dl>
-
-<dl><dt><a name="FM-set_search_method"><strong>set_search_method</strong></a>(self, order, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="FM-sort"><strong>sort</strong></a>(self, func<font color="#909090">=None</font>, reverse<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="FM-tag_remove"><strong>tag_remove</strong></a>(self, movedown<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="FM-tag_toggle"><strong>tag_toggle</strong></a>(self, movedown<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="FM-toggle_boolean_option"><strong>toggle_boolean_option</strong></a>(self, string)</dt><dd><tt>Toggle a boolean option named <string></tt></dd></dl>
-
-<dl><dt><a name="FM-unset_bookmark"><strong>unset_bookmark</strong></a>(self, key)</dt><dd><tt>Delete the bookmark with the name <key></tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.actions.html#Actions">ranger.actions.Actions</a>:<br>
-<dl><dt><strong>search_forward</strong> = False</dl>
-
-<dl><dt><strong>search_method</strong> = 'ctime'</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>CTRL_C</strong> = 3<br>
-<strong>TICKS_BEFORE_COLLECTING_GARBAGE</strong> = 100<br>
-<strong>__version__</strong> = '1.0.3'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.directory.html b/doc/pydoc/ranger.fsobject.directory.html
index 7dd2b7dd..3def97f7 100644
--- a/doc/pydoc/ranger.fsobject.directory.html
+++ b/doc/pydoc/ranger.fsobject.directory.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.directory</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/directory.py">/home/hut/ranger/ranger/fsobject/directory.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -83,6 +84,8 @@
</dl>
<hr>
Methods defined here:<br>
+<dl><dt><a name="Directory-__bool__"><strong>__bool__</strong></a> = <a href="#Directory-__nonzero__">__nonzero__</a>(self)</dt></dl>
+
<dl><dt><a name="Directory-__eq__"><strong>__eq__</strong></a>(self, other)</dt><dd><tt>Check for equality of the directories paths</tt></dd></dl>
<dl><dt><a name="Directory-__hash__"><strong>__hash__</strong></a>(self)</dt></dl>
@@ -180,7 +183,7 @@ Data and other attributes defined here:<br>
<dl><dt><strong>scroll_offset</strong> = 0</dl>
-<dl><dt><strong>sort_dict</strong> = {'basename': <function sort_by_basename at 0xe37c80>, 'mtime': <function <lambda> at 0xe3c230>, 'size': <function <lambda> at 0xe3c1b8>, 'type': <function <lambda> at 0xe3c2a8>}</dl>
+<dl><dt><strong>sort_dict</strong> = {'basename': <function sort_by_basename>, 'mtime': <function <lambda>>, 'size': <function <lambda>>, 'type': <function <lambda>>}</dl>
<hr>
Methods inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
@@ -209,6 +212,12 @@ or nonexistant.</tt></dd></dl>
<dl><dt><a name="Directory-use"><strong>use</strong></a>(self)</dt><dd><tt>mark the filesystem-object as used at the current time</tt></dd></dl>
<hr>
+Data descriptors inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
+<dl><dt><strong>filetype</strong></dt>
+</dl>
+<dl><dt><strong>shell_escaped_basename</strong></dt>
+</dl>
+<hr>
Data and other attributes inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
<dl><dt><strong>accessible</strong> = False</dl>
@@ -298,7 +307,7 @@ Methods inherited from <a href="ranger.ext.accumulator.html#Accumulator">ranger.
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -324,7 +333,7 @@ Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception<
<hr>
Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7033f40><dd><tt>T.<a href="#NoDirectoryGiven-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#NoDirectoryGiven-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
diff --git a/doc/pydoc/ranger.fsobject.file.html b/doc/pydoc/ranger.fsobject.file.html
index 8410e2e8..b0816bd0 100644
--- a/doc/pydoc/ranger.fsobject.file.html
+++ b/doc/pydoc/ranger.fsobject.file.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.file</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/file.py">/home/hut/ranger/ranger/fsobject/file.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -85,6 +86,12 @@ or nonexistant.</tt></dd></dl>
<dl><dt><a name="File-use"><strong>use</strong></a>(self)</dt><dd><tt>mark the filesystem-object as used at the current time</tt></dd></dl>
<hr>
+Data descriptors inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
+<dl><dt><strong>filetype</strong></dt>
+</dl>
+<dl><dt><strong>shell_escaped_basename</strong></dt>
+</dl>
+<hr>
Data and other attributes inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
<dl><dt><strong>accessible</strong> = False</dl>
diff --git a/doc/pydoc/ranger.fsobject.fsobject.html b/doc/pydoc/ranger.fsobject.fsobject.html
index 39030964..0681dfaa 100644
--- a/doc/pydoc/ranger.fsobject.fsobject.html
+++ b/doc/pydoc/ranger.fsobject.fsobject.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.fsobject</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/fsobject.py">/home/hut/ranger/ranger/fsobject/fsobject.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -86,6 +87,12 @@ or nonexistant.</tt></dd></dl>
<dl><dt><a name="FileSystemObject-use"><strong>use</strong></a>(self)</dt><dd><tt>mark the filesystem-object as used at the current time</tt></dd></dl>
<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>filetype</strong></dt>
+</dl>
+<dl><dt><strong>shell_escaped_basename</strong></dt>
+</dl>
+<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>accessible</strong> = False</dl>
diff --git a/doc/pydoc/ranger.fsobject.html b/doc/pydoc/ranger.fsobject.html
index 1c0391a1..864aef98 100644
--- a/doc/pydoc/ranger.fsobject.html
+++ b/doc/pydoc/ranger.fsobject.html
@@ -61,7 +61,7 @@ Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception<
<hr>
Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe7033f40><dd><tt>T.<a href="#NotLoadedYet-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#NotLoadedYet-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
diff --git a/doc/pydoc/ranger.fsobject.loader.html b/doc/pydoc/ranger.fsobject.loader.html
index 29ba861c..c387f773 100644
--- a/doc/pydoc/ranger.fsobject.loader.html
+++ b/doc/pydoc/ranger.fsobject.loader.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.loader</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/loader.py">/home/hut/ranger/ranger/fsobject/loader.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/ranger.gui.bar.html b/doc/pydoc/ranger.gui.bar.html
index a3f5f7f9..b4036c14 100644
--- a/doc/pydoc/ranger.gui.bar.html
+++ b/doc/pydoc/ranger.gui.bar.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.bar</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/bar.py">/home/hut/ranger/ranger/gui/bar.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -202,7 +203,7 @@ cmp(x, y) -> -1, 0, 1</tt></dd></dl>
Data and other attributes inherited from <a href="__builtin__.html#list">__builtin__.list</a>:<br>
<dl><dt><strong>__hash__</strong> = None</dl>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object at 0x7fdbe703db00><dd><tt>T.<a href="#BarSide-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#BarSide-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.gui.colorscheme.html b/doc/pydoc/ranger.gui.colorscheme.html
index f8fac96b..52b56a83 100644
--- a/doc/pydoc/ranger.gui.colorscheme.html
+++ b/doc/pydoc/ranger.gui.colorscheme.html
@@ -75,8 +75,12 @@ colors for faster access.</tt></dd></dl>
Ready to use for curses.setattr()</tt></dd></dl>
<dl><dt><a name="ColorScheme-use"><strong>use</strong></a>(self, context)</dt><dd><tt>Use the colorscheme to determine the (fg, bg, attr) tuple.<br>
-This is a dummy function which always returns default_colors.<br>
-Override this in your custom colorscheme!</tt></dd></dl>
+ <br>
+When no colorscheme is found, ranger will fall back to this very<br>
+basic colorscheme where directories are blue and bold, and<br>
+selected files have the color inverted.<br>
+ <br>
+Override this method in your own colorscheme.</tt></dd></dl>
<hr>
Data descriptors defined here:<br>
@@ -88,10 +92,11 @@ Data descriptors defined here:<br>
</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
+<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>CONTEXT_KEYS</strong> = ['reset', 'error', 'in_browser', 'in_statusbar', 'in_titlebar', 'in_console', 'in_pager', 'in_taskview', 'directory', 'file', 'hostname', 'executable', 'media', 'link', 'video', 'audio', 'image', 'media', 'document', 'container', ...]</td></tr></table>
+<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
+<td width="100%"><dl><dt><a name="-color_pair"><strong>color_pair</strong></a>(...)</dt></dl>
+</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.curses_shortcuts.html b/doc/pydoc/ranger.gui.curses_shortcuts.html
index ddd951b8..724177b3 100644
--- a/doc/pydoc/ranger.gui.curses_shortcuts.html
+++ b/doc/pydoc/ranger.gui.curses_shortcuts.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.curses_shortcuts</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/curses_shortcuts.py">/home/hut/ranger/ranger/gui/curses_shortcuts.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -86,7 +87,7 @@ Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAwa
</dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.defaultui.html b/doc/pydoc/ranger.gui.defaultui.html
index 76fa5277..3254b508 100644
--- a/doc/pydoc/ranger.gui.defaultui.html
+++ b/doc/pydoc/ranger.gui.defaultui.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.defaultui</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/defaultui.py">/home/hut/ranger/ranger/gui/defaultui.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -136,6 +137,8 @@ Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="DefaultUI-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="DefaultUI-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -178,7 +181,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.gui.displayable.html b/doc/pydoc/ranger.gui.displayable.html
index 3778347c..a749ec1e 100644
--- a/doc/pydoc/ranger.gui.displayable.html
+++ b/doc/pydoc/ranger.gui.displayable.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.displayable</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/displayable.py">/home/hut/ranger/ranger/gui/displayable.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -123,6 +124,8 @@ Read-Only: (i.e. reccomended not to change manuall
</dl>
<hr>
Methods defined here:<br>
+<dl><dt><a name="Displayable-__bool__"><strong>__bool__</strong></a> = <a href="#Displayable-__nonzero__">__nonzero__</a>(self)</dt></dl>
+
<dl><dt><a name="Displayable-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -185,7 +188,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -241,6 +244,8 @@ Methods defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">Displayable</a>:<br>
+<dl><dt><a name="DisplayableContainer-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="DisplayableContainer-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -283,7 +288,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.html b/doc/pydoc/ranger.gui.html
index fdfe0e1b..125b42ee 100644
--- a/doc/pydoc/ranger.gui.html
+++ b/doc/pydoc/ranger.gui.html
@@ -20,11 +20,12 @@
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.bar.html">bar</a><br>
<a href="ranger.gui.color.html">color</a><br>
<a href="ranger.gui.colorscheme.html">colorscheme</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.curses_shortcuts.html">curses_shortcuts</a><br>
+</td><td width="25%" valign=top><a href="ranger.gui.context.html">context</a><br>
+<a href="ranger.gui.curses_shortcuts.html">curses_shortcuts</a><br>
<a href="ranger.gui.defaultui.html">defaultui</a><br>
-<a href="ranger.gui.displayable.html">displayable</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.mouse_event.html">mouse_event</a><br>
+</td><td width="25%" valign=top><a href="ranger.gui.displayable.html">displayable</a><br>
+<a href="ranger.gui.mouse_event.html">mouse_event</a><br>
<a href="ranger.gui.ui.html">ui</a><br>
-<a href="ranger.gui.widgets.html"><strong>widgets</strong> (package)</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table>
+</td><td width="25%" valign=top><a href="ranger.gui.widgets.html"><strong>widgets</strong> (package)</a><br>
+</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.mouse_event.html b/doc/pydoc/ranger.gui.mouse_event.html
index a6893715..7802b9a1 100644
--- a/doc/pydoc/ranger.gui.mouse_event.html
+++ b/doc/pydoc/ranger.gui.mouse_event.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.mouse_event</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/mouse_event.py">/home/hut/ranger/ranger/gui/mouse_event.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/ranger.gui.ui.html b/doc/pydoc/ranger.gui.ui.html
index 93397042..abd01711 100644
--- a/doc/pydoc/ranger.gui.ui.html
+++ b/doc/pydoc/ranger.gui.ui.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.ui</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/ui.py">/home/hut/ranger/ranger/gui/ui.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -30,10 +31,11 @@
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="_curses.html">_curses</a><br>
-</td><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top><a href="socket.html">socket</a><br>
+<a href="curses.html">curses</a><br>
+</td><td width="25%" valign=top><a href="os.html">os</a><br>
+<a href="socket.html">socket</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
@@ -120,6 +122,8 @@ Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="UI-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="UI-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -162,7 +166,14 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
-</td></tr></table></td></tr></table>
+</td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#55aa55">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
+
+<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
+<td width="100%"><strong>TERMINALS_WITH_TITLE</strong> = ('xterm', 'xterm-256color', 'rxvt', 'rxvt-256color', 'rxvt-unicode', 'aterm', 'Eterm', 'screen', 'screen-256color')</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.browsercolumn.html b/doc/pydoc/ranger.gui.widgets.browsercolumn.html
index 7151df23..98700199 100644
--- a/doc/pydoc/ranger.gui.widgets.browsercolumn.html
+++ b/doc/pydoc/ranger.gui.widgets.browsercolumn.html
@@ -26,16 +26,10 @@
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browsercolumn.html#BrowserColumn">BrowserColumn</a>(<a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>, <a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)
-</font></dt></dl>
-</dd>
<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)
</font></dt><dd>
<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browsercolumn.html#BrowserColumn">BrowserColumn</a>(<a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>, <a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)
+<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browsercolumn.html#BrowserColumn">BrowserColumn</a>
</font></dt></dl>
</dd>
</dl>
@@ -43,7 +37,7 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="BrowserColumn">class <strong>BrowserColumn</strong></a>(<a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>, <a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="BrowserColumn">class <strong>BrowserColumn</strong></a>(<a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>)</font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
@@ -60,7 +54,12 @@
</dl>
<hr>
Methods defined here:<br>
-<dl><dt><a name="BrowserColumn-__init__"><strong>__init__</strong></a>(self, win, level)</dt></dl>
+<dl><dt><a name="BrowserColumn-__init__"><strong>__init__</strong></a>(self, win, level)</dt><dd><tt>win = the curses window object of the BrowserView<br>
+level = what to display?<br>
+ <br>
+level >0 => previews<br>
+level 0 => current file/directory<br>
+level <0 => parent directories</tt></dd></dl>
<dl><dt><a name="BrowserColumn-__str__"><strong>__str__</strong></a>(self)</dt></dl>
@@ -124,6 +123,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.pager.html#
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="BrowserColumn-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="BrowserColumn-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -165,7 +166,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -185,5 +186,5 @@ Fractions of a second may be present if
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>PREVIEW_BLACKLIST</strong> = <_sre.SRE_Pattern object at 0x10400b0></td></tr></table>
+<td width="100%"><strong>PREVIEW_BLACKLIST</strong> = <_sre.SRE_Pattern object></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.browserview.html b/doc/pydoc/ranger.gui.widgets.browserview.html
index 3b3ad97b..627a62bf 100644
--- a/doc/pydoc/ranger.gui.widgets.browserview.html
+++ b/doc/pydoc/ranger.gui.widgets.browserview.html
@@ -12,6 +12,14 @@
<p><tt>The <a href="#BrowserView">BrowserView</a> manages a set of BrowserColumns.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
+</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
@@ -92,6 +100,8 @@ Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="BrowserView-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="BrowserView-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -132,7 +142,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.console.html b/doc/pydoc/ranger.gui.widgets.console.html
index acf5e0d8..cdf17194 100644
--- a/doc/pydoc/ranger.gui.widgets.console.html
+++ b/doc/pydoc/ranger.gui.widgets.console.html
@@ -18,7 +18,7 @@ commands, searching and executing files.</tt></p>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.commands.html">ranger.commands</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.defaults.commands.html">ranger.defaults.commands</a><br>
</td><td width="25%" valign=top><a href="curses.html">curses</a><br>
</td><td width="25%" valign=top><a href="string.html">string</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
@@ -148,6 +148,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="CommandConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="CommandConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -198,7 +200,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -286,6 +288,8 @@ Data and other attributes defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="Console-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="Console-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -336,7 +340,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -427,6 +431,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="ConsoleWithTab-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="ConsoleWithTab-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -477,7 +483,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -486,7 +492,7 @@ Data and other attributes inherited from <a href="ranger.shared.settings.html#Se
<font color="#000000" face="helvetica, arial"><a name="OpenConsole">class <strong>OpenConsole</strong></a>(<a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>The <a href="#OpenConsole">OpenConsole</a> allows you to execute shell commands:<br>
+<td colspan=2><tt>The Open <a href="#Console">Console</a> allows you to execute shell commands:<br>
!vim * will run vim and open all files in the directory.<br>
<br>
%f will be replaced with the basename of the highlighted file<br>
@@ -496,14 +502,14 @@ There is a special syntax for more control:<b
<br>
!d! mplayer will run mplayer with flags (d means detached)<br>
!@ mplayer will open the selected files with mplayer<br>
- (equivalent to !mplayer %s)<br>
+ (equivalent to !mplayer %s)<br>
<br>
-those two can be combinated:<br>
+Those two can be combinated:<br>
<br>
!d!@mplayer will open the selection with a detached mplayer<br>
+ (again, this is equivalent to !d!mplayer %s)<br>
<br>
-For a list of other flags than "d", look at the documentation<br>
-of ranger.applications.<br> </tt></td></tr>
+For a list of other flags than "d", check chapter 2.5 of the documentation<br> </tt></td></tr>
<tr><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="ranger.gui.widgets.console.html#OpenConsole">OpenConsole</a></dd>
@@ -592,6 +598,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="OpenConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="OpenConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -642,7 +650,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -752,6 +760,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="QuickCommandConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="QuickCommandConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -802,7 +812,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -811,10 +821,29 @@ Data and other attributes inherited from <a href="ranger.shared.settings.html#Se
<font color="#000000" face="helvetica, arial"><a name="QuickOpenConsole">class <strong>QuickOpenConsole</strong></a>(<a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>The <a href="#QuickOpenConsole">QuickOpenConsole</a> allows you to open files with<br>
-pre-defined programs and modes very quickly. By adding flags<br>
-to the command, you can specify precisely how the program is run,<br>
-ie. the d-flag will run it detached from the filemanager.<br> </tt></td></tr>
+<td colspan=2><tt>The Quick Open <a href="#Console">Console</a> allows you to open files with predefined programs<br>
+and modes very quickly. By adding flags to the command, you can specify<br>
+precisely how the program is run, e.g. the d-flag will run it detached<br>
+from the file manager.<br>
+ <br>
+For a list of other flags than "d", check chapter 2.5 of the documentation<br>
+ <br>
+The syntax is "open with: <application> <mode> <flags>".<br>
+The parsing of the arguments is very flexible. You can leave out one or<br>
+more arguments (or even all of them) and it will fall back to default<br>
+values. You can switch the order as well.<br>
+There is just one rule:<br>
+ <br>
+If you supply the <application>, it has to be the first argument.<br>
+ <br>
+Examples:<br>
+ <br>
+open with: mplayer D open the selection in mplayer, but not detached<br>
+open with: 1 open it with the default handler in mode 1<br>
+open with: d open it detached with the default handler<br>
+open with: p open it as usual, but pipe the output to "less"<br>
+open with: totem 1 Ds open in totem in mode 1, will not detach the<br>
+ process (flag D) but discard the output (flag s)<br> </tt></td></tr>
<tr><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="ranger.gui.widgets.console.html#QuickOpenConsole">QuickOpenConsole</a></dd>
@@ -903,6 +932,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="QuickOpenConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="QuickOpenConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -953,7 +984,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -1046,6 +1077,8 @@ Data and other attributes inherited from <a href="ranger.gui.widgets.console.htm
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="SearchConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="SearchConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -1096,7 +1129,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.gui.widgets.console_mode.html b/doc/pydoc/ranger.gui.widgets.console_mode.html
index acae15bc..155fe07d 100644
--- a/doc/pydoc/ranger.gui.widgets.console_mode.html
+++ b/doc/pydoc/ranger.gui.widgets.console_mode.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.console_mode</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/console_mode.py">/home/hut/ranger/ranger/gui/widgets/console_mode.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
diff --git a/doc/pydoc/ranger.gui.widgets.html b/doc/pydoc/ranger.gui.widgets.html
index 4ddbde76..a37dabc9 100644
--- a/doc/pydoc/ranger.gui.widgets.html
+++ b/doc/pydoc/ranger.gui.widgets.html
@@ -9,19 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.widgets</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/__init__.py">/home/hut/ranger/ranger/gui/widgets/__init__.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -74,6 +75,8 @@ classification of widgets.<br> </tt></td></tr>
</dl>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="Widget-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="Widget-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -136,7 +139,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.pager.html b/doc/pydoc/ranger.gui.widgets.pager.html
index add03cde..9705600f 100644
--- a/doc/pydoc/ranger.gui.widgets.pager.html
+++ b/doc/pydoc/ranger.gui.widgets.pager.html
@@ -87,6 +87,8 @@ Data and other attributes defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="Pager-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="Pager-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -134,7 +136,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -143,8 +145,8 @@ Data and other attributes inherited from <a href="ranger.shared.settings.html#Se
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>BAR_REGEXP</strong> = <_sre.SRE_Pattern object at 0xfe2270><br>
-<strong>QUOTES_REGEXP</strong> = <_sre.SRE_Pattern object at 0xfdc580><br>
-<strong>SPECIAL_CHARS_REGEXP</strong> = <_sre.SRE_Pattern object at 0xfe43a0><br>
-<strong>TITLE_REGEXP</strong> = <_sre.SRE_Pattern object at 0xf944b0></td></tr></table>
+<td width="100%"><strong>BAR_REGEXP</strong> = <_sre.SRE_Pattern object><br>
+<strong>QUOTES_REGEXP</strong> = <_sre.SRE_Pattern object><br>
+<strong>SPECIAL_CHARS_REGEXP</strong> = <_sre.SRE_Pattern object><br>
+<strong>TITLE_REGEXP</strong> = <_sre.SRE_Pattern object></td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.statusbar.html b/doc/pydoc/ranger.gui.widgets.statusbar.html
index d8803a67..1a97d532 100644
--- a/doc/pydoc/ranger.gui.widgets.statusbar.html
+++ b/doc/pydoc/ranger.gui.widgets.statusbar.html
@@ -119,6 +119,8 @@ Data and other attributes defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="StatusBar-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="StatusBar-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an <a href="__builtin__.html#object">object</a> with x and y methods.</tt></dd></dl>
@@ -175,7 +177,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.gui.widgets.taskview.html b/doc/pydoc/ranger.gui.widgets.taskview.html
index 9407d96c..28c63c4e 100644
--- a/doc/pydoc/ranger.gui.widgets.taskview.html
+++ b/doc/pydoc/ranger.gui.widgets.taskview.html
@@ -80,6 +80,8 @@ Data and other attributes defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="TaskView-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="TaskView-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -130,7 +132,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
<hr>
Methods inherited from <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>:<br>
diff --git a/doc/pydoc/ranger.gui.widgets.titlebar.html b/doc/pydoc/ranger.gui.widgets.titlebar.html
index 8bf58172..419eb5b1 100644
--- a/doc/pydoc/ranger.gui.widgets.titlebar.html
+++ b/doc/pydoc/ranger.gui.widgets.titlebar.html
@@ -63,6 +63,8 @@ Data and other attributes defined here:<br>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
+<dl><dt><a name="TitleBar-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
+
<dl><dt><a name="TitleBar-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
@@ -121,7 +123,7 @@ Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/doc/pydoc/ranger.html b/doc/pydoc/ranger.html
index ba425b71..cba764cb 100644
--- a/doc/pydoc/ranger.html
+++ b/doc/pydoc/ranger.html
@@ -6,7 +6,7 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>ranger</strong></big></big> (version 1.0.3)</font></td
+<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>ranger</strong></big></big> (version 1.0.4)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/__init__.py">/home/hut/ranger/ranger/__init__.py</a></font></td></tr></table>
<p><tt>Ranger - file browser for the unix terminal</tt></p>
@@ -18,51 +18,58 @@
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.__main__.html">__main__</a><br>
-<a href="ranger.actions.html">actions</a><br>
<a href="ranger.api.html"><strong>api</strong> (package)</a><br>
-<a href="ranger.applications.html">applications</a><br>
-</td><td width="25%" valign=top><a href="ranger.colorschemes.html"><strong>colorschemes</strong> (package)</a><br>
-<a href="ranger.commands.html">commands</a><br>
-<a href="ranger.container.html"><strong>container</strong> (package)</a><br>
+<a href="ranger.colorschemes.html"><strong>colorschemes</strong> (package)</a><br>
+</td><td width="25%" valign=top><a href="ranger.container.html"><strong>container</strong> (package)</a><br>
+<a href="ranger.core.html"><strong>core</strong> (package)</a><br>
<a href="ranger.defaults.html"><strong>defaults</strong> (package)</a><br>
</td><td width="25%" valign=top><a href="ranger.ext.html"><strong>ext</strong> (package)</a><br>
-<a href="ranger.fm.html">fm</a><br>
<a href="ranger.fsobject.html"><strong>fsobject</strong> (package)</a><br>
<a href="ranger.gui.html"><strong>gui</strong> (package)</a><br>
</td><td width="25%" valign=top><a href="ranger.help.html"><strong>help</strong> (package)</a><br>
-<a href="ranger.keyapi.html">keyapi</a><br>
-<a href="ranger.runner.html">runner</a><br>
<a href="ranger.shared.html"><strong>shared</strong> (package)</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#eeaa77">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
+
+<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
+<td width="100%"><dl><dt><a name="-log"><strong>log</strong></a>(*objects, **keywords)</dt><dd><tt>Writes objects to a logfile (for the purpose of debugging only.)<br>
+Has the same arguments as print() in python3.</tt></dd></dl>
+ <dl><dt><a name="-relpath"><strong>relpath</strong></a>(*paths)</dt><dd><tt>returns the path relative to rangers library directory</tt></dd></dl>
+ <dl><dt><a name="-relpath_conf"><strong>relpath_conf</strong></a>(*paths)</dt><dd><tt>returns the path relative to rangers configuration directory</tt></dd></dl>
+</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>CONFDIR</strong> = '/home/hut/.ranger'<br>
+<td width="100%"><strong>DEFAULT_CONFDIR</strong> = '~/.ranger'<br>
+<strong>LOGFILE</strong> = '/tmp/errorlog'<br>
<strong>RANGERDIR</strong> = '/home/hut/ranger/ranger'<br>
<strong>USAGE</strong> = '%prog [options] [path/filename]'<br>
-<strong>__author__</strong> = 'hut'<br>
-<strong>__copyright__</strong> = 'none'<br>
-<strong>__credits__</strong> = 'hut'<br>
-<strong>__email__</strong> = 'hut@lavabit.com'<br>
-<strong>__license__</strong> = 'ISC'<br>
-<strong>__maintainer__</strong> = 'hut'<br>
-<strong>__version__</strong> = '1.0.3'<br>
-<strong>debug</strong> = False</td></tr></table><p>
+<strong>__author__</strong> = 'Roman Zimbelmann'<br>
+<strong>__copyright__</strong> = '<font color="#c040c0">\n</font>Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><font color="#c040c0">\n</font>'<br>
+<strong>__credits__</strong> = 'Roman Zimbelmann'<br>
+<strong>__email__</strong> = 'romanz@lavabit.com'<br>
+<strong>__license__</strong> = 'GPL3'<br>
+<strong>__maintainer__</strong> = 'Roman Zimbelmann'<br>
+<strong>__version__</strong> = '1.0.4'<br>
+<strong>arg</strong> = {'cd_after_exit': False, 'debug': False, 'flags'...n': False, 'confdir': '~/.ranger', 'targets': []}</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
<tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td>
-<td width="100%">hut</td></tr></table><p>
+<td width="100%">Roman Zimbelmann</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Credits</strong></big></font></td></tr>
<tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td>
-<td width="100%">hut</td></tr></table>
+<td width="100%">Roman Zimbelmann</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.keyapi.html b/doc/pydoc/ranger.keyapi.html
deleted file mode 100644
index bd6dc21d..00000000
--- a/doc/pydoc/ranger.keyapi.html
+++ /dev/null
@@ -1,412 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.keyapi</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.keyapi</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/keyapi.pyc">/home/hut/ranger/ranger/keyapi.pyc</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.widgets.console_mode.html">ranger.gui.widgets.console_mode</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.keyapi.html#Wrapper">Wrapper</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Wrapper">class <strong>Wrapper</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Wrapper-__getattr__"><strong>__getattr__</strong></a>(self, attr)</dt></dl>
-
-<dl><dt><a name="Wrapper-__init__"><strong>__init__</strong></a>(self, firstattr)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-baudrate"><strong>baudrate</strong></a>(...)</dt></dl>
- <dl><dt><a name="-beep"><strong>beep</strong></a>(...)</dt></dl>
- <dl><dt><a name="-can_change_color"><strong>can_change_color</strong></a>(...)</dt></dl>
- <dl><dt><a name="-cbreak"><strong>cbreak</strong></a>(...)</dt></dl>
- <dl><dt><a name="-color_content"><strong>color_content</strong></a>(...)</dt></dl>
- <dl><dt><a name="-color_pair"><strong>color_pair</strong></a>(...)</dt></dl>
- <dl><dt><a name="-curs_set"><strong>curs_set</strong></a>(...)</dt></dl>
- <dl><dt><a name="-def_prog_mode"><strong>def_prog_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-def_shell_mode"><strong>def_shell_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-delay_output"><strong>delay_output</strong></a>(...)</dt></dl>
- <dl><dt><a name="-doupdate"><strong>doupdate</strong></a>(...)</dt></dl>
- <dl><dt><a name="-echo"><strong>echo</strong></a>(...)</dt></dl>
- <dl><dt><a name="-endwin"><strong>endwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-erasechar"><strong>erasechar</strong></a>(...)</dt></dl>
- <dl><dt><a name="-filter"><strong>filter</strong></a>(...)</dt></dl>
- <dl><dt><a name="-flash"><strong>flash</strong></a>(...)</dt></dl>
- <dl><dt><a name="-flushinp"><strong>flushinp</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getmouse"><strong>getmouse</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getsyx"><strong>getsyx</strong></a>(...)</dt></dl>
- <dl><dt><a name="-getwin"><strong>getwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-halfdelay"><strong>halfdelay</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_colors"><strong>has_colors</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_ic"><strong>has_ic</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_il"><strong>has_il</strong></a>(...)</dt></dl>
- <dl><dt><a name="-has_key"><strong>has_key</strong></a>(...)</dt></dl>
- <dl><dt><a name="-init_color"><strong>init_color</strong></a>(...)</dt></dl>
- <dl><dt><a name="-init_pair"><strong>init_pair</strong></a>(...)</dt></dl>
- <dl><dt><a name="-intrflush"><strong>intrflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-is_term_resized"><strong>is_term_resized</strong></a>(...)</dt></dl>
- <dl><dt><a name="-isendwin"><strong>isendwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-keyname"><strong>keyname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-killchar"><strong>killchar</strong></a>(...)</dt></dl>
- <dl><dt><a name="-longname"><strong>longname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-make_abbreviations"><strong>make_abbreviations</strong></a>(command_list)</dt></dl>
- <dl><dt><a name="-meta"><strong>meta</strong></a>(...)</dt></dl>
- <dl><dt><a name="-mouseinterval"><strong>mouseinterval</strong></a>(...)</dt></dl>
- <dl><dt><a name="-mousemask"><strong>mousemask</strong></a>(...)</dt></dl>
- <dl><dt><a name="-napms"><strong>napms</strong></a>(...)</dt></dl>
- <dl><dt><a name="-narg"><strong>narg</strong></a>(number_, function_, *args_, **keywords_)</dt><dd><tt>This applies the replace_narg function to the arguments and keywords<br>
-and directly runs this function.<br>
- <br>
-Example:<br>
-def foo(xyz, narg): return hash((xyz, narg))<br>
- <br>
-<a href="#-narg">narg</a>(50, foo, 123) == foo(123, narg=50)</tt></dd></dl>
- <dl><dt><a name="-newpad"><strong>newpad</strong></a>(...)</dt></dl>
- <dl><dt><a name="-newwin"><strong>newwin</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nl"><strong>nl</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nocbreak"><strong>nocbreak</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noecho"><strong>noecho</strong></a>(...)</dt></dl>
- <dl><dt><a name="-nonl"><strong>nonl</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noqiflush"><strong>noqiflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-noraw"><strong>noraw</strong></a>(...)</dt></dl>
- <dl><dt><a name="-pair_content"><strong>pair_content</strong></a>(...)</dt></dl>
- <dl><dt><a name="-pair_number"><strong>pair_number</strong></a>(...)</dt></dl>
- <dl><dt><a name="-putp"><strong>putp</strong></a>(...)</dt></dl>
- <dl><dt><a name="-qiflush"><strong>qiflush</strong></a>(...)</dt></dl>
- <dl><dt><a name="-raw"><strong>raw</strong></a>(...)</dt></dl>
- <dl><dt><a name="-replace_narg"><strong>replace_narg</strong></a>(number, function, args, keywords)</dt><dd><tt>This function returns (args, keywords) with one little change:<br>
-if <function> has a named argument called "narg", args and keywords<br>
-will be modified so that the value of "narg" will be <number>.<br>
- <br>
-def foo(xyz, narg): pass<br>
- <br>
-<a href="#-replace_narg">replace_narg</a>(666, foo, (), {'narg': 10, 'xyz': 5})<br>
-=> (), {'narg': 666, 'xyz': 5}<br>
- <br>
-<a href="#-replace_narg">replace_narg</a>(666, foo, (1, 2), {})<br>
-=> (1, 666), {}</tt></dd></dl>
- <dl><dt><a name="-reset_prog_mode"><strong>reset_prog_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-reset_shell_mode"><strong>reset_shell_mode</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resetty"><strong>resetty</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resize_term"><strong>resize_term</strong></a>(...)</dt></dl>
- <dl><dt><a name="-resizeterm"><strong>resizeterm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-savetty"><strong>savetty</strong></a>(...)</dt></dl>
- <dl><dt><a name="-setsyx"><strong>setsyx</strong></a>(...)</dt></dl>
- <dl><dt><a name="-setupterm"><strong>setupterm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-termattrs"><strong>termattrs</strong></a>(...)</dt></dl>
- <dl><dt><a name="-termname"><strong>termname</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetflag"><strong>tigetflag</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetnum"><strong>tigetnum</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tigetstr"><strong>tigetstr</strong></a>(...)</dt></dl>
- <dl><dt><a name="-tparm"><strong>tparm</strong></a>(...)</dt></dl>
- <dl><dt><a name="-typeahead"><strong>typeahead</strong></a>(...)</dt></dl>
- <dl><dt><a name="-ungetch"><strong>ungetch</strong></a>(...)</dt></dl>
- <dl><dt><a name="-ungetmouse"><strong>ungetmouse</strong></a>(...)</dt></dl>
- <dl><dt><a name="-use_default_colors"><strong>use_default_colors</strong></a>(...)</dt></dl>
- <dl><dt><a name="-use_env"><strong>use_env</strong></a>(...)</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>ACK</strong> = 6<br>
-<strong>ALLOWED_BOOKMARK_KEYS</strong> = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`'"<br>
-<strong>ALL_MOUSE_EVENTS</strong> = 134217727<br>
-<strong>A_ALTCHARSET</strong> = 4194304<br>
-<strong>A_ATTRIBUTES</strong> = 4294967040<br>
-<strong>A_BLINK</strong> = 524288<br>
-<strong>A_BOLD</strong> = 2097152<br>
-<strong>A_CHARTEXT</strong> = 255<br>
-<strong>A_COLOR</strong> = 65280<br>
-<strong>A_DIM</strong> = 1048576<br>
-<strong>A_HORIZONTAL</strong> = 33554432<br>
-<strong>A_INVIS</strong> = 8388608<br>
-<strong>A_LEFT</strong> = 67108864<br>
-<strong>A_LOW</strong> = 134217728<br>
-<strong>A_NORMAL</strong> = 0<br>
-<strong>A_PROTECT</strong> = 16777216<br>
-<strong>A_REVERSE</strong> = 262144<br>
-<strong>A_RIGHT</strong> = 268435456<br>
-<strong>A_STANDOUT</strong> = 65536<br>
-<strong>A_TOP</strong> = 536870912<br>
-<strong>A_UNDERLINE</strong> = 131072<br>
-<strong>A_VERTICAL</strong> = 1073741824<br>
-<strong>BEL</strong> = 7<br>
-<strong>BS</strong> = 8<br>
-<strong>BUTTON1_CLICKED</strong> = 4<br>
-<strong>BUTTON1_DOUBLE_CLICKED</strong> = 8<br>
-<strong>BUTTON1_PRESSED</strong> = 2<br>
-<strong>BUTTON1_RELEASED</strong> = 1<br>
-<strong>BUTTON1_TRIPLE_CLICKED</strong> = 16<br>
-<strong>BUTTON2_CLICKED</strong> = 256<br>
-<strong>BUTTON2_DOUBLE_CLICKED</strong> = 512<br>
-<strong>BUTTON2_PRESSED</strong> = 128<br>
-<strong>BUTTON2_RELEASED</strong> = 64<br>
-<strong>BUTTON2_TRIPLE_CLICKED</strong> = 1024<br>
-<strong>BUTTON3_CLICKED</strong> = 16384<br>
-<strong>BUTTON3_DOUBLE_CLICKED</strong> = 32768<br>
-<strong>BUTTON3_PRESSED</strong> = 8192<br>
-<strong>BUTTON3_RELEASED</strong> = 4096<br>
-<strong>BUTTON3_TRIPLE_CLICKED</strong> = 65536<br>
-<strong>BUTTON4_CLICKED</strong> = 1048576<br>
-<strong>BUTTON4_DOUBLE_CLICKED</strong> = 2097152<br>
-<strong>BUTTON4_PRESSED</strong> = 524288<br>
-<strong>BUTTON4_RELEASED</strong> = 262144<br>
-<strong>BUTTON4_TRIPLE_CLICKED</strong> = 4194304<br>
-<strong>BUTTON_ALT</strong> = 67108864<br>
-<strong>BUTTON_CTRL</strong> = 16777216<br>
-<strong>BUTTON_SHIFT</strong> = 33554432<br>
-<strong>CAN</strong> = 24<br>
-<strong>COLOR_BLACK</strong> = 0<br>
-<strong>COLOR_BLUE</strong> = 4<br>
-<strong>COLOR_CYAN</strong> = 6<br>
-<strong>COLOR_GREEN</strong> = 2<br>
-<strong>COLOR_MAGENTA</strong> = 5<br>
-<strong>COLOR_RED</strong> = 1<br>
-<strong>COLOR_WHITE</strong> = 7<br>
-<strong>COLOR_YELLOW</strong> = 3<br>
-<strong>CR</strong> = 13<br>
-<strong>DC1</strong> = 17<br>
-<strong>DC2</strong> = 18<br>
-<strong>DC3</strong> = 19<br>
-<strong>DC4</strong> = 20<br>
-<strong>DEL</strong> = 127<br>
-<strong>DLE</strong> = 16<br>
-<strong>EM</strong> = 25<br>
-<strong>ENQ</strong> = 5<br>
-<strong>EOT</strong> = 4<br>
-<strong>ERR</strong> = -1<br>
-<strong>ESC</strong> = 27<br>
-<strong>ETB</strong> = 23<br>
-<strong>ETX</strong> = 3<br>
-<strong>FF</strong> = 12<br>
-<strong>FS</strong> = 28<br>
-<strong>GS</strong> = 29<br>
-<strong>HT</strong> = 9<br>
-<strong>KEY_A1</strong> = 348<br>
-<strong>KEY_A3</strong> = 349<br>
-<strong>KEY_B2</strong> = 350<br>
-<strong>KEY_BACKSPACE</strong> = 263<br>
-<strong>KEY_BEG</strong> = 354<br>
-<strong>KEY_BREAK</strong> = 257<br>
-<strong>KEY_BTAB</strong> = 353<br>
-<strong>KEY_C1</strong> = 351<br>
-<strong>KEY_C3</strong> = 352<br>
-<strong>KEY_CANCEL</strong> = 355<br>
-<strong>KEY_CATAB</strong> = 342<br>
-<strong>KEY_CLEAR</strong> = 333<br>
-<strong>KEY_CLOSE</strong> = 356<br>
-<strong>KEY_COMMAND</strong> = 357<br>
-<strong>KEY_COPY</strong> = 358<br>
-<strong>KEY_CREATE</strong> = 359<br>
-<strong>KEY_CTAB</strong> = 341<br>
-<strong>KEY_DC</strong> = 330<br>
-<strong>KEY_DL</strong> = 328<br>
-<strong>KEY_DOWN</strong> = 258<br>
-<strong>KEY_EIC</strong> = 332<br>
-<strong>KEY_END</strong> = 360<br>
-<strong>KEY_ENTER</strong> = 343<br>
-<strong>KEY_EOL</strong> = 335<br>
-<strong>KEY_EOS</strong> = 334<br>
-<strong>KEY_EXIT</strong> = 361<br>
-<strong>KEY_F0</strong> = 264<br>
-<strong>KEY_F1</strong> = 265<br>
-<strong>KEY_F10</strong> = 274<br>
-<strong>KEY_F11</strong> = 275<br>
-<strong>KEY_F12</strong> = 276<br>
-<strong>KEY_F13</strong> = 277<br>
-<strong>KEY_F14</strong> = 278<br>
-<strong>KEY_F15</strong> = 279<br>
-<strong>KEY_F16</strong> = 280<br>
-<strong>KEY_F17</strong> = 281<br>
-<strong>KEY_F18</strong> = 282<br>
-<strong>KEY_F19</strong> = 283<br>
-<strong>KEY_F2</strong> = 266<br>
-<strong>KEY_F20</strong> = 284<br>
-<strong>KEY_F21</strong> = 285<br>
-<strong>KEY_F22</strong> = 286<br>
-<strong>KEY_F23</strong> = 287<br>
-<strong>KEY_F24</strong> = 288<br>
-<strong>KEY_F25</strong> = 289<br>
-<strong>KEY_F26</strong> = 290<br>
-<strong>KEY_F27</strong> = 291<br>
-<strong>KEY_F28</strong> = 292<br>
-<strong>KEY_F29</strong> = 293<br>
-<strong>KEY_F3</strong> = 267<br>
-<strong>KEY_F30</strong> = 294<br>
-<strong>KEY_F31</strong> = 295<br>
-<strong>KEY_F32</strong> = 296<br>
-<strong>KEY_F33</strong> = 297<br>
-<strong>KEY_F34</strong> = 298<br>
-<strong>KEY_F35</strong> = 299<br>
-<strong>KEY_F36</strong> = 300<br>
-<strong>KEY_F37</strong> = 301<br>
-<strong>KEY_F38</strong> = 302<br>
-<strong>KEY_F39</strong> = 303<br>
-<strong>KEY_F4</strong> = 268<br>
-<strong>KEY_F40</strong> = 304<br>
-<strong>KEY_F41</strong> = 305<br>
-<strong>KEY_F42</strong> = 306<br>
-<strong>KEY_F43</strong> = 307<br>
-<strong>KEY_F44</strong> = 308<br>
-<strong>KEY_F45</strong> = 309<br>
-<strong>KEY_F46</strong> = 310<br>
-<strong>KEY_F47</strong> = 311<br>
-<strong>KEY_F48</strong> = 312<br>
-<strong>KEY_F49</strong> = 313<br>
-<strong>KEY_F5</strong> = 269<br>
-<strong>KEY_F50</strong> = 314<br>
-<strong>KEY_F51</strong> = 315<br>
-<strong>KEY_F52</strong> = 316<br>
-<strong>KEY_F53</strong> = 317<br>
-<strong>KEY_F54</strong> = 318<br>
-<strong>KEY_F55</strong> = 319<br>
-<strong>KEY_F56</strong> = 320<br>
-<strong>KEY_F57</strong> = 321<br>
-<strong>KEY_F58</strong> = 322<br>
-<strong>KEY_F59</strong> = 323<br>
-<strong>KEY_F6</strong> = 270<br>
-<strong>KEY_F60</strong> = 324<br>
-<strong>KEY_F61</strong> = 325<br>
-<strong>KEY_F62</strong> = 326<br>
-<strong>KEY_F63</strong> = 327<br>
-<strong>KEY_F7</strong> = 271<br>
-<strong>KEY_F8</strong> = 272<br>
-<strong>KEY_F9</strong> = 273<br>
-<strong>KEY_FIND</strong> = 362<br>
-<strong>KEY_HELP</strong> = 363<br>
-<strong>KEY_HOME</strong> = 262<br>
-<strong>KEY_IC</strong> = 331<br>
-<strong>KEY_IL</strong> = 329<br>
-<strong>KEY_LEFT</strong> = 260<br>
-<strong>KEY_LL</strong> = 347<br>
-<strong>KEY_MARK</strong> = 364<br>
-<strong>KEY_MAX</strong> = 511<br>
-<strong>KEY_MESSAGE</strong> = 365<br>
-<strong>KEY_MIN</strong> = 257<br>
-<strong>KEY_MOUSE</strong> = 409<br>
-<strong>KEY_MOVE</strong> = 366<br>
-<strong>KEY_NEXT</strong> = 367<br>
-<strong>KEY_NPAGE</strong> = 338<br>
-<strong>KEY_OPEN</strong> = 368<br>
-<strong>KEY_OPTIONS</strong> = 369<br>
-<strong>KEY_PPAGE</strong> = 339<br>
-<strong>KEY_PREVIOUS</strong> = 370<br>
-<strong>KEY_PRINT</strong> = 346<br>
-<strong>KEY_REDO</strong> = 371<br>
-<strong>KEY_REFERENCE</strong> = 372<br>
-<strong>KEY_REFRESH</strong> = 373<br>
-<strong>KEY_REPLACE</strong> = 374<br>
-<strong>KEY_RESET</strong> = 345<br>
-<strong>KEY_RESIZE</strong> = 410<br>
-<strong>KEY_RESTART</strong> = 375<br>
-<strong>KEY_RESUME</strong> = 376<br>
-<strong>KEY_RIGHT</strong> = 261<br>
-<strong>KEY_SAVE</strong> = 377<br>
-<strong>KEY_SBEG</strong> = 378<br>
-<strong>KEY_SCANCEL</strong> = 379<br>
-<strong>KEY_SCOMMAND</strong> = 380<br>
-<strong>KEY_SCOPY</strong> = 381<br>
-<strong>KEY_SCREATE</strong> = 382<br>
-<strong>KEY_SDC</strong> = 383<br>
-<strong>KEY_SDL</strong> = 384<br>
-<strong>KEY_SELECT</strong> = 385<br>
-<strong>KEY_SEND</strong> = 386<br>
-<strong>KEY_SEOL</strong> = 387<br>
-<strong>KEY_SEXIT</strong> = 388<br>
-<strong>KEY_SF</strong> = 336<br>
-<strong>KEY_SFIND</strong> = 389<br>
-<strong>KEY_SHELP</strong> = 390<br>
-<strong>KEY_SHOME</strong> = 391<br>
-<strong>KEY_SIC</strong> = 392<br>
-<strong>KEY_SLEFT</strong> = 393<br>
-<strong>KEY_SMESSAGE</strong> = 394<br>
-<strong>KEY_SMOVE</strong> = 395<br>
-<strong>KEY_SNEXT</strong> = 396<br>
-<strong>KEY_SOPTIONS</strong> = 397<br>
-<strong>KEY_SPREVIOUS</strong> = 398<br>
-<strong>KEY_SPRINT</strong> = 399<br>
-<strong>KEY_SR</strong> = 337<br>
-<strong>KEY_SREDO</strong> = 400<br>
-<strong>KEY_SREPLACE</strong> = 401<br>
-<strong>KEY_SRESET</strong> = 344<br>
-<strong>KEY_SRIGHT</strong> = 402<br>
-<strong>KEY_SRSUME</strong> = 403<br>
-<strong>KEY_SSAVE</strong> = 404<br>
-<strong>KEY_SSUSPEND</strong> = 405<br>
-<strong>KEY_STAB</strong> = 340<br>
-<strong>KEY_SUNDO</strong> = 406<br>
-<strong>KEY_SUSPEND</strong> = 407<br>
-<strong>KEY_UNDO</strong> = 408<br>
-<strong>KEY_UP</strong> = 259<br>
-<strong>LF</strong> = 10<br>
-<strong>NAK</strong> = 21<br>
-<strong>NARG_KEYWORD</strong> = 'narg'<br>
-<strong>NL</strong> = 10<br>
-<strong>NUL</strong> = 0<br>
-<strong>OK</strong> = 0<br>
-<strong>RANGERDIR</strong> = '/home/hut/ranger/ranger'<br>
-<strong>REPORT_MOUSE_POSITION</strong> = 134217728<br>
-<strong>RS</strong> = 30<br>
-<strong>SI</strong> = 15<br>
-<strong>SO</strong> = 14<br>
-<strong>SOH</strong> = 1<br>
-<strong>SP</strong> = 32<br>
-<strong>STX</strong> = 2<br>
-<strong>SUB</strong> = 26<br>
-<strong>SYN</strong> = 22<br>
-<strong>TAB</strong> = 9<br>
-<strong>US</strong> = 31<br>
-<strong>VT</strong> = 11<br>
-<strong>controlnames</strong> = ['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'SO', 'SI', 'DLE', 'DC1', 'DC2', 'DC3', ...]<br>
-<strong>fm</strong> = <ranger.keyapi.Wrapper object at 0x1057c10><br>
-<strong>version</strong> = '2.2'<br>
-<strong>wdg</strong> = <ranger.keyapi.Wrapper object at 0x1057dd0></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.shared.mimetype.html b/doc/pydoc/ranger.shared.mimetype.html
index 9fda6d62..5ed1c0ba 100644
--- a/doc/pydoc/ranger.shared.mimetype.html
+++ b/doc/pydoc/ranger.shared.mimetype.html
@@ -9,21 +9,30 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.shared.html"><font color="#ffffff">shared</font></a>.mimetype</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/shared/mimetype.py">/home/hut/ranger/ranger/shared/mimetype.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="mimetypes.html">mimetypes</a><br>
+</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
diff --git a/doc/pydoc/ranger.shared.settings.html b/doc/pydoc/ranger.shared.settings.html
index c47e0721..29d43fc6 100644
--- a/doc/pydoc/ranger.shared.settings.html
+++ b/doc/pydoc/ranger.shared.settings.html
@@ -9,21 +9,32 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.shared.html"><font color="#ffffff">shared</font></a>.settings</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/shared/settings.py">/home/hut/ranger/ranger/shared/settings.py</a></font></td></tr></table>
- <p><tt># Copyright (c) 2009, 2010 hut <hut@lavabit.com><br>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
-# Permission to use, copy, modify, and/or distribute this software for any<br>
-# purpose with or without fee is hereby granted, provided that the above<br>
-# copyright notice and this permission notice appear in all copies.<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
#<br>
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES<br>
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF<br>
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR<br>
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES<br>
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN<br>
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF<br>
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</tt></p>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
+</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
+</td><td width="25%" valign=top><a href="types.html">types</a><br>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
@@ -43,7 +54,9 @@
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="SettingsAware">class <strong>SettingsAware</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt># -- globalize the settings --<br> </tt></td></tr>
+<tr><td> </td>
<td width="100%">Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
@@ -53,14 +66,22 @@
</dl>
<hr>
Data and other attributes defined here:<br>
-<dl><dt><strong>settings</strong> = <ranger.ext.openstruct.OpenStruct object at 0xe2f090></dl>
+<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#eeaa77">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
+
+<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
+<td width="100%"><dl><dt><a name="-check_option_types"><strong>check_option_types</strong></a>(opt)</dt></dl>
+</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>ALLOWED_SETTINGS</strong> = ['show_hidden', 'scroll_offset', 'show_cursor', 'directories_first', 'sort', 'reverse', 'preview_files', 'max_history_size', 'colorscheme', 'collapse_preview', 'update_title', 'hidden_filter', 'flushinput', 'autosave_bookmarks']</td></tr></table>
+<td width="100%"><strong>ALLOWED_SETTINGS</strong> = {'autosave_bookmarks': <type 'bool'>, 'collapse_preview': <type 'bool'>, 'colorscheme': <type 'str'>, 'directories_first': <type 'bool'>, 'draw_borders': <type 'bool'>, 'flushinput': <type 'bool'>, 'hidden_filter': <function <lambda>>, 'max_filesize_for_preview': (<type 'int'>, <type 'NoneType'>), 'max_history_size': (<type 'int'>, <type 'NoneType'>), 'preview_directories': <type 'bool'>, ...}</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/sys.html b/doc/pydoc/sys.html
deleted file mode 100644
index 65a2a515..00000000
--- a/doc/pydoc/sys.html
+++ /dev/null
@@ -1,245 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: built-in module sys</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>sys</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br>(built-in)<br><a href="http://docs.python.org/library/sys">Module Docs</a></font></td></tr></table>
- <p><tt>This module provides access to some objects used or maintained by the<br>
-interpreter and to functions that interact strongly with the interpreter.<br>
- <br>
-Dynamic objects:<br>
- <br>
-argv -- command line arguments; argv[0] is the script pathname if known<br>
-path -- module search path; path[0] is the script directory, else ''<br>
-modules -- dictionary of loaded modules<br>
- <br>
-displayhook -- called to show results in an interactive session<br>
-excepthook -- called to handle any uncaught exception other than SystemExit<br>
- To customize printing in an interactive session or to install a custom<br>
- top-level exception handler, assign other functions to replace these.<br>
- <br>
-exitfunc -- if sys.exitfunc exists, this routine is called when Python exits<br>
- Assigning to sys.exitfunc is deprecated; use the atexit module instead.<br>
- <br>
-stdin -- standard input file object; used by raw_input() and input()<br>
-stdout -- standard output file object; used by the print statement<br>
-stderr -- standard error object; used for error messages<br>
- By assigning other file objects (or objects that behave like files)<br>
- to these, it is possible to redirect all of the interpreter's I/O.<br>
- <br>
-last_type -- type of last uncaught exception<br>
-last_value -- value of last uncaught exception<br>
-last_traceback -- traceback of last uncaught exception<br>
- These three are only available in an interactive session after a<br>
- traceback has been printed.<br>
- <br>
-exc_type -- type of exception currently being handled<br>
-exc_value -- value of exception currently being handled<br>
-exc_traceback -- traceback of exception currently being handled<br>
- The function <a href="#-exc_info">exc_info</a>() should be used instead of these three,<br>
- because it is thread-safe.<br>
- <br>
-Static objects:<br>
- <br>
-maxint -- the largest supported integer (the smallest is -maxint-1)<br>
-maxsize -- the largest supported length of containers.<br>
-maxunicode -- the largest supported character<br>
-builtin_module_names -- tuple of module names built into this interpreter<br>
-version -- the version of this interpreter as a string<br>
-version_info -- version information as a tuple<br>
-hexversion -- version information encoded as a single integer<br>
-copyright -- copyright notice pertaining to this interpreter<br>
-platform -- platform identifier<br>
-executable -- pathname of this Python interpreter<br>
-prefix -- prefix used to find the Python library<br>
-exec_prefix -- prefix used to find the machine-specific Python library<br>
-__stdin__ -- the original stdin; don't touch!<br>
-__stdout__ -- the original stdout; don't touch!<br>
-__stderr__ -- the original stderr; don't touch!<br>
-__displayhook__ -- the original displayhook; don't touch!<br>
-__excepthook__ -- the original excepthook; don't touch!<br>
- <br>
-Functions:<br>
- <br>
-<a href="#-displayhook">displayhook</a>() -- print an object to the screen, and save it in __builtin__._<br>
-<a href="#-excepthook">excepthook</a>() -- print an exception and its traceback to sys.stderr<br>
-<a href="#-exc_info">exc_info</a>() -- return thread-safe information about the current exception<br>
-<a href="#-exc_clear">exc_clear</a>() -- clear the exception state for the current thread<br>
-<a href="#-exit">exit</a>() -- exit the interpreter by raising SystemExit<br>
-<a href="#-getdlopenflags">getdlopenflags</a>() -- returns flags to be used for dlopen() calls<br>
-<a href="#-getprofile">getprofile</a>() -- get the global profiling function<br>
-<a href="#-getrefcount">getrefcount</a>() -- return the reference count for an object (plus one :-)<br>
-<a href="#-getrecursionlimit">getrecursionlimit</a>() -- return the max recursion depth for the interpreter<br>
-<a href="#-getsizeof">getsizeof</a>() -- return the size of an object in bytes<br>
-<a href="#-gettrace">gettrace</a>() -- get the global debug tracing function<br>
-<a href="#-setcheckinterval">setcheckinterval</a>() -- control how often the interpreter checks for events<br>
-<a href="#-setdlopenflags">setdlopenflags</a>() -- set the flags to be used for dlopen() calls<br>
-<a href="#-setprofile">setprofile</a>() -- set the global profiling function<br>
-<a href="#-setrecursionlimit">setrecursionlimit</a>() -- set the max recursion depth for the interpreter<br>
-<a href="#-settrace">settrace</a>() -- set the global debug tracing function</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-__displayhook__"><strong>__displayhook__</strong></a> = displayhook(...)</dt><dd><tt><a href="#-displayhook">displayhook</a>(object) -> None<br>
- <br>
-Print an object to sys.stdout and also save it in __builtin__.</tt></dd></dl>
- <dl><dt><a name="-__excepthook__"><strong>__excepthook__</strong></a> = excepthook(...)</dt><dd><tt><a href="#-excepthook">excepthook</a>(exctype, value, traceback) -> None<br>
- <br>
-Handle an exception by displaying it with a traceback on sys.stderr.</tt></dd></dl>
- <dl><dt><a name="-call_tracing"><strong>call_tracing</strong></a>(...)</dt><dd><tt><a href="#-call_tracing">call_tracing</a>(func, args) -> object<br>
- <br>
-Call func(*args), while tracing is enabled. The tracing state is<br>
-saved, and restored afterwards. This is intended to be called from<br>
-a debugger from a checkpoint, to recursively debug some other code.</tt></dd></dl>
- <dl><dt><a name="-callstats"><strong>callstats</strong></a>(...)</dt><dd><tt><a href="#-callstats">callstats</a>() -> tuple of integers<br>
- <br>
-Return a tuple of function call statistics, if CALL_PROFILE was defined<br>
-when Python was built. Otherwise, return None.<br>
- <br>
-When enabled, this function returns detailed, implementation-specific<br>
-details about the number of function calls executed. The return value is<br>
-a 11-tuple where the entries in the tuple are counts of:<br>
-0. all function calls<br>
-1. calls to PyFunction_Type objects<br>
-2. PyFunction calls that do not create an argument tuple<br>
-3. PyFunction calls that do not create an argument tuple<br>
- and bypass PyEval_EvalCodeEx()<br>
-4. PyMethod calls<br>
-5. PyMethod calls on bound methods<br>
-6. PyType calls<br>
-7. PyCFunction calls<br>
-8. generator calls<br>
-9. All other calls<br>
-10. Number of stack pops performed by call_function()</tt></dd></dl>
- <dl><dt><a name="-displayhook"><strong>displayhook</strong></a>(...)</dt><dd><tt><a href="#-displayhook">displayhook</a>(object) -> None<br>
- <br>
-Print an object to sys.stdout and also save it in __builtin__.</tt></dd></dl>
- <dl><dt><a name="-exc_clear"><strong>exc_clear</strong></a>(...)</dt><dd><tt><a href="#-exc_clear">exc_clear</a>() -> None<br>
- <br>
-Clear global information on the current exception. Subsequent calls to<br>
-<a href="#-exc_info">exc_info</a>() will return (None,None,None) until another exception is raised<br>
-in the current thread or the execution stack returns to a frame where<br>
-another exception is being handled.</tt></dd></dl>
- <dl><dt><a name="-exc_info"><strong>exc_info</strong></a>(...)</dt><dd><tt><a href="#-exc_info">exc_info</a>() -> (type, value, traceback)<br>
- <br>
-Return information about the most recent exception caught by an except<br>
-clause in the current stack frame or in an older stack frame.</tt></dd></dl>
- <dl><dt><a name="-excepthook"><strong>excepthook</strong></a>(...)</dt><dd><tt><a href="#-excepthook">excepthook</a>(exctype, value, traceback) -> None<br>
- <br>
-Handle an exception by displaying it with a traceback on sys.stderr.</tt></dd></dl>
- <dl><dt><a name="-exit"><strong>exit</strong></a>(...)</dt><dd><tt><a href="#-exit">exit</a>([status])<br>
- <br>
-Exit the interpreter by raising SystemExit(status).<br>
-If the status is omitted or None, it defaults to zero (i.e., success).<br>
-If the status is numeric, it will be used as the system exit status.<br>
-If it is another kind of object, it will be printed and the system<br>
-exit status will be one (i.e., failure).</tt></dd></dl>
- <dl><dt><a name="-getcheckinterval"><strong>getcheckinterval</strong></a>(...)</dt><dd><tt><a href="#-getcheckinterval">getcheckinterval</a>() -> current check interval; see <a href="#-setcheckinterval">setcheckinterval</a>().</tt></dd></dl>
- <dl><dt><a name="-getdefaultencoding"><strong>getdefaultencoding</strong></a>(...)</dt><dd><tt><a href="#-getdefaultencoding">getdefaultencoding</a>() -> string<br>
- <br>
-Return the current default string encoding used by the Unicode <br>
-implementation.</tt></dd></dl>
- <dl><dt><a name="-getdlopenflags"><strong>getdlopenflags</strong></a>(...)</dt><dd><tt><a href="#-getdlopenflags">getdlopenflags</a>() -> int<br>
- <br>
-Return the current value of the flags that are used for dlopen()<br>
-calls. The flag constants are defined in the dl module.</tt></dd></dl>
- <dl><dt><a name="-getfilesystemencoding"><strong>getfilesystemencoding</strong></a>(...)</dt><dd><tt><a href="#-getfilesystemencoding">getfilesystemencoding</a>() -> string<br>
- <br>
-Return the encoding used to convert Unicode filenames in<br>
-operating system filenames.</tt></dd></dl>
- <dl><dt><a name="-getprofile"><strong>getprofile</strong></a>(...)</dt><dd><tt><a href="#-getprofile">getprofile</a>()<br>
- <br>
-Return the profiling function set with sys.setprofile.<br>
-See the profiler chapter in the library manual.</tt></dd></dl>
- <dl><dt><a name="-getrecursionlimit"><strong>getrecursionlimit</strong></a>(...)</dt><dd><tt><a href="#-getrecursionlimit">getrecursionlimit</a>()<br>
- <br>
-Return the current value of the recursion limit, the maximum depth<br>
-of the Python interpreter stack. This limit prevents infinite<br>
-recursion from causing an overflow of the C stack and crashing Python.</tt></dd></dl>
- <dl><dt><a name="-getrefcount"><strong>getrefcount</strong></a>(...)</dt><dd><tt><a href="#-getrefcount">getrefcount</a>(object) -> integer<br>
- <br>
-Return the reference count of object. The count returned is generally<br>
-one higher than you might expect, because it includes the (temporary)<br>
-reference as an argument to <a href="#-getrefcount">getrefcount</a>().</tt></dd></dl>
- <dl><dt><a name="-getsizeof"><strong>getsizeof</strong></a>(...)</dt><dd><tt><a href="#-getsizeof">getsizeof</a>(object, default) -> int<br>
- <br>
-Return the size of object in bytes.</tt></dd></dl>
- <dl><dt><a name="-gettrace"><strong>gettrace</strong></a>(...)</dt><dd><tt><a href="#-gettrace">gettrace</a>()<br>
- <br>
-Return the global debug tracing function set with sys.settrace.<br>
-See the debugger chapter in the library manual.</tt></dd></dl>
- <dl><dt><a name="-setcheckinterval"><strong>setcheckinterval</strong></a>(...)</dt><dd><tt><a href="#-setcheckinterval">setcheckinterval</a>(n)<br>
- <br>
-Tell the Python interpreter to check for asynchronous events every<br>
-n instructions. This also affects how often thread switches occur.</tt></dd></dl>
- <dl><dt><a name="-setdlopenflags"><strong>setdlopenflags</strong></a>(...)</dt><dd><tt><a href="#-setdlopenflags">setdlopenflags</a>(n) -> None<br>
- <br>
-Set the flags that will be used for dlopen() calls. Among other<br>
-things, this will enable a lazy resolving of symbols when importing<br>
-a module, if called as sys.<a href="#-setdlopenflags">setdlopenflags</a>(0)<br>
-To share symbols across extension modules, call as<br>
-sys.<a href="#-setdlopenflags">setdlopenflags</a>(dl.RTLD_NOW|dl.RTLD_GLOBAL)</tt></dd></dl>
- <dl><dt><a name="-setprofile"><strong>setprofile</strong></a>(...)</dt><dd><tt><a href="#-setprofile">setprofile</a>(function)<br>
- <br>
-Set the profiling function. It will be called on each function call<br>
-and return. See the profiler chapter in the library manual.</tt></dd></dl>
- <dl><dt><a name="-setrecursionlimit"><strong>setrecursionlimit</strong></a>(...)</dt><dd><tt><a href="#-setrecursionlimit">setrecursionlimit</a>(n)<br>
- <br>
-Set the maximum depth of the Python interpreter stack to n. This<br>
-limit prevents infinite recursion from causing an overflow of the C<br>
-stack and crashing Python. The highest possible limit is platform-<br>
-dependent.</tt></dd></dl>
- <dl><dt><a name="-settrace"><strong>settrace</strong></a>(...)</dt><dd><tt><a href="#-settrace">settrace</a>(function)<br>
- <br>
-Set the global debug tracing function. It will be called on each<br>
-function call. See the debugger chapter in the library manual.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__stderr__</strong> = <open file '<stderr>', mode 'w' at 0x7fdbe72451c8><br>
-<strong>__stdin__</strong> = <open file '<stdin>', mode 'r' at 0x7fdbe72450b8><br>
-<strong>__stdout__</strong> = <open file '<stdout>', mode 'w' at 0x7fdbe7245140><br>
-<strong>api_version</strong> = 1013<br>
-<strong>argv</strong> = ['./make_doc.py']<br>
-<strong>builtin_module_names</strong> = ('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')<br>
-<strong>byteorder</strong> = 'little'<br>
-<strong>copyright</strong> = 'Copyright (c) 2001-2009 Python Software Foundati...ematisch Centrum, Amsterdam.<font color="#c040c0">\n</font>All Rights Reserved.'<br>
-<strong>dont_write_bytecode</strong> = False<br>
-<strong>exc_value</strong> = TypeError('arg is a built-in module',)<br>
-<strong>exec_prefix</strong> = '/usr'<br>
-<strong>executable</strong> = '/usr/bin/python'<br>
-<strong>flags</strong> = sys.flags(debug=0, py3k_warning=0, division_warn...abcheck=0, verbose=0, unicode=0, bytes_warning=0)<br>
-<strong>float_info</strong> = sys.floatinfo(max=1.7976931348623157e+308, max_e...psilon=2.2204460492503131e-16, radix=2, rounds=1)<br>
-<strong>hexversion</strong> = 33948912<br>
-<strong>maxint</strong> = 9223372036854775807<br>
-<strong>maxsize</strong> = 9223372036854775807<br>
-<strong>maxunicode</strong> = 65535<br>
-<strong>meta_path</strong> = []<br>
-<strong>modules</strong> = {'UserDict': <module 'UserDict' from '/usr/lib/python2.6/UserDict.pyc'>, '__builtin__': <module '__builtin__' (built-in)>, '__future__': <module '__future__' from '/usr/lib/python2.6/__future__.pyc'>, '__main__': <module '__main__' from './make_doc.py'>, '_abcoll': <module '_abcoll' from '/usr/lib/python2.6/_abcoll.pyc'>, '_codecs': <module '_codecs' (built-in)>, '_collections': <module '_collections' from '/usr/lib/python2.6/lib-dynload/_collections.so'>, '_curses': <module '_curses' from '/usr/lib/python2.6/lib-dynload/_curses.so'>, '_random': <module '_random' from '/usr/lib/python2.6/lib-dynload/_random.so'>, '_socket': <module '_socket' from '/usr/lib/python2.6/lib-dynload/_socket.so'>, ...}<br>
-<strong>path</strong> = ['/home/hut/.ranger', '/home/hut/ranger', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/PIL', '/usr/lib/python2.6/site-packages/gst-0.10', '/usr/lib/python2.6/site-packages/gtk-2.0', '/home/hut/.ranger']<br>
-<strong>path_hooks</strong> = [<type 'zipimport.zipimporter'>]<br>
-<strong>path_importer_cache</strong> = {'.': None, './make_doc.py': <imp.NullImporter object at 0x7fdbe71e8080>, '/home/hut/.ranger': None, '/home/hut/.ranger/colorschemes': None, '/home/hut/ranger': None, '/home/hut/ranger/ranger': None, '/home/hut/ranger/ranger/api': None, '/home/hut/ranger/ranger/colorschemes': None, '/home/hut/ranger/ranger/container': None, '/home/hut/ranger/ranger/defaults': None, ...}<br>
-<strong>platform</strong> = 'linux2'<br>
-<strong>prefix</strong> = '/usr'<br>
-<strong>py3kwarning</strong> = False<br>
-<strong>stderr</strong> = <open file '<stderr>', mode 'w' at 0x7fdbe72451c8><br>
-<strong>stdin</strong> = <open file '<stdin>', mode 'r' at 0x7fdbe72450b8><br>
-<strong>stdout</strong> = <open file '<stdout>', mode 'w' at 0x7fdbe7245140><br>
-<strong>subversion</strong> = ('CPython', 'tags/r264', '75706')<br>
-<strong>version</strong> = '2.6.4 (r264:75706, Oct 27 2009, 06:25:13) <font color="#c040c0">\n</font>[GCC 4.4.1]'<br>
-<strong>version_info</strong> = (2, 6, 4, 'final', 0)<br>
-<strong>warnoptions</strong> = []</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/test.html b/doc/pydoc/test.html
index 9d8b41b4..2a0ce426 100644
--- a/doc/pydoc/test.html
+++ b/doc/pydoc/test.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>test</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/__init__.py">/home/hut/ranger/test/__init__.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
@@ -25,9 +38,8 @@
<a href="test.tc_ext.html">tc_ext</a><br>
</td><td width="25%" valign=top><a href="test.tc_history.html">tc_history</a><br>
<a href="test.tc_keyapi.html">tc_keyapi</a><br>
-<a href="test.tc_mount_path.html">tc_mount_path</a><br>
-</td><td width="25%" valign=top><a href="test.tc_ui.html">tc_ui</a><br>
-<a href="test.test.html">test</a><br>
+<a href="test.tc_ui.html">tc_ui</a><br>
+</td><td width="25%" valign=top><a href="test.test.html">test</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
@@ -35,5 +47,5 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__all__</strong> = ['tc_commandlist', 'tc_history', 'tc_directory', 'tc_ui', 'tc_ext', 'tc_commandlist', 'tc_bookmarks', 'tc_history', 'tc_keyapi', 'tc_ui', 'tc_mount_path', 'tc_displayable', 'tc_keyapi', 'tc_colorscheme', 'tc_bookmarks', 'tc_directory', 'tc_colorscheme', 'tc_displayable', 'tc_ext']</td></tr></table>
+<td width="100%"><strong>__all__</strong> = ['tc_keyapi', 'tc_history', 'tc_directory', 'tc_colorscheme', 'tc_commandlist', 'tc_displayable', 'tc_ui', 'tc_bookmarks', 'tc_ext']</td></tr></table>
</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/test.tc_bookmarks.html b/doc/pydoc/test.tc_bookmarks.html
index 657d3d19..0d14d5d6 100644
--- a/doc/pydoc/test.tc_bookmarks.html
+++ b/doc/pydoc/test.tc_bookmarks.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_bookmarks</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_bookmarks.py">/home/hut/ranger/test/tc_bookmarks.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/test.tc_colorscheme.html b/doc/pydoc/test.tc_colorscheme.html
index d699f417..be917eb1 100644
--- a/doc/pydoc/test.tc_colorscheme.html
+++ b/doc/pydoc/test.tc_colorscheme.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_colorscheme</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_colorscheme.py">/home/hut/ranger/test/tc_colorscheme.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/test.tc_directory.html b/doc/pydoc/test.tc_directory.html
index 0992a715..6ec13991 100644
--- a/doc/pydoc/test.tc_directory.html
+++ b/doc/pydoc/test.tc_directory.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_directory</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_directory.py">/home/hut/ranger/test/tc_directory.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/test.tc_displayable.html b/doc/pydoc/test.tc_displayable.html
index 38592f26..f4e4ac64 100644
--- a/doc/pydoc/test.tc_displayable.html
+++ b/doc/pydoc/test.tc_displayable.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_displayable</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_displayable.py">/home/hut/ranger/test/tc_displayable.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/test.tc_history.html b/doc/pydoc/test.tc_history.html
index bf1aba8c..3c12d220 100644
--- a/doc/pydoc/test.tc_history.html
+++ b/doc/pydoc/test.tc_history.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_history</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_history.py">/home/hut/ranger/test/tc_history.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/pydoc/test.tc_keyapi.html b/doc/pydoc/test.tc_keyapi.html
index d4f2418d..5feea805 100644
--- a/doc/pydoc/test.tc_keyapi.html
+++ b/doc/pydoc/test.tc_keyapi.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_keyapi</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_keyapi.py">/home/hut/ranger/test/tc_keyapi.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
diff --git a/doc/pydoc/test.tc_ui.html b/doc/pydoc/test.tc_ui.html
index cb19d14a..90b9ca9c 100644
--- a/doc/pydoc/test.tc_ui.html
+++ b/doc/pydoc/test.tc_ui.html
@@ -9,7 +9,20 @@
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="test.html"><font color="#ffffff">test</font></a>.tc_ui</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/test/tc_ui.py">/home/hut/ranger/test/tc_ui.py</a></font></td></tr></table>
- <p></p>
+ <p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
+#<br>
+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>
+# (at your option) any later version.<br>
+#<br>
+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+# GNU General Public License for more details.<br>
+#<br>
+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
diff --git a/doc/uml.txt b/doc/uml.txt
new file mode 100644
index 00000000..67e84ee2
--- /dev/null
+++ b/doc/uml.txt
@@ -0,0 +1,5 @@
+UML
+===
+
+The uml documents can be opened with bouml, althought there's
+not much useful, up-to-date information.
diff --git a/ranger/__init__.py b/ranger/__init__.py
index 61df678d..e2a4983d 100644
--- a/ranger/__init__.py
+++ b/ranger/__init__.py
@@ -17,28 +17,53 @@
import os
import sys
-
-# for easier access
-from ranger.ext.debug import log, trace
-
-__copyright__ = """
-Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-"""
+from ranger.ext.openstruct import OpenStruct
__license__ = 'GPL3'
-__version__ = '1.0.3'
+__version__ = '1.0.4'
__credits__ = 'Roman Zimbelmann'
__author__ = 'Roman Zimbelmann'
__maintainer__ = 'Roman Zimbelmann'
__email__ = 'romanz@lavabit.com'
-debug = False
+__copyright__ = """
+Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
+"""
-CONFDIR = os.path.expanduser('~/.ranger')
+USAGE = '%prog [options] [path/filename]'
+DEFAULT_CONFDIR = '~/.ranger'
RANGERDIR = os.path.dirname(__file__)
+LOGFILE = '/tmp/errorlog'
+arg = OpenStruct(cd_after_exit=False,
+ debug=False, clean=False, confdir=DEFAULT_CONFDIR,
+ mode=0, flags='', targets=[])
-sys.path.append(CONFDIR)
+#for python3-only versions, this could be replaced with:
+#def log(*objects, start='ranger:', sep=' ', end='\n'):
+# print(start, *objects, end=end, sep=sep, file=open(LOGFILE, 'a'))
+def log(*objects, **keywords):
+ """
+ Writes objects to a logfile (for the purpose of debugging only.)
+ Has the same arguments as print() in python3.
+ """
+ if LOGFILE is None or arg.clean:
+ return
+ start = 'start' in keywords and keywords['start'] or 'ranger:'
+ sep = 'sep' in keywords and keywords['sep'] or ' '
+ _file = 'file' in keywords and keywords['file'] or open(LOGFILE, 'a')
+ end = 'end' in keywords and keywords['end'] or '\n'
+ _file.write(sep.join(map(str, (start, ) + objects)) + end)
+
+def relpath_conf(*paths):
+ """returns the path relative to rangers configuration directory"""
+ if arg.clean:
+ assert 0, "Should not access relpath_conf in clean mode!"
+ else:
+ return os.path.join(arg.confdir, *paths)
+
+def relpath(*paths):
+ """returns the path relative to rangers library directory"""
+ return os.path.join(RANGERDIR, *paths)
-USAGE = '%prog [options] [path/filename]'
from ranger.__main__ import main
diff --git a/ranger/__main__.py b/ranger/__main__.py
index 72b4adf8..bd01bf4a 100644
--- a/ranger/__main__.py
+++ b/ranger/__main__.py
@@ -19,40 +19,14 @@
import os
import sys
-def main():
- """initialize objects and run the filemanager"""
- try:
- import curses
- except ImportError as errormessage:
- print(errormessage)
- print('ranger requires the python curses module. Aborting.')
- sys.exit(1)
-
- from signal import signal, SIGINT
- from locale import setlocale, LC_ALL
- from optparse import OptionParser, SUPPRESS_HELP
-
- import ranger
- from ranger.ext import curses_interrupt_handler
- from ranger import __version__, USAGE, CONFDIR
- from ranger.fm import FM
- from ranger.container.environment import Environment
- from ranger.shared.settings import SettingsAware
- from ranger.gui.defaultui import DefaultUI as UI
- from ranger.fsobject.file import File
- try:
- setlocale(LC_ALL, 'en_US.utf8')
- except:
- pass
- os.stat_float_times(True)
- curses_interrupt_handler.install_interrupt_handler()
-
- if not os.path.exists(CONFDIR):
- os.mkdir(CONFDIR)
+def parse_arguments():
+ """Parse the program arguments"""
+ from optparse import OptionParser, SUPPRESS_HELP
+ from ranger.ext.openstruct import OpenStruct
+ from ranger import __version__, USAGE, DEFAULT_CONFDIR
- # Parse options
parser = OptionParser(usage=USAGE, version='ranger ' + __version__)
# Instead of using this directly, use the embedded
@@ -62,33 +36,91 @@ def main():
action='store_true',
help=SUPPRESS_HELP)
- parser.add_option('-m', type='int', dest='mode', default=0,
+ parser.add_option('-d', '--debug', action='store_true',
+ help="activate debug mode")
+
+ parser.add_option('-c', '--clean', action='store_true',
+ help="don't touch/require any config files. ")
+
+ parser.add_option('-r', '--confdir', dest='confdir', type='string',
+ default=DEFAULT_CONFDIR,
+ help="the configuration directory. (%default)")
+
+ parser.add_option('-m', '--mode', type='int', dest='mode', default=0,
help="if a filename is supplied, run it with this mode")
- parser.add_option('-f', type='string', dest='flags', default='',
+ parser.add_option('-f', '--flags', type='string', dest='flags', default='',
help="if a filename is supplied, run it with these flags.")
- parser.add_option('-d', '--debug', action='store_true',
- help="activate debug mode")
+ options, positional = parser.parse_args()
+
+ arg = OpenStruct(options.__dict__, targets=positional)
- args, rest = parser.parse_args()
+ arg.confdir = os.path.expanduser(arg.confdir)
- if args.cd_after_exit:
+ if arg.cd_after_exit:
sys.stderr = sys.__stdout__
- ranger.debug = args.debug
+ if not arg.clean:
+ try:
+ os.makedirs(arg.confdir)
+ except OSError as err:
+ if err.errno != 17: # 17 means it already exists
+ print("This configuration directory could not be created:")
+ print(arg.confdir)
+ print("To run ranger without the need for configuration files")
+ print("use the --clean option.")
+ raise SystemExit()
+
+ sys.path.append(arg.confdir)
+
+ return arg
+
+def main():
+ """initialize objects and run the filemanager"""
+ try:
+ import curses
+ except ImportError as errormessage:
+ print(errormessage)
+ print('ranger requires the python curses module. Aborting.')
+ sys.exit(1)
+
+ from signal import signal, SIGINT
+ from locale import getdefaultlocale, setlocale, LC_ALL
+
+ import ranger
+ from ranger.ext import curses_interrupt_handler
+ from ranger.core.fm import FM
+ from ranger.core.environment import Environment
+ from ranger.shared.settings import SettingsAware
+ from ranger.gui.defaultui import DefaultUI as UI
+ from ranger.fsobject.file import File
+
+ # Ensure that a utf8 locale is set.
+ if getdefaultlocale()[1] not in ('utf8', 'UTF-8'):
+ for locale in ('en_US.utf8', 'en_US.UTF-8'):
+ try: setlocale(LC_ALL, locale)
+ except: pass #sometimes there is none available though...
+ else:
+ setlocale(LC_ALL, '')
+
+ arg = parse_arguments()
+ ranger.arg = arg
+
+ if not ranger.arg.debug:
+ curses_interrupt_handler.install_interrupt_handler()
SettingsAware._setup()
# Initialize objects
- target = ' '.join(rest)
- if target:
+ if arg.targets:
+ target = arg.targets[0]
if not os.access(target, os.F_OK):
print("File or directory doesn't exist: %s" % target)
sys.exit(1)
elif os.path.isfile(target):
thefile = File(target)
- FM().execute_file(thefile, mode=args.mode, flags=args.flags)
+ FM().execute_file(thefile, mode=arg.mode, flags=arg.flags)
sys.exit(0)
else:
path = target
@@ -100,7 +132,7 @@ def main():
try:
my_ui = UI()
my_fm = FM(ui=my_ui)
- my_fm.stderr_to_out = args.cd_after_exit
+ my_fm.stderr_to_out = arg.cd_after_exit
# Run the file manager
my_fm.initialize()
@@ -110,8 +142,8 @@ def main():
# Finish, clean up
if 'my_ui' in vars():
my_ui.destroy()
- if args.cd_after_exit:
- try: sys.__stderr__.write(my_fm.env.pwd.path)
+ if arg.cd_after_exit:
+ try: sys.__stderr__.write(my_fm.env.cwd.path)
except: pass
if __name__ == '__main__':
diff --git a/ranger/api/apps.py b/ranger/api/apps.py
index 743fa248..a17a6601 100644
--- a/ranger/api/apps.py
+++ b/ranger/api/apps.py
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
-This module provides helper functions/classes for ranger.defaults.apps.
+This module provides helper functions/classes for ranger.apps.
"""
import os, sys, re
@@ -26,7 +26,7 @@ from ranger.shared import FileManagerAware
class Applications(FileManagerAware):
"""
This class contains definitions on how to run programs and should
- be extended in ranger.defaults.apps
+ be extended in ranger.apps
The user can decide what program to run, and if he uses eg. 'vim', the
function app_vim() will be called. However, usually the user
@@ -78,6 +78,8 @@ class Applications(FileManagerAware):
try:
application_handler = getattr(self, 'app_' + app)
except AttributeError:
+ if app in self.fm.executables:
+ return tup(app, *context)
continue
if self._meets_dependencies(application_handler):
return application_handler(context)
@@ -99,6 +101,8 @@ class Applications(FileManagerAware):
try:
handler = getattr(self, 'app_' + app)
except AttributeError:
+ if app in self.fm.executables:
+ return tup(app, *context) # generic app
handler = self.app_default
return handler(context)
@@ -108,8 +112,12 @@ class Applications(FileManagerAware):
def all(self):
"""Returns a list with all application functions"""
- methods = self.__class__.__dict__
- return [meth[4:] for meth in methods if meth.startswith('app_')]
+ result = set()
+ # go through all the classes in the mro (method resolution order)
+ # so subclasses will return the apps of their superclasses.
+ for cls in self.__class__.__mro__:
+ result |= set(m[4:] for m in cls.__dict__ if m.startswith('app_'))
+ return sorted(result)
def tup(*args):
diff --git a/ranger/api/options.py b/ranger/api/options.py
index 10778379..7ead8c90 100644
--- a/ranger/api/options.py
+++ b/ranger/api/options.py
@@ -15,4 +15,16 @@
import re
from re import compile as regexp
-from ranger import colorschemes
+from ranger import colorschemes as allschemes
+
+class AttrToString(object):
+ """
+ Purely for compatibility to 1.0.3.
+ """
+ def __getattr__(self, attr):
+ print("NOTE: your configuration is out of date.")
+ print("instead of this: colorscheme = colorschemes." + attr)
+ print("please use a string: colorscheme = \"" + attr + "\"")
+ return attr
+
+colorschemes = AttrToString()
diff --git a/ranger/colorschemes/__init__.py b/ranger/colorschemes/__init__.py
index b685a191..8b7a21a9 100644
--- a/ranger/colorschemes/__init__.py
+++ b/ranger/colorschemes/__init__.py
@@ -13,30 +13,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""Colorschemes are required to be located here,
-or in the CONFDIR/colorschemes/ directory"""
-from ranger.ext.get_all_modules import get_all_modules
-from os.path import expanduser, dirname, exists, join
-
-__all__ = get_all_modules(dirname(__file__))
-
-from ranger.colorschemes import *
-
-confpath = expanduser('~/.ranger')
-if exists(join(confpath, 'colorschemes')):
- initpy = join(confpath, 'colorschemes/__init__.py')
- if not exists(initpy):
- open(initpy, 'w').write("""# Automatically generated:
-from ranger.ext.get_all_modules import get_all_modules
-from os.path import dirname
-
-__all__ = get_all_modules(dirname(__file__))
-""")
-
- try:
- import sys
- sys.path[0:0] = [confpath]
- from colorschemes import *
- except ImportError:
- pass
-
+"""
+Colorschemes are required to be located here or in CONFDIR/colorschemes/
+"""
diff --git a/ranger/colorschemes/default.py b/ranger/colorschemes/default.py
index f5c5d763..d1a7e820 100644
--- a/ranger/colorschemes/default.py
+++ b/ranger/colorschemes/default.py
@@ -30,6 +30,8 @@ class Default(ColorScheme):
attr = normal
if context.empty or context.error:
bg = red
+ if context.border:
+ fg = default
if context.media:
if context.image:
fg = yellow
diff --git a/ranger/colorschemes/default88.py b/ranger/colorschemes/default88.py
new file mode 100644
index 00000000..9af6dca7
--- /dev/null
+++ b/ranger/colorschemes/default88.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""
+The default colorscheme, using 88 colors.
+
+For now, just map each of the 8 base colors to new ones
+for brighter blue, etc. and do some minor modifications.
+"""
+
+from ranger.gui.colorscheme import ColorScheme
+from ranger.gui.color import *
+
+from ranger.colorschemes.default import Default
+import curses
+
+class Scheme(Default):
+ def use(self, context):
+ fg, bg, attr = Default.use(self, context)
+
+ if curses.COLORS < 88:
+ return fg, bg, attr
+
+ try:
+ translate = {
+ blue: 22,
+ yellow: 72,
+ green: 20,
+ cyan: 21,
+ white: 79,
+ red: 32,
+ magenta: magenta,
+ }
+ fg = translate[fg]
+ except KeyError:
+ pass
+
+ if context.in_browser:
+ if context.main_column and context.marked:
+ if context.selected:
+ fg = 77
+ else:
+ fg = 68
+ attr |= reverse
+
+ return fg, bg, attr
+
diff --git a/ranger/colorschemes/texas.py b/ranger/colorschemes/texas.py
new file mode 100644
index 00000000..93fd4791
--- /dev/null
+++ b/ranger/colorschemes/texas.py
@@ -0,0 +1,73 @@
+# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""
+Some experimental colorscheme.
+"""
+
+from ranger.gui.colorscheme import ColorScheme
+from ranger.gui.color import *
+
+from ranger.colorschemes.default import Default
+import curses
+
+class Scheme(Default):
+ def use(self, context):
+ fg, bg, attr = Default.use(self, context)
+
+ if curses.COLORS < 88:
+ return fg, bg, attr
+
+ dircolor = 77
+ dircolor_selected = {True: 79, False: 78}
+ linkcolor = {True: 21, False: 48}
+
+ if context.in_browser:
+ if context.media:
+ if context.image:
+ fg = 20
+ elif context.video:
+ fg = 22
+ elif context.audio:
+ fg = 23
+
+ if context.container:
+ fg = 32
+ if context.directory:
+ fg = dircolor
+ if context.selected:
+ fg = dircolor_selected[context.main_column]
+ elif context.executable and not \
+ any((context.media, context.container)):
+ fg = 82
+ if context.link:
+ fg = linkcolor[context.good]
+
+ if context.main_column:
+ if context.selected:
+ attr |= bold
+ if context.marked:
+ attr |= bold
+ fg = 53
+
+ if context.in_titlebar:
+ if context.hostname:
+ fg = context.bad and 48 or 82
+ elif context.directory:
+ fg = dircolor
+ elif context.link:
+ fg = linkcolor[True]
+
+ return fg, bg, attr
diff --git a/ranger/container/bookmarks.py b/ranger/container/bookmarks.py
index a0c757ca..d4e12f62 100644
--- a/ranger/container/bookmarks.py
+++ b/ranger/container/bookmarks.py
@@ -150,6 +150,8 @@ class Bookmarks(object):
This is done automatically after every modification if autosave is True."""
import os
self.update()
+ if self.path is None:
+ return
if os.access(self.path, os.W_OK):
f = open(self.path, 'w')
for key, value in self.dct.items():
@@ -163,6 +165,10 @@ class Bookmarks(object):
def _load_dict(self):
import os
dct = {}
+
+ if self.path is None:
+ return dct
+
if not os.path.exists(self.path):
try:
f = open(self.path, 'w')
@@ -193,6 +199,8 @@ class Bookmarks(object):
def _get_mtime(self):
import os
+ if self.path is None:
+ return None
try:
return os.stat(self.path).st_mtime
except OSError:
diff --git a/ranger/container/tags.py b/ranger/container/tags.py
index 70a4aa3d..11ac3a5d 100644
--- a/ranger/container/tags.py
+++ b/ranger/container/tags.py
@@ -81,3 +81,7 @@ class Tags(object):
for line in f:
result.add(line.strip())
return result
+
+ def __nonzero__(self):
+ return True
+ __bool__ = __nonzero__
diff --git a/ranger/core/__init__.py b/ranger/core/__init__.py
new file mode 100644
index 00000000..93c483f2
--- /dev/null
+++ b/ranger/core/__init__.py
@@ -0,0 +1 @@
+"""Core components"""
diff --git a/ranger/actions.py b/ranger/core/actions.py
index 754fd857..e55d65b1 100644
--- a/ranger/actions.py
+++ b/ranger/core/actions.py
@@ -51,12 +51,12 @@ class Actions(EnvironmentAware, SettingsAware):
elif order == 'tag':
fnc = lambda x: x.realpath in self.tags
- return self.env.pwd.search_fnc(fnc=fnc, forward=forward)
+ return self.env.cwd.search_fnc(fnc=fnc, forward=forward)
elif order in ('size', 'mimetype', 'ctime'):
- pwd = self.env.pwd
- if original_order is not None or not pwd.cycle_list:
- lst = list(pwd.files)
+ cwd = self.env.cwd
+ if original_order is not None or not cwd.cycle_list:
+ lst = list(cwd.files)
if order == 'size':
fnc = lambda item: -item.size
elif order == 'mimetype':
@@ -64,10 +64,10 @@ class Actions(EnvironmentAware, SettingsAware):
elif order == 'ctime':
fnc = lambda item: -int(item.stat and item.stat.st_ctime)
lst.sort(key=fnc)
- pwd.set_cycle_list(lst)
- return pwd.cycle(forward=None)
+ cwd.set_cycle_list(lst)
+ return cwd.cycle(forward=None)
- return pwd.cycle(forward=forward)
+ return cwd.cycle(forward=forward)
def set_search_method(self, order, forward=True):
if order in ('search', 'tag', 'size', 'mimetype', 'ctime'):
@@ -85,9 +85,9 @@ class Actions(EnvironmentAware, SettingsAware):
def enter_dir(self, path, remember=False):
"""Enter the directory at the given path"""
if remember:
- pwd = self.env.pwd
+ cwd = self.env.cwd
result = self.env.enter_dir(path)
- self.bookmarks.remember(pwd)
+ self.bookmarks.remember(cwd)
return result
return self.env.enter_dir(path)
@@ -133,16 +133,16 @@ class Actions(EnvironmentAware, SettingsAware):
"""Enter the bookmark with the name <key>"""
try:
destination = self.bookmarks[key]
- pwd = self.env.pwd
- if destination.path != pwd.path:
+ cwd = self.env.cwd
+ if destination.path != cwd.path:
self.bookmarks.enter(key)
- self.bookmarks.remember(pwd)
+ self.bookmarks.remember(cwd)
except KeyError:
pass
def set_bookmark(self, key):
"""Set the bookmark with the name <key> to the current directory"""
- self.bookmarks[key] = self.env.pwd
+ self.bookmarks[key] = self.env.cwd
def unset_bookmark(self, key):
"""Delete the bookmark with the name <key>"""
@@ -273,7 +273,7 @@ class Actions(EnvironmentAware, SettingsAware):
def move_pointer(self, relative = 0, absolute = None, narg=None):
"""Move the pointer down by <relative> or to <absolute>"""
- self.env.pwd.move(relative=relative,
+ self.env.cwd.move(relative=relative,
absolute=absolute, narg=narg)
def move(self, dir, narg=None):
@@ -316,12 +316,12 @@ class Actions(EnvironmentAware, SettingsAware):
def move_pointer_by_pages(self, relative):
"""Move the pointer down by <relative> pages"""
- self.env.pwd.move(relative=int(relative * self.env.termsize[0]))
+ self.env.cwd.move(relative=int(relative * self.env.termsize[0]))
def move_pointer_by_percentage(self, relative=0, absolute=None, narg=None):
"""Move the pointer down by <relative>% or to <absolute>%"""
try:
- factor = len(self.env.pwd) / 100.0
+ factor = len(self.env.cwd) / 100.0
except:
return
@@ -331,7 +331,7 @@ class Actions(EnvironmentAware, SettingsAware):
if absolute is not None:
absolute = int(absolute * factor)
- self.env.pwd.move(
+ self.env.cwd.move(
relative=int(relative * factor),
absolute=absolute)
@@ -339,7 +339,7 @@ class Actions(EnvironmentAware, SettingsAware):
"""Scroll down by <relative> lines"""
if hasattr(self.ui, 'scroll'):
self.ui.scroll(relative)
- self.env.cf = self.env.pwd.pointed_obj
+ self.env.cf = self.env.cwd.pointed_obj
def redraw_window(self):
"""Redraw the window"""
@@ -347,7 +347,7 @@ class Actions(EnvironmentAware, SettingsAware):
def reset(self):
"""Reset the filemanager, clearing the directory buffer"""
- old_path = self.env.pwd.path
+ old_path = self.env.cwd.path
self.env.directories = {}
self.enter_dir(old_path)
@@ -371,7 +371,7 @@ class Actions(EnvironmentAware, SettingsAware):
def reload_cwd(self):
try:
- cwd = self.env.pwd
+ cwd = self.env.cwd
except:
pass
cwd.unload()
@@ -379,13 +379,13 @@ class Actions(EnvironmentAware, SettingsAware):
def traverse(self):
cf = self.env.cf
- cwd = self.env.pwd
+ cwd = self.env.cwd
if cf is not None and cf.is_directory:
self.enter_dir(cf.path)
elif cwd.pointer >= len(cwd) - 1:
while True:
self.enter_dir('..')
- cwd = self.env.pwd
+ cwd = self.env.cwd
if cwd.pointer < len(cwd) - 1:
break
if cwd.path == '/':
@@ -398,13 +398,13 @@ class Actions(EnvironmentAware, SettingsAware):
def set_filter(self, fltr):
try:
- self.env.pwd.filter = fltr
+ self.env.cwd.filter = fltr
except:
pass
def notify(self, text, duration=4, bad=False):
if isinstance(text, Exception):
- if ranger.debug:
+ if ranger.arg.debug:
raise
bad = True
text = str(text)
@@ -425,12 +425,12 @@ class Actions(EnvironmentAware, SettingsAware):
val - mark or unmark?
"""
- if self.env.pwd is None:
+ if self.env.cwd is None:
return
- pwd = self.env.pwd
+ cwd = self.env.cwd
- if not pwd.accessible:
+ if not cwd.accessible:
return
if movedown is None:
@@ -441,17 +441,17 @@ class Actions(EnvironmentAware, SettingsAware):
if all:
if toggle:
- pwd.toggle_all_marks()
+ cwd.toggle_all_marks()
else:
- pwd.mark_all(val)
+ cwd.mark_all(val)
else:
- for i in range(pwd.pointer, min(pwd.pointer + narg, len(pwd))):
- item = pwd.files[i]
+ for i in range(cwd.pointer, min(cwd.pointer + narg, len(cwd))):
+ item = cwd.files[i]
if item is not None:
if toggle:
- pwd.toggle_mark(item)
+ cwd.toggle_mark(item)
else:
- pwd.mark_item(item, val)
+ cwd.mark_item(item, val)
if movedown:
self.move_pointer(relative=narg)
@@ -467,7 +467,7 @@ class Actions(EnvironmentAware, SettingsAware):
"""Copy the selected items"""
selected = self.env.get_selection()
- self.env.copy = set(f for f in selected if f in self.env.pwd.files)
+ self.env.copy = set(f for f in selected if f in self.env.cwd.files)
self.env.cut = False
def cut(self):
@@ -499,7 +499,7 @@ class Actions(EnvironmentAware, SettingsAware):
if not copied_files:
return
- original_path = self.env.pwd.path
+ original_path = self.env.cwd.path
try:
one_file = copied_files[0]
except:
@@ -518,8 +518,8 @@ class Actions(EnvironmentAware, SettingsAware):
dst=original_path,
overwrite=overwrite):
yield
- pwd = self.env.get_directory(original_path)
- pwd.load_content()
+ cwd = self.env.get_directory(original_path)
+ cwd.load_content()
else:
if len(copied_files) == 1:
descr = "copying: " + one_file.path
@@ -529,7 +529,7 @@ class Actions(EnvironmentAware, SettingsAware):
for f in self.env.copy:
if isdir(f.path):
for _ in shutil_g.copytree(src=f.path,
- dst=join(self.env.pwd.path, f.basename),
+ dst=join(self.env.cwd.path, f.basename),
symlinks=True,
overwrite=overwrite):
yield
@@ -538,8 +538,8 @@ class Actions(EnvironmentAware, SettingsAware):
symlinks=True,
overwrite=overwrite):
yield
- pwd = self.env.get_directory(original_path)
- pwd.load_content()
+ cwd = self.env.get_directory(original_path)
+ cwd.load_content()
self.loader.add(LoadableObject(generate(), descr))
@@ -559,10 +559,11 @@ class Actions(EnvironmentAware, SettingsAware):
os.remove(f.path)
except OSError as err:
self.notify(err)
+ self.env.ensure_correct_pointer()
def mkdir(self, name):
try:
- os.mkdir(os.path.join(self.env.pwd.path, name))
+ os.mkdir(os.path.join(self.env.cwd.path, name))
except OSError as err:
self.notify(err)
diff --git a/ranger/container/environment.py b/ranger/core/environment.py
index b08b357f..4301d237 100644
--- a/ranger/container/environment.py
+++ b/ranger/core/environment.py
@@ -13,19 +13,22 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from os.path import abspath, normpath, join, expanduser, isdir
+import curses
import os
+import pwd
+import socket
+from os.path import abspath, normpath, join, expanduser, isdir
+
from ranger.fsobject.directory import Directory, NoDirectoryGiven
from ranger.container import KeyBuffer, History
from ranger.shared import SettingsAware
-import curses
class Environment(SettingsAware):
"""A collection of data which is relevant for more than
one class.
"""
- pwd = None # current directory
+ cwd = None # current directory
cf = None # current file
copy = None
cmd = None
@@ -46,6 +49,13 @@ class Environment(SettingsAware):
self.copy = set()
self.history = History(self.settings.max_history_size)
+ try:
+ self.username = pwd.getpwuid(os.geteuid()).pw_name
+ except:
+ self.username = 'uid:' + str(os.geteuid())
+ self.hostname = socket.gethostname()
+ self.home_path = os.path.expanduser('~')
+
from ranger.shared import EnvironmentAware
EnvironmentAware.env = self
@@ -63,22 +73,32 @@ class Environment(SettingsAware):
self.keybuffer.clear()
def at_level(self, level):
- """Returns the FileSystemObject at the given level.
- level 1 => preview
+ """
+ Returns the FileSystemObject at the given level.
+ level >0 => previews
level 0 => current file/directory
- level <0 => parent directories"""
+ level <0 => parent directories
+ """
if level <= 0:
try:
return self.pathway[level - 1]
except IndexError:
return None
else:
+ directory = self.cf
+ for i in range(level - 1):
+ if directory is None:
+ return None
+ if directory.is_directory:
+ directory = directory.pointed_obj
+ else:
+ return None
try:
- return self.directories[self.cf.path]
+ return self.directories[directory.path]
except AttributeError:
return None
except KeyError:
- return self.cf
+ return directory
def garbage_collect(self):
"""Delete unused directory objects"""
@@ -90,8 +110,8 @@ class Environment(SettingsAware):
del self.directories[key]
def get_selection(self):
- if self.pwd:
- return self.pwd.get_selection()
+ if self.cwd:
+ return self.cwd.get_selection()
return set()
def get_directory(self, path):
@@ -109,7 +129,7 @@ class Environment(SettingsAware):
stat = statvfs(path)
return stat.f_bavail * stat.f_bsize
- def assign_correct_cursor_positions(self):
+ def assign_cursor_positions_for_subdirs(self):
"""Assign correct cursor positions for subdirectories"""
last_path = None
for path in reversed(self.pathway):
@@ -120,6 +140,10 @@ class Environment(SettingsAware):
path.move_to_obj(last_path)
last_path = path
+ def ensure_correct_pointer(self):
+ if self.cwd:
+ self.cwd.correct_pointer()
+
def history_go(self, relative):
"""Move relative in history"""
if self.history:
@@ -137,15 +161,15 @@ class Environment(SettingsAware):
return
try:
- new_pwd = self.get_directory(path)
+ new_cwd = self.get_directory(path)
except NoDirectoryGiven:
return False
self.path = path
- self.pwd = new_pwd
+ self.cwd = new_cwd
os.chdir(path)
- self.pwd.load_content_if_outdated()
+ self.cwd.load_content_if_outdated()
# build the pathway, a tuple of directory objects which lie
# on the path to the current directory.
@@ -159,14 +183,14 @@ class Environment(SettingsAware):
pathway.append(self.get_directory(currentpath))
self.pathway = tuple(pathway)
- self.assign_correct_cursor_positions()
+ self.assign_cursor_positions_for_subdirs()
# set the current file.
- self.pwd.directories_first = self.settings.directories_first
- self.pwd.sort_if_outdated()
- self.cf = self.pwd.pointed_obj
+ self.cwd.directories_first = self.settings.directories_first
+ self.cwd.sort_if_outdated()
+ self.cf = self.cwd.pointed_obj
if history:
- self.history.add(new_pwd)
+ self.history.add(new_cwd)
return True
diff --git a/ranger/fm.py b/ranger/core/fm.py
index aa1f0493..994447b0 100644
--- a/ranger/fm.py
+++ b/ranger/core/fm.py
@@ -13,13 +13,18 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+The File Manager, putting the pieces together
+"""
+
from time import time
from collections import deque
-from ranger.actions import Actions
+import ranger
+from ranger.core.actions import Actions
from ranger.container import Bookmarks
-from ranger.runner import Runner
-from ranger.ext.relpath import relpath_conf
+from ranger.core.runner import Runner
+from ranger import relpath_conf
from ranger.ext.get_executables import get_executables
from ranger import __version__
from ranger.fsobject import Loader
@@ -61,8 +66,12 @@ class FM(Actions):
from ranger.fsobject.directory import Directory
if self.bookmarks is None:
+ if ranger.arg.clean:
+ bookmarkfile = None
+ else:
+ bookmarkfile = relpath_conf('bookmarks')
self.bookmarks = Bookmarks(
- bookmarkfile=relpath_conf('bookmarks'),
+ bookmarkfile=bookmarkfile,
bookmarktype=Directory,
autosave=self.settings.autosave_bookmarks)
self.bookmarks.load()
@@ -71,8 +80,8 @@ class FM(Actions):
self.bookmarks = bookmarks
from ranger.container.tags import Tags
- if self.tags is None:
- self.tags = Tags('~/.ranger/tagged')
+ if not ranger.arg.clean and self.tags is None:
+ self.tags = Tags(relpath_conf('tagged'))
if self.ui is None:
from ranger.gui.defaultui import DefaultUI
@@ -97,34 +106,47 @@ class FM(Actions):
gc_tick = 0
+ # for faster lookup:
+ ui = self.ui
+ throbber = ui.throbber
+ bookmarks = self.bookmarks
+ loader = self.loader
+ env = self.env
+ has_throbber = hasattr(ui, 'throbber')
+
try:
while True:
- self.bookmarks.update_if_outdated()
- self.loader.work()
- if hasattr(self.ui, 'throbber'):
- if self.loader.has_work():
- self.ui.throbber(self.loader.status)
+ bookmarks.update_if_outdated()
+ loader.work()
+ if has_throbber:
+ if loader.has_work():
+ throbber(loader.status)
else:
- self.ui.throbber(remove=True)
+ throbber(remove=True)
- self.ui.redraw()
+ ui.redraw()
- self.ui.set_load_mode(self.loader.has_work())
+ ui.set_load_mode(loader.has_work())
- key = self.ui.get_next_key()
+ key = ui.get_next_key()
if key > 0:
if self.input_blocked and \
time() > self.input_blocked_until:
self.input_blocked = False
if not self.input_blocked:
- self.ui.handle_key(key)
+ ui.handle_key(key)
gc_tick += 1
if gc_tick > TICKS_BEFORE_COLLECTING_GARBAGE:
gc_tick = 0
- self.env.garbage_collect()
+ env.garbage_collect()
+
+ except KeyboardInterrupt:
+ # this only happens in --debug mode. By default, interrupts
+ # are caught in curses_interrupt_handler
+ raise SystemExit
finally:
- self.bookmarks.remember(self.env.pwd)
- self.bookmarks.save()
+ bookmarks.remember(env.cwd)
+ bookmarks.save()
diff --git a/ranger/runner.py b/ranger/core/runner.py
index 26424881..26424881 100644
--- a/ranger/runner.py
+++ b/ranger/core/runner.py
diff --git a/ranger/data/generate.py b/ranger/data/generate.py
deleted file mode 100755
index a0ed2b9b..00000000
--- a/ranger/data/generate.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/python
-# coding=utf-8
-#
-# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-if __name__ == '__main__':
- import sys, pickle
-
- protocol = 0
- table = {}
-
- for line in open(len(sys.argv) > 1 and sys.argv[1] or "mime.types"):
- if len(line) > 3 and line[0] != '#' and ('\t' in line or ' ' in line):
- name, *extensions = line.split()
- for ext in extensions:
- table[ext] = name
-
- pickle.dump(table, open('mime.dat', 'wb'), protocol)
diff --git a/ranger/data/mime.dat b/ranger/data/mime.dat
deleted file mode 100644
index ddfca976..00000000
--- a/ranger/data/mime.dat
+++ /dev/null
@@ -1,1752 +0,0 @@
-(dp0
-Valc
-p1
-Vchemical/x-alchemy
-p2
-sVgf
-p3
-Vapplication/x-tex-gf
-p4
-sVmp4
-p5
-Vvideo/mp4
-p6
-sVmp2
-p7
-Vaudio/mpeg
-p8
-sVmp3
-p9
-g8
-sVnwc
-p10
-Vapplication/x-nwc
-p11
-sVsct
-p12
-Vtext/scriptlet
-p13
-sVros
-p14
-Vchemical/x-rosdal
-p15
-sVmng
-p16
-Vvideo/x-mng
-p17
-sVwmz
-p18
-Vapplication/x-ms-wmz
-p19
-sVwmx
-p20
-Vvideo/x-ms-wmx
-p21
-sVgcd
-p22
-Vtext/x-pcs-gcd
-p23
-sVtr
-p24
-Vapplication/x-troff
-p25
-sVts
-p26
-Vtext/texmacs
-p27
-sVtm
-p28
-g27
-sVtk
-p29
-Vtext/x-tcl
-p30
-sVwml
-p31
-Vtext/vnd.wap.wml
-p32
-sVwma
-p33
-Vaudio/x-ms-wma
-p34
-sVfchk
-p35
-Vchemical/x-gaussian-checkpoint
-p36
-sVwmd
-p37
-Vapplication/x-ms-wmd
-p38
-sVmpg
-p39
-Vvideo/mpeg
-p40
-sVcascii
-p41
-Vchemical/x-cactvs-binary
-p42
-sVmpe
-p43
-g40
-sVsmi
-p44
-Vapplication/smil
-p45
-sVmpv
-p46
-Vvideo/x-matroska
-p47
-sVwsc
-p48
-g13
-sVcml
-p49
-Vchemical/x-cml
-p50
-sVdif
-p51
-Vvideo/dv
-p52
-sVp
-p53
-Vtext/x-pascal
-p54
-sVpbm
-p55
-Vimage/x-portable-bitmap
-p56
-sVdir
-p57
-Vapplication/x-director
-p58
-sVhtc
-p59
-Vtext/x-component
-p60
-sVhta
-p61
-Vapplication/hta
-p62
-sVodp
-p63
-Vapplication/vnd.oasis.opendocument.presentation
-p64
-sVhtm
-p65
-Vtext/html
-p66
-sVnbp
-p67
-Vapplication/mathematica
-p68
-sVodt
-p69
-Vapplication/vnd.oasis.opendocument.text
-p70
-sVtex
-p71
-Vtext/x-tex
-p72
-sVodi
-p73
-Vapplication/vnd.oasis.opendocument.image
-p74
-sVodm
-p75
-Vapplication/vnd.oasis.opendocument.text-master
-p76
-sVoda
-p77
-Vapplication/oda
-p78
-sVodb
-p79
-Vapplication/vnd.oasis.opendocument.database
-p80
-sVodc
-p81
-Vapplication/vnd.oasis.opendocument.chart
-p82
-sVodf
-p83
-Vapplication/vnd.oasis.opendocument.formula
-p84
-sVodg
-p85
-Vapplication/vnd.oasis.opendocument.graphics
-p86
-sVgl
-p87
-Vvideo/gl
-p88
-sVrtx
-p89
-Vtext/richtext
-p90
-sVabw
-p91
-Vapplication/x-abiword
-p92
-sVoza
-p93
-Vapplication/x-oz-application
-p94
-sVasc
-p95
-Vtext/plain
-p96
-sVm3u
-p97
-Vaudio/x-mpegurl
-p98
-sVctx
-p99
-Vchemical/x-ctx
-p100
-sVcbin
-p101
-g42
-sVrdf
-p102
-Vapplication/rdf+xml
-p103
-sVboo
-p104
-Vtext/x-boo
-p105
-sVm3g
-p106
-Vapplication/m3g
-p107
-sVmaker
-p108
-Vapplication/x-maker
-p109
-sVwmv
-p110
-Vvideo/x-ms-wmv
-p111
-sVsgl
-p112
-Vapplication/vnd.stardivision.writer-global
-p113
-sVbrf
-p114
-g96
-sVtxt
-p115
-g96
-sVwbmp
-p116
-Vimage/vnd.wap.wbmp
-p117
-sVsgf
-p118
-Vapplication/x-go-sgf
-p119
-sVzip
-p120
-Vapplication/zip
-p121
-sVepsf
-p122
-Vapplication/postscript
-p123
-sVchm
-p124
-Vchemical/x-chemdraw
-p125
-sVmsi
-p126
-Vapplication/x-msi
-p127
-sVmsh
-p128
-Vmodel/mesh
-p129
-sVjmz
-p130
-Vapplication/x-jmol
-p131
-sVwvx
-p132
-Vvideo/x-ms-wvx
-p133
-sVpfb
-p134
-Vapplication/x-font
-p135
-sVflv
-p136
-Vvideo/x-flv
-p137
-sVflac
-p138
-Vaudio/flac
-p139
-sVwbxml
-p140
-Vapplication/vnd.wap.wbxml
-p141
-sViii
-p142
-Vapplication/x-iphone
-p143
-sVme
-p144
-Vapplication/x-troff-me
-p145
-sVmm
-p146
-Vapplication/x-freemind
-p147
-sVuls
-p148
-Vtext/iuls
-p149
-sVcap
-p150
-Vapplication/cap
-p151
-sVcat
-p152
-Vapplication/vnd.ms-pki.seccat
-p153
-sVfli
-p154
-Vvideo/fli
-p155
-sVjdx
-p156
-Vchemical/x-jcamp-dx
-p157
-sVms
-p158
-Vapplication/x-troff-ms
-p159
-sVxht
-p160
-Vapplication/xhtml+xml
-p161
-sVcac
-p162
-Vchemical/x-cache
-p163
-sVcab
-p164
-Vapplication/x-cab
-p165
-sVdeb
-p166
-Vapplication/x-debian-package
-p167
-sVeps2
-p168
-g123
-sVeps3
-p169
-g123
-sVspx
-p170
-Vaudio/ogg
-p171
-sVltx
-p172
-g72
-sVxcf
-p173
-Vapplication/x-xcf
-p174
-sVtar
-p175
-Vapplication/x-tar
-p176
-sVdxr
-p177
-g58
-sVtaz
-p178
-Vapplication/x-gtar
-p179
-sVspl
-p180
-Vapplication/x-futuresplash
-p181
-sVspc
-p182
-Vchemical/x-galactic-spc
-p183
-sVmpc
-p184
-Vchemical/x-mopac-input
-p185
-sVcsm
-p186
-Vchemical/x-csml
-p187
-sVchrt
-p188
-Vapplication/x-kchart
-p189
-sVcsh
-p190
-Vtext/x-csh
-p191
-sVgcg
-p192
-Vchemical/x-gcg8-sequence
-p193
-sVsit
-p194
-Vapplication/x-stuffit
-p195
-sVcsf
-p196
-Vchemical/x-cache-csf
-p197
-sVent
-p198
-Vchemical/x-pdb
-p199
-sVsid
-p200
-Vaudio/prs.sid
-p201
-sVsik
-p202
-Vapplication/x-trash
-p203
-sVxhtml
-p204
-g161
-sVcsv
-p205
-Vtext/csv
-p206
-sVcss
-p207
-Vtext/css
-p208
-sVsis
-p209
-Vapplication/vnd.symbian.install
-p210
-sVsnd
-p211
-Vaudio/basic
-p212
-sVmpega
-p213
-g8
-sVfb
-p214
-g109
-sVmesh
-p215
-g129
-sVfm
-p216
-g109
-sVman
-p217
-Vapplication/x-troff-man
-p218
-sVlha
-p219
-Vapplication/x-lha
-p220
-sVgcf
-p221
-Vapplication/x-graphing-calculator
-p222
-sVsw
-p223
-Vchemical/x-swissprot
-p224
-sVsh
-p225
-Vtext/x-sh
-p226
-sVlhs
-p227
-Vtext/x-literate-haskell
-p228
-sVsd
-p229
-Vchemical/x-mdl-sdfile
-p230
-sVlsf
-p231
-Vvideo/x-la-asf
-p232
-sVvmd
-p233
-Vchemical/x-vmd
-p234
-sVjpeg
-p235
-Vimage/jpeg
-p236
-sVjng
-p237
-Vimage/x-jng
-p238
-sVvms
-p239
-Vchemical/x-vamas-iso14976
-p240
-sVlsx
-p241
-g232
-sVpcx
-p242
-Vimage/pcx
-p243
-sVdjv
-p244
-Vimage/vnd.djvu
-p245
-sVwrl
-p246
-Vx-world/x-vrml
-p247
-sVqgs
-p248
-Vapplication/x-qgis
-p249
-sVhtml
-p250
-g66
-sVfig
-p251
-Vapplication/x-xfig
-p252
-sVtsv
-p253
-Vtext/tab-separated-values
-p254
-sVpcf
-p255
-g135
-sVtsp
-p256
-Vapplication/dsptype
-p257
-sVcls
-p258
-g72
-sVlzx
-p259
-Vapplication/x-lzx
-p260
-sVmxu
-p261
-Vvideo/vnd.mpegurl
-p262
-sVdat
-p263
-Vapplication/x-ns-proxy-autoconfig
-p264
-sVlzh
-p265
-Vapplication/x-lzh
-p266
-sVcer
-p267
-Vchemical/x-cerius
-p268
-sVhqx
-p269
-Vapplication/mac-binhex40
-p270
-sVkpr
-p271
-Vapplication/x-kpresenter
-p272
-sVkpt
-p273
-g272
-sVxlb
-p274
-Vapplication/vnd.ms-excel
-p275
-sVh
-p276
-Vtext/x-chdr
-p277
-sVxlt
-p278
-g275
-sVxls
-p279
-g275
-sVatomcat
-p280
-Vapplication/atomcat+xml
-p281
-sVmdb
-p282
-Vapplication/msaccess
-p283
-sVgtar
-p284
-g179
-sVez
-p285
-Vapplication/andrew-inset
-p286
-sVes
-p287
-Vapplication/ecmascript
-p288
-sVvcd
-p289
-Vapplication/x-cdlink
-p290
-sVvcf
-p291
-Vtext/x-vcard
-p292
-sVrd
-p293
-Vchemical/x-mdl-rdfile
-p294
-sVvcs
-p295
-Vtext/x-vcalendar
-p296
-sVra
-p297
-Vaudio/x-realaudio
-p298
-sVrb
-p299
-Vapplication/x-ruby
-p300
-sVrm
-p301
-Vaudio/x-pn-realaudio
-p302
-sVasx
-p303
-Vvideo/x-ms-asf
-p304
-sVgnumeric
-p305
-Vapplication/x-gnumeric
-p306
-sVmml
-p307
-Vtext/mathml
-p308
-sVasf
-p309
-g304
-sVmmd
-p310
-Vchemical/x-macromodel-input
-p311
-sVmmf
-p312
-Vapplication/vnd.smaf
-p313
-sVaso
-p314
-Vchemical/x-ncbi-asn1-binary
-p315
-sVasn
-p316
-Vchemical/x-ncbi-asn1-spec
-p317
-sVcxx
-p318
-Vtext/x-c++src
-p319
-sVxpm
-p320
-Vimage/x-xpixmap
-p321
-sVmidi
-p322
-Vaudio/midi
-p323
-sVc3d
-p324
-Vchemical/x-chem3d
-p325
-sVisp
-p326
-Vapplication/x-internet-signup
-p327
-sVswfl
-p328
-Vapplication/x-shockwave-flash
-p329
-sVist
-p330
-Vchemical/x-isostar
-p331
-sVmvb
-p332
-Vchemical/x-mopac-vib
-p333
-sViso
-p334
-Vapplication/x-iso9660-image
-p335
-sVxul
-p336
-Vapplication/vnd.mozilla.xul+xml
-p337
-sVpgn
-p338
-Vapplication/x-chess-pgn
-p339
-sVpgm
-p340
-Vimage/x-portable-graymap
-p341
-sVpgp
-p342
-Vapplication/pgp-signature
-p343
-sVmkv
-p344
-Vvideo/mkv
-p345
-sVgpt
-p346
-Vchemical/x-mopac-graph
-p347
-sVphtml
-p348
-Vapplication/x-httpd-php
-p349
-sVods
-p350
-Vapplication/vnd.oasis.opendocument.spreadsheet
-p351
-sVogx
-p352
-Vapplication/ogg
-p353
-sVwax
-p354
-Vaudio/x-ms-wax
-p355
-sVpnm
-p356
-Vimage/x-portable-anymap
-p357
-sVcmdf
-p358
-Vchemical/x-cmdf
-p359
-sVoga
-p360
-g171
-sVpng
-p361
-Vimage/png
-p362
-sVrss
-p363
-Vapplication/rss+xml
-p364
-sVstd
-p365
-Vapplication/vnd.sun.xml.draw.template
-p366
-sVb
-p367
-Vchemical/x-molconn-Z
-p368
-sVstc
-p369
-Vapplication/vnd.sun.xml.calc.template
-p370
-sVstl
-p371
-Vapplication/vnd.ms-pki.stl
-p372
-sVogg
-p373
-g171
-sVmcif
-p374
-Vchemical/x-mmcif
-p375
-sVstw
-p376
-Vapplication/vnd.sun.xml.writer.template
-p377
-sVtorrent
-p378
-Vapplication/x-bittorrent
-p379
-sVprf
-p380
-Vapplication/pics-rules
-p381
-sVphp3p
-p382
-Vapplication/x-httpd-php3-preprocessed
-p383
-sVram
-p384
-g302
-sVprt
-p385
-Vchemical/x-ncbi-asn1-ascii
-p386
-sVrar
-p387
-Vapplication/rar
-p388
-sVras
-p389
-Vimage/x-cmu-raster
-p390
-sVanx
-p391
-Vapplication/annodex
-p392
-sV7z
-p393
-Vapplication/x-7z-compressed
-p394
-sVshtml
-p395
-g66
-sVlin
-p396
-Vapplication/bbolin
-p397
-sVmid
-p398
-g323
-sVmif
-p399
-Vapplication/x-mif
-p400
-sV323
-p401
-Vtext/h323
-p402
-sVistr
-p403
-g331
-sVcsml
-p404
-g187
-sVogv
-p405
-Vvideo/ogg
-p406
-sVzmt
-p407
-g185
-sVkar
-p408
-g323
-sVmpeg
-p409
-g40
-sVsisx
-p410
-Vx-epoc/x-sisx-app
-p411
-sVpyo
-p412
-Vapplication/x-python-code
-p413
-sVfch
-p414
-g36
-sVpyc
-p415
-g413
-sVawb
-p416
-Vaudio/amr-wb
-p417
-sVcc
-p418
-g319
-sVfbdoc
-p419
-g109
-sVlatex
-p420
-Vapplication/x-latex
-p421
-sVexe
-p422
-Vapplication/x-msdos-program
-p423
-sVaxv
-p424
-Vvideo/annodex
-p425
-sVdoc
-p426
-Vapplication/msword
-p427
-sVwmlsc
-p428
-Vapplication/vnd.wap.wmlscriptc
-p429
-sVhh
-p430
-Vtext/x-c++hdr
-p431
-sVaxa
-p432
-Vaudio/annodex
-p433
-sVdot
-p434
-g427
-sVcdf
-p435
-Vapplication/x-cdf
-p436
-sVrtf
-p437
-Vapplication/rtf
-p438
-sVctab
-p439
-g42
-sVcda
-p440
-g436
-sVtext
-p441
-g96
-sVsdc
-p442
-Vapplication/vnd.stardivision.calc
-p443
-sVcdt
-p444
-Vimage/x-coreldrawtemplate
-p445
-sVtexi
-p446
-Vapplication/x-texinfo
-p447
-sVcdr
-p448
-Vimage/x-coreldraw
-p449
-sVcdx
-p450
-Vchemical/x-cdx
-p451
-sVcdy
-p452
-Vapplication/vnd.cinderella
-p453
-sVxml
-p454
-Vapplication/xml
-p455
-sVksp
-p456
-Vapplication/x-kspread
-p457
-sVcache
-p458
-g163
-sVjar
-p459
-Vapplication/java-archive
-p460
-sVjam
-p461
-Vapplication/x-jam
-p462
-sVjad
-p463
-Vtext/vnd.sun.j2me.app-descriptor
-p464
-sVief
-p465
-Vimage/ief
-p466
-sVdl
-p467
-Vvideo/dl
-p468
-sVcpio
-p469
-Vapplication/x-cpio
-p470
-sVdx
-p471
-g157
-sVdv
-p472
-g52
-sVgen
-p473
-Vchemical/x-genbank
-p474
-sVhin
-p475
-Vchemical/x-hin
-p476
-sVsilo
-p477
-g129
-sVshp
-p478
-g249
-sVbat
-p479
-g423
-sVqt
-p480
-Vvideo/quicktime
-p481
-sVcrt
-p482
-Vapplication/x-x509-ca-cert
-p483
-sVemb
-p484
-Vchemical/x-embl-dl-nucleotide
-p485
-sVshx
-p486
-g249
-sVeml
-p487
-Vmessage/rfc822
-p488
-sVc++
-p489
-g319
-sVpatch
-p490
-Vtext/x-diff
-p491
-sVbak
-p492
-g203
-sVcrl
-p493
-Vapplication/x-pkcs7-crl
-p494
-sVespi
-p495
-g123
-sVart
-p496
-Vimage/x-jg
-p497
-sVser
-p498
-Vapplication/java-serialized-object
-p499
-sVframe
-p500
-g109
-sVsti
-p501
-Vapplication/vnd.sun.xml.impress.template
-p502
-sVqtl
-p503
-Vapplication/x-quicktimeplayer
-p504
-sVmovie
-p505
-Vvideo/x-sgi-movie
-p506
-sVdll
-p507
-g423
-sVwm
-p508
-Vvideo/x-ms-wm
-p509
-sVwk
-p510
-Vapplication/x-123
-p511
-sVjs
-p512
-Vapplication/javascript
-p513
-sVkey
-p514
-Vapplication/pgp-keys
-p515
-sVsv4crc
-p516
-Vapplication/x-sv4crc
-p517
-sVpcap
-p518
-g151
-sVwz
-p519
-Vapplication/x-wingz
-p520
-sVvrm
-p521
-g247
-sVc
-p522
-Vtext/x-csrc
-p523
-sVetx
-p524
-Vtext/x-setext
-p525
-sVsty
-p526
-g72
-sVcod
-p527
-Vapplication/vnd.rim.cod
-p528
-sVpdf
-p529
-Vapplication/pdf
-p530
-sVcom
-p531
-g423
-sVpdb
-p532
-g199
-sVxspf
-p533
-Vapplication/xspf+xml
-p534
-sVroff
-p535
-g25
-sVtgz
-p536
-g179
-sVpot
-p537
-g96
-sVtgf
-p538
-Vchemical/x-mdl-tgf
-p539
-sVkwt
-p540
-Vapplication/x-kword
-p541
-sVcxf
-p542
-Vchemical/x-cxf
-p543
-sVsxd
-p544
-Vapplication/vnd.sun.xml.draw
-p545
-sVrpm
-p546
-Vapplication/x-redhat-package-manager
-p547
-sVcu
-p548
-Vapplication/cu-seeme
-p549
-sVjnlp
-p550
-Vapplication/x-java-jnlp-file
-p551
-sVps
-p552
-g123
-sVmpga
-p553
-g8
-sViges
-p554
-Vmodel/iges
-p555
-sVpy
-p556
-Vtext/x-python
-p557
-sVfrm
-p558
-g109
-sVswf
-p559
-g329
-sVpk
-p560
-Vapplication/x-tex-pk
-p561
-sVpl
-p562
-Vtext/x-perl
-p563
-sVpm
-p564
-g563
-sVoth
-p565
-Vapplication/vnd.oasis.opendocument.text-web
-p566
-sVmcm
-p567
-Vchemical/x-macmolecule
-p568
-sVlyx
-p569
-Vapplication/x-lyx
-p570
-sVgau
-p571
-Vchemical/x-gaussian-input
-p572
-sVotg
-p573
-Vapplication/vnd.oasis.opendocument.graphics-template
-p574
-sVgam
-p575
-Vchemical/x-gamess-input
-p576
-sVgal
-p577
-Vchemical/x-gaussian-log
-p578
-sVotp
-p579
-Vapplication/vnd.oasis.opendocument.presentation-template
-p580
-sVots
-p581
-Vapplication/vnd.oasis.opendocument.spreadsheet-template
-p582
-sVott
-p583
-Vapplication/vnd.oasis.opendocument.text-template
-p584
-sVmopcrt
-p585
-g185
-sVhdf
-p586
-Vapplication/x-hdf
-p587
-sVatomsrv
-p588
-Vapplication/atomserv+xml
-p589
-sVaif
-p590
-Vaudio/x-aiff
-p591
-sV~
-p592
-g203
-sVsvgz
-p593
-Vimage/svg+xml
-p594
-sVcef
-p595
-g543
-sVwp5
-p596
-Vapplication/vnd.wordperfect5.1
-p597
-sVjpe
-p598
-g236
-sVjpg
-p599
-g236
-sVsitx
-p600
-g195
-sVavi
-p601
-Vvideo/x-msvideo
-p602
-sVtexinfo
-p603
-g447
-sVshar
-p604
-Vapplication/x-shar
-p605
-sVpas
-p606
-g54
-sVpat
-p607
-Vimage/x-coreldrawpattern
-p608
-sVpac
-p609
-g264
-sVhxx
-p610
-g431
-sV3gp
-p611
-Vvideo/3gpp
-p612
-sVkin
-p613
-Vchemical/x-kinemage
-p614
-sVkil
-p615
-Vapplication/x-killustrator
-p616
-sVwpd
-p617
-Vapplication/vnd.wordperfect
-p618
-sVigs
-p619
-g555
-sVphp
-p620
-g349
-sVpht
-p621
-g349
-sVgamin
-p622
-g576
-sVwmls
-p623
-Vtext/vnd.wap.wmlscript
-p624
-sVeps
-p625
-g123
-sVgsf
-p626
-g135
-sVwmlc
-p627
-Vapplication/vnd.wap.wmlc
-p628
-sVgsm
-p629
-Vaudio/x-gsm
-p630
-sVhpp
-p631
-g431
-sVaiff
-p632
-g591
-sVdavmount
-p633
-Vapplication/davmount+xml
-p634
-sVaifc
-p635
-g591
-sVtcl
-p636
-g30
-sVbcpio
-p637
-Vapplication/x-bcpio
-p638
-sVkwd
-p639
-g541
-sVskt
-p640
-Vapplication/x-koan
-p641
-sVskp
-p642
-g641
-sVskd
-p643
-g641
-sVrgb
-p644
-Vimage/x-rgb
-p645
-sVcub
-p646
-Vchemical/x-gaussian-cube
-p647
-sVskm
-p648
-g641
-sVm4a
-p649
-g8
-sVbin
-p650
-Vapplication/octet-stream
-p651
-sVembl
-p652
-g485
-sVmop
-p653
-g185
-sVbib
-p654
-Vtext/x-bibtex
-p655
-sVmov
-p656
-g481
-sVpsd
-p657
-Vimage/x-photoshop
-p658
-sVmoo
-p659
-Vchemical/x-mopac-out
-p660
-sVmol
-p661
-Vchemical/x-mdl-molfile
-p662
-sVmoc
-p663
-Vtext/x-moc
-p664
-sVamr
-p665
-Vaudio/amr
-p666
-sVustar
-p667
-Vapplication/x-ustar
-p668
-sVd
-p669
-Vtext/x-dsrc
-p670
-sVt
-p671
-g25
-sVxsd
-p672
-g455
-sVgjf
-p673
-g572
-sVvrml
-p674
-g247
-sVgjc
-p675
-g572
-sVxsl
-p676
-g455
-sVold
-p677
-g203
-sVvsd
-p678
-Vapplication/vnd.visio
-p679
-sVdiff
-p680
-g491
-sVudeb
-p681
-g167
-sVico
-p682
-Vimage/x-icon
-p683
-sVscala
-p684
-Vtext/x-scala
-p685
-sVica
-p686
-Vapplication/x-ica
-p687
-sVkml
-p688
-Vapplication/vnd.google-earth.kml+xml
-p689
-sVice
-p690
-Vx-conference/x-cooltalk
-p691
-sVicz
-p692
-Vtext/calendar
-p693
-sVics
-p694
-g693
-sVxtel
-p695
-Vchemical/x-xtel
-p696
-sVkmz
-p697
-Vapplication/vnd.google-earth.kmz
-p698
-sVpls
-p699
-Vaudio/x-scpls
-p700
-sVmmod
-p701
-g311
-sVjava
-p702
-Vtext/x-java
-p703
-sVdcr
-p704
-g58
-sVsrc
-p705
-Vapplication/x-wais-source
-p706
-sVo
-p707
-Vapplication/x-object
-p708
-sVsd2
-p709
-Vaudio/x-sd2
-p710
-sVtiff
-p711
-Vimage/tiff
-p712
-sVxyz
-p713
-Vchemical/x-xyz
-p714
-sVppm
-p715
-Vimage/x-portable-pixmap
-p716
-sVpps
-p717
-Vapplication/vnd.ms-powerpoint
-p718
-sVbsd
-p719
-Vchemical/x-crossfire
-p720
-sVppt
-p721
-g718
-sVdjvu
-p722
-g245
-sVxpi
-p723
-Vapplication/x-xpinstall
-p724
-sVval
-p725
-g315
-sVwad
-p726
-Vapplication/x-doom
-p727
-sVclass
-p728
-Vapplication/java-vm
-p729
-sVgif
-p730
-Vimage/gif
-p731
-sVsmil
-p732
-g45
-sVwav
-p733
-Vaudio/x-wav
-p734
-sVrhtml
-p735
-Vapplication/x-httpd-eruby
-p736
-sVsdw
-p737
-Vapplication/vnd.stardivision.writer
-p738
-sVsds
-p739
-Vapplication/vnd.stardivision.chart
-p740
-sVhs
-p741
-Vtext/x-haskell
-p742
-sVsdd
-p743
-Vapplication/vnd.stardivision.impress
-p744
-sVsdf
-p745
-g230
-sVsda
-p746
-Vapplication/vnd.stardivision.draw
-p747
-sVatom
-p748
-Vapplication/atom+xml
-p749
-sVsv4cpio
-p750
-Vapplication/x-sv4cpio
-p751
-sVinfo
-p752
-Vapplication/x-info
-p753
-sVcif
-p754
-Vchemical/x-cif
-p755
-sVdmg
-p756
-Vapplication/x-apple-diskimage
-p757
-sVdms
-p758
-Vapplication/x-dms
-p759
-sVsvg
-p760
-g594
-sVxwd
-p761
-Vimage/x-xwindowdump
-p762
-sVpfa
-p763
-g135
-sVsxc
-p764
-Vapplication/vnd.sun.xml.calc
-p765
-sVp7r
-p766
-Vapplication/x-pkcs7-certreqresp
-p767
-sVsxg
-p768
-Vapplication/vnd.sun.xml.writer.global
-p769
-sVai
-p770
-g123
-sVsxi
-p771
-Vapplication/vnd.sun.xml.impress
-p772
-sVinp
-p773
-g576
-sVsxm
-p774
-Vapplication/vnd.sun.xml.math
-p775
-sVins
-p776
-g327
-sVcbr
-p777
-Vapplication/x-cbr
-p778
-sVau
-p779
-g212
-sVsxw
-p780
-Vapplication/vnd.sun.xml.writer
-p781
-sVcbz
-p782
-Vapplication/x-cbz
-p783
-sV%
-p784
-g203
-sVnb
-p785
-g68
-sVnc
-p786
-Vapplication/x-netcdf
-p787
-sVbook
-p788
-g109
-sVphp4
-p789
-Vapplication/x-httpd-php4
-p790
-sVtif
-p791
-g712
-sVphp3
-p792
-Vapplication/x-httpd-php3
-p793
-sVmol2
-p794
-Vchemical/x-mol2
-p795
-sVh++
-p796
-g431
-sVdvi
-p797
-Vapplication/x-dvi
-p798
-sVpcf.Z
-p799
-g135
-sVrxn
-p800
-Vchemical/x-mdl-rxnfile
-p801
-sVcpa
-p802
-Vchemical/x-compass
-p803
-sVbmp
-p804
-Vimage/x-ms-bmp
-p805
-sVxbm
-p806
-Vimage/x-xbitmap
-p807
-sVcpp
-p808
-g319
-sVcpt
-p809
-Vimage/x-corelphotopaint
-p810
-sVphps
-p811
-Vapplication/x-httpd-php-source
-p812
-s.
\ No newline at end of file
diff --git a/ranger/data/mime.types b/ranger/data/mime.types
index 866db2c2..c8fa5243 100644
--- a/ranger/data/mime.types
+++ b/ranger/data/mime.types
@@ -2,768 +2,19 @@
#
# MIME-TYPES and the extensions that represent them
#
-# This file is part of the "mime-support" package. Please send email (not a
-# bug report) to mime-support@packages.debian.org if you would like new types
-# and/or extensions to be added.
-#
-# The reason that all types are managed by the mime-support package instead
-# allowing individual packages to install types in much the same way as they
-# add entries in to the mailcap file is so these types can be referenced by
-# other programs (such as a web server) even if the specific support package
-# for that type is not installed.
-#
-# Users can add their own types if they wish by creating a ".mime.types"
-# file in their home directory. Definitions included there will take
-# precedence over those listed here.
-#
-# Note: Compression schemes like "gzip", "bzip", and "compress" are not
-# actually "mime-types". They are "encodings" and hence must _not_ have
-# entries in this file to map their extensions. The "mime-type" of an
-# encoded file refers to the type of data that has been encoded, not the
-# type of encoding.
+# This file contains additional mimetypes which I think ranger should have
+# by default. You can also use ~/.mime.types to add own types.
#
+# Mimetypes are used for colorschemes and the builtin filetype detection
+# to execute files with the right program.
+#
###############################################################################
-
-application/activemessage
-application/andrew-inset ez
-application/annodex anx
-application/applefile
-application/atom+xml atom
-application/atomcat+xml atomcat
-application/atomserv+xml atomsrv
-application/atomicmail
-application/batch-SMTP
-application/beep+xml
-application/bbolin lin
-application/cals-1840
-application/cap cap pcap
-application/commonground
-application/cu-seeme cu
-application/cybercash
-application/davmount+xml davmount
-application/dca-rft
-application/dec-dx
-application/docbook+xml
-application/dsptype tsp
-application/dvcs
-application/ecmascript es
-application/edi-consent
-application/edi-x12
-application/edifact
-application/eshop
-application/font-tdpfr
-application/futuresplash spl
-application/ghostview
-application/hta hta
-application/http
-application/hyperstudio
-application/iges
-application/index
-application/index.cmd
-application/index.obj
-application/index.response
-application/index.vnd
-application/iotp
-application/ipp
-application/isup
-application/java-archive jar
-application/java-serialized-object ser
-application/java-vm class
-application/javascript js
-application/m3g m3g
-application/mac-binhex40 hqx
-application/mac-compactpro cpt
-application/macwriteii
-application/marc
-application/mathematica nb nbp
-application/ms-tnef
-application/msaccess mdb
-application/msword doc dot
-application/news-message-id
-application/news-transmission
-application/ocsp-request
-application/ocsp-response
-application/octet-stream bin
-application/oda oda
-application/ogg ogx
-application/parityfec
-application/pdf pdf
-application/pgp-encrypted
-application/pgp-keys key
-application/pgp-signature pgp
-application/pics-rules prf
-application/pkcs10
-application/pkcs7-mime
-application/pkcs7-signature
-application/pkix-cert
-application/pkix-crl
-application/pkixcmp
-application/postscript ps ai eps espi epsf eps2 eps3
-application/prs.alvestrand.titrax-sheet
-application/prs.cww
-application/prs.nprend
-application/qsig
-application/rar rar
-application/rdf+xml rdf
-application/remote-printing
-application/riscos
-application/rss+xml rss
-application/rtf rtf
-application/sdp
-application/set-payment
-application/set-payment-initiation
-application/set-registration
-application/set-registration-initiation
-application/sgml
-application/sgml-open-catalog
-application/sieve
-application/slate
-application/smil smi smil
-application/timestamp-query
-application/timestamp-reply
-application/vemmi
-application/whoispp-query
-application/whoispp-response
-application/wita
-application/x400-bp
-application/xhtml+xml xhtml xht
-application/xml xml xsl xsd
-application/xml-dtd
-application/xml-external-parsed-entity
-application/xspf+xml xspf
-application/zip zip
-application/vnd.3M.Post-it-Notes
-application/vnd.accpac.simply.aso
-application/vnd.accpac.simply.imp
-application/vnd.acucobol
-application/vnd.aether.imp
-application/vnd.anser-web-certificate-issue-initiation
-application/vnd.anser-web-funds-transfer-initiation
-application/vnd.audiograph
-application/vnd.bmi
-application/vnd.businessobjects
-application/vnd.canon-cpdl
-application/vnd.canon-lips
-application/vnd.cinderella cdy
-application/vnd.claymore
-application/vnd.commerce-battelle
-application/vnd.commonspace
-application/vnd.comsocaller
-application/vnd.contact.cmsg
-application/vnd.cosmocaller
-application/vnd.ctc-posml
-application/vnd.cups-postscript
-application/vnd.cups-raster
-application/vnd.cups-raw
-application/vnd.cybank
-application/vnd.dna
-application/vnd.dpgraph
-application/vnd.dxr
-application/vnd.ecdis-update
-application/vnd.ecowin.chart
-application/vnd.ecowin.filerequest
-application/vnd.ecowin.fileupdate
-application/vnd.ecowin.series
-application/vnd.ecowin.seriesrequest
-application/vnd.ecowin.seriesupdate
-application/vnd.enliven
-application/vnd.epson.esf
-application/vnd.epson.msf
-application/vnd.epson.quickanime
-application/vnd.epson.salt
-application/vnd.epson.ssf
-application/vnd.ericsson.quickcall
-application/vnd.eudora.data
-application/vnd.fdf
-application/vnd.ffsns
-application/vnd.flographit
-application/vnd.framemaker
-application/vnd.fsc.weblaunch
-application/vnd.fujitsu.oasys
-application/vnd.fujitsu.oasys2
-application/vnd.fujitsu.oasys3
-application/vnd.fujitsu.oasysgp
-application/vnd.fujitsu.oasysprs
-application/vnd.fujixerox.ddd
-application/vnd.fujixerox.docuworks
-application/vnd.fujixerox.docuworks.binder
-application/vnd.fut-misnet
-application/vnd.google-earth.kml+xml kml
-application/vnd.google-earth.kmz kmz
-application/vnd.grafeq
-application/vnd.groove-account
-application/vnd.groove-identity-message
-application/vnd.groove-injector
-application/vnd.groove-tool-message
-application/vnd.groove-tool-template
-application/vnd.groove-vcard
-application/vnd.hhe.lesson-player
-application/vnd.hp-HPGL
-application/vnd.hp-PCL
-application/vnd.hp-PCLXL
-application/vnd.hp-hpid
-application/vnd.hp-hps
-application/vnd.httphone
-application/vnd.hzn-3d-crossword
-application/vnd.ibm.MiniPay
-application/vnd.ibm.afplinedata
-application/vnd.ibm.modcap
-application/vnd.informix-visionary
-application/vnd.intercon.formnet
-application/vnd.intertrust.digibox
-application/vnd.intertrust.nncp
-application/vnd.intu.qbo
-application/vnd.intu.qfx
-application/vnd.irepository.package+xml
-application/vnd.is-xpr
-application/vnd.japannet-directory-service
-application/vnd.japannet-jpnstore-wakeup
-application/vnd.japannet-payment-wakeup
-application/vnd.japannet-registration
-application/vnd.japannet-registration-wakeup
-application/vnd.japannet-setstore-wakeup
-application/vnd.japannet-verification
-application/vnd.japannet-verification-wakeup
-application/vnd.koan
-application/vnd.lotus-1-2-3
-application/vnd.lotus-approach
-application/vnd.lotus-freelance
-application/vnd.lotus-notes
-application/vnd.lotus-organizer
-application/vnd.lotus-screencam
-application/vnd.lotus-wordpro
-application/vnd.mcd
-application/vnd.mediastation.cdkey
-application/vnd.meridian-slingshot
-application/vnd.mif
-application/vnd.minisoft-hp3000-save
-application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.mobius.daf
-application/vnd.mobius.dis
-application/vnd.mobius.msl
-application/vnd.mobius.plc
-application/vnd.mobius.txf
-application/vnd.motorola.flexsuite
-application/vnd.motorola.flexsuite.adsi
-application/vnd.motorola.flexsuite.fis
-application/vnd.motorola.flexsuite.gotap
-application/vnd.motorola.flexsuite.kmr
-application/vnd.motorola.flexsuite.ttc
-application/vnd.motorola.flexsuite.wem
-application/vnd.mozilla.xul+xml xul
-application/vnd.ms-artgalry
-application/vnd.ms-asf
-application/vnd.ms-excel xls xlb xlt
-application/vnd.ms-lrm
-application/vnd.ms-pki.seccat cat
-application/vnd.ms-pki.stl stl
-application/vnd.ms-powerpoint ppt pps
-application/vnd.ms-project
-application/vnd.ms-tnef
-application/vnd.ms-works
-application/vnd.mseq
-application/vnd.msign
-application/vnd.music-niff
-application/vnd.musician
-application/vnd.netfpx
-application/vnd.noblenet-directory
-application/vnd.noblenet-sealer
-application/vnd.noblenet-web
-application/vnd.novadigm.EDM
-application/vnd.novadigm.EDX
-application/vnd.novadigm.EXT
-application/vnd.oasis.opendocument.chart odc
-application/vnd.oasis.opendocument.database odb
-application/vnd.oasis.opendocument.formula odf
-application/vnd.oasis.opendocument.graphics odg
-application/vnd.oasis.opendocument.graphics-template otg
-application/vnd.oasis.opendocument.image odi
-application/vnd.oasis.opendocument.presentation odp
-application/vnd.oasis.opendocument.presentation-template otp
-application/vnd.oasis.opendocument.spreadsheet ods
-application/vnd.oasis.opendocument.spreadsheet-template ots
-application/vnd.oasis.opendocument.text odt
-application/vnd.oasis.opendocument.text-master odm
-application/vnd.oasis.opendocument.text-template ott
-application/vnd.oasis.opendocument.text-web oth
-application/vnd.osa.netdeploy
-application/vnd.palm
-application/vnd.pg.format
-application/vnd.pg.osasli
-application/vnd.powerbuilder6
-application/vnd.powerbuilder6-s
-application/vnd.powerbuilder7
-application/vnd.powerbuilder7-s
-application/vnd.powerbuilder75
-application/vnd.powerbuilder75-s
-application/vnd.previewsystems.box
-application/vnd.publishare-delta-tree
-application/vnd.pvi.ptid1
-application/vnd.pwg-xhtml-print+xml
-application/vnd.rapid
-application/vnd.rim.cod cod
-application/vnd.s3sms
-application/vnd.seemail
-application/vnd.shana.informed.formdata
-application/vnd.shana.informed.formtemplate
-application/vnd.shana.informed.interchange
-application/vnd.shana.informed.package
-application/vnd.smaf mmf
-application/vnd.sss-cod
-application/vnd.sss-dtf
-application/vnd.sss-ntf
-application/vnd.stardivision.calc sdc
-application/vnd.stardivision.chart sds
-application/vnd.stardivision.draw sda
-application/vnd.stardivision.impress sdd
-application/vnd.stardivision.math sdf
-application/vnd.stardivision.writer sdw
-application/vnd.stardivision.writer-global sgl
-application/vnd.street-stream
-application/vnd.sun.xml.calc sxc
-application/vnd.sun.xml.calc.template stc
-application/vnd.sun.xml.draw sxd
-application/vnd.sun.xml.draw.template std
-application/vnd.sun.xml.impress sxi
-application/vnd.sun.xml.impress.template sti
-application/vnd.sun.xml.math sxm
-application/vnd.sun.xml.writer sxw
-application/vnd.sun.xml.writer.global sxg
-application/vnd.sun.xml.writer.template stw
-application/vnd.svd
-application/vnd.swiftview-ics
-application/vnd.symbian.install sis
-application/vnd.triscape.mxs
-application/vnd.trueapp
-application/vnd.truedoc
-application/vnd.tve-trigger
-application/vnd.ufdl
-application/vnd.uplanet.alert
-application/vnd.uplanet.alert-wbxml
-application/vnd.uplanet.bearer-choice
-application/vnd.uplanet.bearer-choice-wbxml
-application/vnd.uplanet.cacheop
-application/vnd.uplanet.cacheop-wbxml
-application/vnd.uplanet.channel
-application/vnd.uplanet.channel-wbxml
-application/vnd.uplanet.list
-application/vnd.uplanet.list-wbxml
-application/vnd.uplanet.listcmd
-application/vnd.uplanet.listcmd-wbxml
-application/vnd.uplanet.signal
-application/vnd.vcx
-application/vnd.vectorworks
-application/vnd.vidsoft.vidconference
-application/vnd.visio vsd
-application/vnd.vividence.scriptfile
-application/vnd.wap.sic
-application/vnd.wap.slc
-application/vnd.wap.wbxml wbxml
-application/vnd.wap.wmlc wmlc
-application/vnd.wap.wmlscriptc wmlsc
-application/vnd.webturbo
-application/vnd.wordperfect wpd
-application/vnd.wordperfect5.1 wp5
-application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf
-application/vnd.xara
-application/vnd.xfdl
-application/vnd.yellowriver-custom-menu
-application/x-123 wk
-application/x-7z-compressed 7z
-application/x-abiword abw
-application/x-apple-diskimage dmg
-application/x-bcpio bcpio
-application/x-bittorrent torrent
-application/x-cab cab
-application/x-cbr cbr
-application/x-cbz cbz
-application/x-cdf cdf cda
-application/x-cdlink vcd
-application/x-chess-pgn pgn
-application/x-core
-application/x-cpio cpio
-application/x-csh csh
-application/x-debian-package deb udeb
-application/x-director dcr dir dxr
-application/x-dms dms
-application/x-doom wad
-application/x-dvi dvi
-application/x-httpd-eruby rhtml
-application/x-executable
-application/x-font pfa pfb gsf pcf pcf.Z
-application/x-freemind mm
-application/x-futuresplash spl
-application/x-gnumeric gnumeric
-application/x-go-sgf sgf
-application/x-graphing-calculator gcf
-application/x-gtar gtar tgz taz
-application/x-hdf hdf
-application/x-httpd-php phtml pht php
-application/x-httpd-php-source phps
-application/x-httpd-php3 php3
-application/x-httpd-php3-preprocessed php3p
-application/x-httpd-php4 php4
-application/x-ica ica
-application/x-info info
-application/x-internet-signup ins isp
-application/x-iphone iii
-application/x-iso9660-image iso
-application/x-jam jam
-application/x-java-applet
-application/x-java-bean
-application/x-java-jnlp-file jnlp
-application/x-jmol jmz
-application/x-kchart chrt
-application/x-kdelnk
-application/x-killustrator kil
-application/x-koan skp skd skt skm
-application/x-kpresenter kpr kpt
-application/x-kspread ksp
-application/x-kword kwd kwt
-application/x-latex latex
-application/x-lha lha
-application/x-lyx lyx
-application/x-lzh lzh
-application/x-lzx lzx
-application/x-maker frm maker frame fm fb book fbdoc
-application/x-mif mif
-application/x-ms-wmd wmd
-application/x-ms-wmz wmz
-application/x-msdos-program com exe bat dll
-application/x-msi msi
-application/x-netcdf nc
-application/x-ns-proxy-autoconfig pac dat
-application/x-nwc nwc
-application/x-object o
-application/x-oz-application oza
-application/x-pkcs7-certreqresp p7r
-application/x-pkcs7-crl crl
-application/x-python-code pyc pyo
-application/x-qgis qgs shp shx
-application/x-quicktimeplayer qtl
-application/x-redhat-package-manager rpm
-application/x-ruby rb
-application/x-rx
-application/x-sh sh
-application/x-shar shar
-application/x-shellscript
-application/x-shockwave-flash swf swfl
-application/x-stuffit sit sitx
-application/x-sv4cpio sv4cpio
-application/x-sv4crc sv4crc
-application/x-tar tar
-application/x-tcl tcl
-application/x-tex-gf gf
-application/x-tex-pk pk
-application/x-texinfo texinfo texi
-application/x-trash ~ % bak old sik
-application/x-troff t tr roff
-application/x-troff-man man
-application/x-troff-me me
-application/x-troff-ms ms
-application/x-ustar ustar
-application/x-videolan
-application/x-wais-source src
-application/x-wingz wz
-application/x-x509-ca-cert crt
-application/x-xcf xcf
-application/x-xfig fig
-application/x-xpinstall xpi
-
-audio/32kadpcm
-audio/3gpp
-audio/amr amr
-audio/amr-wb awb
-audio/amr amr
-audio/amr-wb awb
-audio/annodex axa
-audio/basic au snd
audio/flac flac
-audio/g.722.1
-audio/l16
-audio/midi mid midi kar
-audio/mp4a-latm
-audio/mpa-robust
-audio/mpeg mpga mpega mp2 mp3 m4a
-audio/mpegurl m3u
+audio/musepack mpc mpp mp+
audio/ogg oga ogg spx
-audio/parityfec
-audio/prs.sid sid
-audio/telephone-event
-audio/tone
-audio/vnd.cisco.nse
-audio/vnd.cns.anp1
-audio/vnd.cns.inf1
-audio/vnd.digital-winds
-audio/vnd.everad.plj
-audio/vnd.lucent.voice
-audio/vnd.nortel.vbk
-audio/vnd.nuera.ecelp4800
-audio/vnd.nuera.ecelp7470
-audio/vnd.nuera.ecelp9600
-audio/vnd.octel.sbc
-audio/vnd.qcelp
-audio/vnd.rhetorex.32kadpcm
-audio/vnd.vmx.cvsd
-audio/x-aiff aif aiff aifc
-audio/x-gsm gsm
-audio/x-mpegurl m3u
-audio/x-ms-wma wma
-audio/x-ms-wax wax
-audio/x-pn-realaudio-plugin
-audio/x-pn-realaudio ra rm ram
-audio/x-realaudio ra
-audio/x-scpls pls
-audio/x-sd2 sd2
-audio/x-wav wav
-
-chemical/x-alchemy alc
-chemical/x-cache cac cache
-chemical/x-cache-csf csf
-chemical/x-cactvs-binary cbin cascii ctab
-chemical/x-cdx cdx
-chemical/x-cerius cer
-chemical/x-chem3d c3d
-chemical/x-chemdraw chm
-chemical/x-cif cif
-chemical/x-cmdf cmdf
-chemical/x-cml cml
-chemical/x-compass cpa
-chemical/x-crossfire bsd
-chemical/x-csml csml csm
-chemical/x-ctx ctx
-chemical/x-cxf cxf cef
-#chemical/x-daylight-smiles smi
-chemical/x-embl-dl-nucleotide emb embl
-chemical/x-galactic-spc spc
-chemical/x-gamess-input inp gam gamin
-chemical/x-gaussian-checkpoint fch fchk
-chemical/x-gaussian-cube cub
-chemical/x-gaussian-input gau gjc gjf
-chemical/x-gaussian-log gal
-chemical/x-gcg8-sequence gcg
-chemical/x-genbank gen
-chemical/x-hin hin
-chemical/x-isostar istr ist
-chemical/x-jcamp-dx jdx dx
-chemical/x-kinemage kin
-chemical/x-macmolecule mcm
-chemical/x-macromodel-input mmd mmod
-chemical/x-mdl-molfile mol
-chemical/x-mdl-rdfile rd
-chemical/x-mdl-rxnfile rxn
-chemical/x-mdl-sdfile sd sdf
-chemical/x-mdl-tgf tgf
-#chemical/x-mif mif
-chemical/x-mmcif mcif
-chemical/x-mol2 mol2
-chemical/x-molconn-Z b
-chemical/x-mopac-graph gpt
-chemical/x-mopac-input mop mopcrt mpc zmt
-chemical/x-mopac-out moo
-chemical/x-mopac-vib mvb
-chemical/x-ncbi-asn1 asn
-chemical/x-ncbi-asn1-ascii prt ent
-chemical/x-ncbi-asn1-binary val aso
-chemical/x-ncbi-asn1-spec asn
-chemical/x-pdb pdb ent
-chemical/x-rosdal ros
-chemical/x-swissprot sw
-chemical/x-vamas-iso14976 vms
-chemical/x-vmd vmd
-chemical/x-xtel xtel
-chemical/x-xyz xyz
-
-image/cgm
-image/g3fax
-image/gif gif
-image/ief ief
-image/jpeg jpeg jpg jpe
-image/naplps
-image/pcx pcx
-image/png png
-image/prs.btif
-image/prs.pti
-image/svg+xml svg svgz
-image/tiff tiff tif
-image/vnd.cns.inf2
-image/vnd.djvu djvu djv
-image/vnd.dwg
-image/vnd.dxf
-image/vnd.fastbidsheet
-image/vnd.fpx
-image/vnd.fst
-image/vnd.fujixerox.edmics-mmr
-image/vnd.fujixerox.edmics-rlc
-image/vnd.mix
-image/vnd.net-fpx
-image/vnd.svf
-image/vnd.wap.wbmp wbmp
-image/vnd.xiff
-image/x-cmu-raster ras
-image/x-coreldraw cdr
-image/x-coreldrawpattern pat
-image/x-coreldrawtemplate cdt
-image/x-corelphotopaint cpt
-image/x-icon ico
-image/x-jg art
-image/x-jng jng
-image/x-ms-bmp bmp
-image/x-photoshop psd
-image/x-portable-anymap pnm
-image/x-portable-bitmap pbm
-image/x-portable-graymap pgm
-image/x-portable-pixmap ppm
-image/x-rgb rgb
-image/x-xbitmap xbm
-image/x-xpixmap xpm
-image/x-xwindowdump xwd
-inode/chardevice
-inode/blockdevice
-inode/directory-locked
-inode/directory
-inode/fifo
-inode/socket
-
-message/delivery-status
-message/disposition-notification
-message/external-body
-message/http
-message/s-http
-message/news
-message/partial
-message/rfc822 eml
-
-model/iges igs iges
-model/mesh msh mesh silo
-model/vnd.dwf
-model/vnd.flatland.3dml
-model/vnd.gdl
-model/vnd.gs-gdl
-model/vnd.gtw
-model/vnd.mts
-model/vnd.vtu
-model/vrml wrl vrml
-
-multipart/alternative
-multipart/appledouble
-multipart/byteranges
-multipart/digest
-multipart/encrypted
-multipart/form-data
-multipart/header-set
-multipart/mixed
-multipart/parallel
-multipart/related
-multipart/report
-multipart/signed
-multipart/voice-message
-
-text/calendar ics icz
-text/css css
-text/csv csv
-text/directory
-text/english
-text/enriched
-text/h323 323
-text/html html htm shtml
-text/iuls uls
-text/mathml mml
-text/parityfec
-text/plain asc txt text pot brf
-text/prs.lines.tag
-text/rfc822-headers
-text/richtext rtx
-text/rtf
-text/scriptlet sct wsc
-text/t140
-text/texmacs tm ts
-text/tab-separated-values tsv
-text/uri-list
-text/vnd.abc
-text/vnd.curl
-text/vnd.DMClientScript
-text/vnd.flatland.3dml
-text/vnd.fly
-text/vnd.fmi.flexstor
-text/vnd.in3d.3dml
-text/vnd.in3d.spot
-text/vnd.IPTC.NewsML
-text/vnd.IPTC.NITF
-text/vnd.latex-z
-text/vnd.motorola.reflex
-text/vnd.ms-mediapackage
-text/vnd.sun.j2me.app-descriptor jad
-text/vnd.wap.si
-text/vnd.wap.sl
-text/vnd.wap.wml wml
-text/vnd.wap.wmlscript wmls
-text/x-bibtex bib
-text/x-boo boo
-text/x-c++hdr h++ hpp hxx hh
-text/x-c++src c++ cpp cxx cc
-text/x-chdr h
-text/x-component htc
-text/x-crontab
-text/x-csh csh
-text/x-csrc c
-text/x-dsrc d
-text/x-diff diff patch
-text/x-haskell hs
-text/x-java java
-text/x-literate-haskell lhs
-text/x-makefile
-text/x-moc moc
-text/x-pascal p pas
-text/x-pcs-gcd gcd
-text/x-perl pl pm
-text/x-python py
-text/x-scala scala
-text/x-server-parsed-html
-text/x-setext etx
-text/x-sh sh
-text/x-tcl tcl tk
-text/x-tex tex ltx sty cls
-text/x-vcalendar vcs
-text/x-vcard vcf
-
-video/3gpp 3gp
-video/annodex axv
-video/dl dl
-video/dv dif dv
-video/fli fli
-video/gl gl
-video/mpeg mpeg mpg mpe
video/mkv mkv
-video/mp4 mp4
-video/quicktime qt mov
-video/mp4v-es
-video/ogg ogv
-video/parityfec
-video/pointer
-video/vnd.fvt
-video/vnd.motorola.video
-video/vnd.motorola.videop
-video/vnd.mpegurl mxu
-video/vnd.mts
-video/vnd.nokia.interleaved-multimedia
-video/vnd.vivo
-video/x-flv flv
-video/x-la-asf lsf lsx
-video/x-mng mng
-video/x-ms-asf asf asx
-video/x-ms-wm wm
-video/x-ms-wmv wmv
-video/x-ms-wmx wmx
-video/x-ms-wvx wvx
-video/x-msvideo avi
-video/x-sgi-movie movie
-video/x-matroska mpv
-
-x-conference/x-cooltalk ice
-
-x-epoc/x-sisx-app sisx
-x-world/x-vrml vrm vrml wrl
+video/flash flv
+video/ogg ogv ogm
+video/divx div divx
diff --git a/ranger/defaults/__init__.py b/ranger/defaults/__init__.py
index ee680432..71df3cb3 100644
--- a/ranger/defaults/__init__.py
+++ b/ranger/defaults/__init__.py
@@ -1,16 +1 @@
-# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
"""Default options and configration files"""
diff --git a/ranger/defaults/apps.py b/ranger/defaults/apps.py
index a19df7a9..347b9ce2 100644
--- a/ranger/defaults/apps.py
+++ b/ranger/defaults/apps.py
@@ -59,7 +59,7 @@ class CustomApplications(Applications):
if f.extension is not None:
if f.extension in ('pdf'):
- return self.either(c, 'evince', 'apvlv')
+ return self.either(c, 'evince', 'zathura', 'apvlv')
if f.extension in ('html', 'htm', 'xhtml', 'swf'):
return self.either(c, 'firefox', 'opera', 'elinks')
if f.extension in ('swc', 'smc'):
@@ -78,11 +78,12 @@ class CustomApplications(Applications):
return self.either(c, 'mplayer', 'totem')
if f.image:
- return self.app_feh(c)
+ return self.either(c, 'feh', 'eye_of_gnome', 'mirage')
- if f.document:
+ if f.document or f.filetype.startswith('text'):
return self.app_editor(c)
+
# ----------------------------------------- application definitions
def app_pager(self, c):
return tup('less', *c)
@@ -127,10 +128,14 @@ class CustomApplications(Applications):
else:
return tup('mplayer', '-fs', *c)
+ @depends_on("eog")
+ def app_eye_of_gnome(self, c):
+ c.flags += 'd'
+ return tup('eog', *c)
+
@depends_on('mirage')
def app_mirage(self, c):
c.flags += 'd'
-
return tup('mirage', *c)
@depends_on('feh')
@@ -142,7 +147,7 @@ class CustomApplications(Applications):
if c.mode in arg:
return tup('feh', arg[c.mode], c.file.path)
if c.mode is 4:
- return tup('gimp', *c)
+ return self.app_gimp(c)
if len(c.files) > 1:
return tup('feh', *c)
@@ -156,6 +161,10 @@ class CustomApplications(Applications):
return tup('feh', *deq)
+ @depends_on("gimp")
+ def app_gimp(self, c):
+ return tup('gimp', *c)
+
@depends_on('aunpack')
def app_aunpack(self, c):
if c.mode is 0:
@@ -211,6 +220,10 @@ class CustomApplications(Applications):
def app_evince(self, c):
return tup("evince", *c)
+ @depends_on('zathura')
+ def app_zathura(self, c):
+ return tup("zathura", *c)
+
@depends_on('wine')
def app_wine(self, c):
return tup("wine", c.file.path)
diff --git a/ranger/commands.py b/ranger/defaults/commands.py
index ddd8ba07..b1518013 100644
--- a/ranger/commands.py
+++ b/ranger/defaults/commands.py
@@ -40,7 +40,7 @@ class Command(FileManagerAware):
from os.path import dirname, basename, expanduser, join, isdir
line = parse(self.line)
- pwd = self.fm.env.pwd.path
+ cwd = self.fm.env.cwd.path
try:
rel_dest = line.rest(1)
@@ -52,7 +52,7 @@ class Command(FileManagerAware):
rel_dest = expanduser(rel_dest)
# define some shortcuts
- abs_dest = join(pwd, rel_dest)
+ abs_dest = join(cwd, rel_dest)
abs_dirname = dirname(abs_dest)
rel_basename = basename(rel_dest)
rel_dirname = dirname(rel_dest)
@@ -89,7 +89,7 @@ class Command(FileManagerAware):
from os.path import dirname, basename, expanduser, join, isdir
line = parse(self.line)
- pwd = self.fm.env.pwd.path
+ cwd = self.fm.env.cwd.path
try:
rel_dest = line.rest(1)
@@ -101,7 +101,7 @@ class Command(FileManagerAware):
rel_dest = expanduser(rel_dest)
# define some shortcuts
- abs_dest = join(pwd, rel_dest)
+ abs_dest = join(cwd, rel_dest)
abs_dirname = dirname(abs_dest)
rel_basename = basename(rel_dest)
rel_dirname = dirname(rel_dest)
@@ -167,13 +167,13 @@ class cd(Command):
def quick_open(self):
from os.path import isdir, join, normpath
line = parse(self.line)
- pwd = self.fm.env.pwd.path
+ cwd = self.fm.env.cwd.path
rel_dest = line.rest(1)
if not rel_dest:
return False
- abs_dest = normpath(join(pwd, rel_dest))
+ abs_dest = normpath(join(cwd, rel_dest))
return rel_dest != '.' and isdir(abs_dest)
@@ -212,22 +212,22 @@ class find(Command):
def _search(self):
self.count = 0
line = parse(self.line)
- pwd = self.fm.env.pwd
+ cwd = self.fm.env.cwd
try:
arg = line.rest(1)
except IndexError:
return False
- deq = deque(pwd.files)
- deq.rotate(-pwd.pointer)
+ deq = deque(cwd.files)
+ deq.rotate(-cwd.pointer)
i = 0
for fsobj in deq:
filename = fsobj.basename_lower
if arg in filename:
self.count += 1
if self.count == 1:
- pwd.move(absolute=(pwd.pointer + i) % len(pwd.files))
- self.fm.env.cf = pwd.pointed_obj
+ cwd.move(absolute=(cwd.pointer + i) % len(cwd.files))
+ self.fm.env.cf = cwd.pointed_obj
if self.count > 1:
return False
i += 1
@@ -255,13 +255,36 @@ class delete(Command):
"Selection" is defined as all the "marked files" (by default, you
can mark files with space or v). If there are no marked files,
use the "current file" (where the cursor is)
+
+ When attempting to delete non-empty directories or multiple
+ marked files, it will require a confirmation: The last word in
+ the line has to start with a 'y'. This may look like:
+ :delete yes
+ :delete seriously? yeah!
"""
allow_abbrev = False
+ WARNING = 'delete seriously? '
def execute(self):
- self.fm.delete()
+ line = parse(self.line)
+ lastword = line.chunk(-1)
+
+ if lastword.startswith('y'):
+ # user confirmed deletion!
+ return self.fm.delete()
+ elif self.line.startswith(delete.WARNING):
+ # user did not confirm deletion
+ return
+
+ if self.fm.env.cwd.marked_items \
+ or (self.fm.env.cf.is_directory and not self.fm.env.cf.empty()):
+ # better ask for a confirmation, when attempting to
+ # delete multiple files or a non-empty directory.
+ return self.fm.open_console(self.mode, delete.WARNING)
+ # no need for a confirmation, just delete
+ self.fm.delete()
class mkdir(Command):
"""
@@ -275,7 +298,7 @@ class mkdir(Command):
from os import mkdir
line = parse(self.line)
- dirname = join(self.fm.env.pwd.path, expanduser(line.rest(1)))
+ dirname = join(self.fm.env.cwd.path, expanduser(line.rest(1)))
if not lexists(dirname):
mkdir(dirname)
else:
@@ -294,7 +317,7 @@ class touch(Command):
from os import mkdir
line = parse(self.line)
- fname = join(self.fm.env.pwd.path, expanduser(line.rest(1)))
+ fname = join(self.fm.env.cwd.path, expanduser(line.rest(1)))
if not lexists(fname):
open(fname, 'a')
else:
@@ -357,9 +380,11 @@ class rename(Command):
def execute(self):
from ranger.fsobject.file import File
line = parse(self.line)
+ if not line.rest(1):
+ return self.fm.notify('Syntax: rename <newname>', bad=True)
self.fm.rename(self.fm.env.cf, line.rest(1))
f = File(line.rest(1))
- self.fm.env.pwd.pointed_obj = f
+ self.fm.env.cwd.pointed_obj = f
self.fm.env.cf = f
def tab(self):
@@ -400,7 +425,7 @@ class chmod(Command):
try:
# reloading directory. maybe its better to reload the selected
# files only.
- self.fm.env.pwd.load_content()
+ self.fm.env.cwd.load_content()
except:
pass
@@ -458,7 +483,7 @@ def get_command(name, abbrev=True):
or cmd == name]
if len(lst) == 0:
raise KeyError
- if len(lst) == 1:
+ if len(lst) == 1 or by_name[name] in lst:
return lst[0]
raise ValueError("Ambiguous command")
else:
@@ -470,3 +495,5 @@ def get_command(name, abbrev=True):
def command_generator(start):
return (cmd + ' ' for cmd in by_name if cmd.startswith(start))
+alias(e=edit) # to make :e unambiguous.
+
diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py
index 7a17c831..f48c7012 100644
--- a/ranger/defaults/keys.py
+++ b/ranger/defaults/keys.py
@@ -15,7 +15,7 @@
"""
This is the default key configuration file of ranger.
-Syntax for binding keys: bind(*keys, fnc)
+Syntax for binding keys: map(*keys, fnc)
keys are one or more key-combinations which are either:
* a string
@@ -34,11 +34,13 @@ arg.keybuffer: the keybuffer instance
Check ranger.keyapi for more information
"""
-from ranger.api.keys import *
+# NOTE: The "map" object used below is a callable CommandList
+# object and NOT the builtin python map function!
+from ranger.api.keys import *
-def _vimlike_aliases(command_list):
- bind, alias = make_abbreviations(command_list)
+def _vimlike_aliases(map):
+ alias = map.alias
# the key 'k' will always do the same as KEY_UP, etc.
alias(KEY_UP, 'k')
@@ -51,76 +53,71 @@ def _vimlike_aliases(command_list):
alias(KEY_HOME, 'gg')
alias(KEY_END, 'G')
- # I like to move quickly with J/K
- alias(ctrl('d'), 'J')
- alias(ctrl('u'), 'K')
-
-def initialize_commands(command_list):
+def initialize_commands(map):
"""Initialize the commands for the main user interface"""
- bind, alias = make_abbreviations(command_list)
-
# -------------------------------------------------------- movement
- _vimlike_aliases(command_list)
- command_list.alias(KEY_LEFT, KEY_BACKSPACE, DEL)
+ _vimlike_aliases(map)
+ map.alias(KEY_LEFT, KEY_BACKSPACE, DEL)
- bind(KEY_DOWN, fm.move_pointer(relative=1))
- bind(KEY_UP, fm.move_pointer(relative=-1))
- bind(KEY_RIGHT, KEY_ENTER, ctrl('j'), fm.move_right())
- bind(KEY_LEFT, KEY_BACKSPACE, DEL, fm.move_left(1))
- bind(KEY_HOME, fm.move_pointer(absolute=0))
- bind(KEY_END, fm.move_pointer(absolute=-1))
+ map(KEY_DOWN, fm.move_pointer(relative=1))
+ map(KEY_UP, fm.move_pointer(relative=-1))
+ map(KEY_RIGHT, KEY_ENTER, ctrl('j'), fm.move_right())
+ map(KEY_LEFT, KEY_BACKSPACE, DEL, fm.move_left(1))
+ map(KEY_HOME, fm.move_pointer(absolute=0))
+ map(KEY_END, fm.move_pointer(absolute=-1))
- bind(KEY_HOME, fm.move_pointer(absolute=0))
- bind(KEY_END, fm.move_pointer(absolute=-1))
+ map(KEY_HOME, fm.move_pointer(absolute=0))
+ map(KEY_END, fm.move_pointer(absolute=-1))
- bind('%', fm.move_pointer_by_percentage(absolute=50))
- bind(KEY_NPAGE, fm.move_pointer_by_pages(1))
- bind(KEY_PPAGE, fm.move_pointer_by_pages(-1))
- bind(ctrl('d'), fm.move_pointer_by_pages(0.5))
- bind(ctrl('u'), fm.move_pointer_by_pages(-0.5))
+ map('%', fm.move_pointer_by_percentage(absolute=50))
+ map(KEY_NPAGE, fm.move_pointer_by_pages(1))
+ map(KEY_PPAGE, fm.move_pointer_by_pages(-1))
+ map(ctrl('d'), 'J', fm.move_pointer_by_pages(0.5))
+ map(ctrl('u'), 'K', fm.move_pointer_by_pages(-0.5))
- bind(']', fm.traverse())
- bind('[', fm.history_go(-1))
+ map(']', fm.traverse())
+ map('[', fm.history_go(-1))
# --------------------------------------------------------- history
- bind('H', fm.history_go(-1))
- bind('L', fm.history_go(1))
+ map('H', fm.history_go(-1))
+ map('L', fm.history_go(1))
# ----------------------------------------------- tagging / marking
- bind('t', fm.tag_toggle())
- bind('T', fm.tag_remove())
+ map('t', fm.tag_toggle())
+ map('T', fm.tag_remove())
- bind(' ', fm.mark(toggle=True))
- bind('v', fm.mark(all=True, toggle=True))
- bind('V', fm.mark(all=True, val=False))
+ map(' ', fm.mark(toggle=True))
+ map('v', fm.mark(all=True, toggle=True))
+ map('V', fm.mark(all=True, val=False))
# ------------------------------------------ file system operations
- bind('yy', fm.copy())
- bind('dd', fm.cut())
- bind('pp', fm.paste())
- bind('po', fm.paste(overwrite=True))
- bind('pl', fm.paste_symlink())
- bind('p', hint='press //p// once again to confirm pasting' \
+ map('yy', fm.copy())
+ map('dd', fm.cut())
+ map('pp', fm.paste())
+ map('po', fm.paste(overwrite=True))
+ map('pl', fm.paste_symlink())
+ map('p', hint='press //p// once again to confirm pasting' \
', or //l// to create symlinks')
# ---------------------------------------------------- run programs
- bind('s', fm.execute_command(os.environ['SHELL']))
- bind('E', fm.edit_file())
- bind(',term', fm.execute_command('x-terminal-emulator', flags='d'))
- bind('du', fm.execute_command('du --max-depth=1 -h | less'))
+ map('s', fm.execute_command(os.environ['SHELL']))
+ map('E', fm.edit_file())
+ map(',term', fm.execute_command('x-terminal-emulator', flags='d'))
+ map('du', fm.execute_command('du --max-depth=1 -h | less'))
# -------------------------------------------------- toggle options
- bind('b', hint="bind_//h//idden //p//review_files //d//irectories_first " \
- "//c//ollapse_preview flush//i//nput")
- bind('bh', fm.toggle_boolean_option('show_hidden'))
- bind('bp', fm.toggle_boolean_option('preview_files'))
- bind('bi', fm.toggle_boolean_option('flushinput'))
- bind('bd', fm.toggle_boolean_option('directories_first'))
- bind('bc', fm.toggle_boolean_option('collapse_preview'))
+ map('b', hint="show_//h//idden //p//review_files //d//irectories_first " \
+ "//c//ollapse_preview flush//i//nput")
+ map('bh', fm.toggle_boolean_option('show_hidden'))
+ map('bp', fm.toggle_boolean_option('preview_files'))
+ map('bP', fm.toggle_boolean_option('preview_directories'))
+ map('bi', fm.toggle_boolean_option('flushinput'))
+ map('bd', fm.toggle_boolean_option('directories_first'))
+ map('bc', fm.toggle_boolean_option('collapse_preview'))
# ------------------------------------------------------------ sort
- bind('o', 'O', hint="//s//ize //b//ase//n//ame //m//time //t//ype //r//everse")
+ map('o', 'O', hint="//s//ize //b//ase//n//ame //m//time //t//ype //r//everse")
sort_dict = {
's': 'size',
'b': 'basename',
@@ -132,63 +129,63 @@ def initialize_commands(command_list):
for key, val in sort_dict.items():
for key, is_capital in ((key, False), (key.upper(), True)):
# reverse if any of the two letters is capital
- bind('o' + key, fm.sort(func=val, reverse=is_capital))
- bind('O' + key, fm.sort(func=val, reverse=True))
+ map('o' + key, fm.sort(func=val, reverse=is_capital))
+ map('O' + key, fm.sort(func=val, reverse=True))
- bind('or', 'Or', 'oR', 'OR', lambda arg: \
+ map('or', 'Or', 'oR', 'OR', lambda arg: \
arg.fm.sort(reverse=not arg.fm.settings.reverse))
# ----------------------------------------------- console shortcuts
- @bind("A")
+ @map("A")
def append_to_filename(arg):
command = 'rename ' + arg.fm.env.cf.basename
arg.fm.open_console(cmode.COMMAND, command)
- bind('cw', fm.open_console(cmode.COMMAND, 'rename '))
- bind('cd', fm.open_console(cmode.COMMAND, 'cd '))
- bind('f', fm.open_console(cmode.COMMAND_QUICK, 'find '))
- bind('tf', fm.open_console(cmode.COMMAND, 'filter '))
- bind('d', hint='d//u// (disk usage) d//d// (cut)')
+ map('cw', fm.open_console(cmode.COMMAND, 'rename '))
+ map('cd', fm.open_console(cmode.COMMAND, 'cd '))
+ map('f', fm.open_console(cmode.COMMAND_QUICK, 'find '))
+ map('tf', fm.open_console(cmode.COMMAND, 'filter '))
+ map('d', hint='d//u// (disk usage) d//d// (cut)')
# --------------------------------------------- jump to directories
- bind('gh', fm.cd('~'))
- bind('ge', fm.cd('/etc'))
- bind('gu', fm.cd('/usr'))
- bind('gd', fm.cd('/dev'))
- bind('gl', fm.cd('/lib'))
- bind('go', fm.cd('/opt'))
- bind('gv', fm.cd('/var'))
- bind('gr', 'g/', fm.cd('/'))
- bind('gm', fm.cd('/media'))
- bind('gn', fm.cd('/mnt'))
- bind('gt', fm.cd('/tmp'))
- bind('gs', fm.cd('/srv'))
- bind('gR', fm.cd(RANGERDIR))
+ map('gh', fm.cd('~'))
+ map('ge', fm.cd('/etc'))
+ map('gu', fm.cd('/usr'))
+ map('gd', fm.cd('/dev'))
+ map('gl', fm.cd('/lib'))
+ map('go', fm.cd('/opt'))
+ map('gv', fm.cd('/var'))
+ map('gr', 'g/', fm.cd('/'))
+ map('gm', fm.cd('/media'))
+ map('gn', fm.cd('/mnt'))
+ map('gt', fm.cd('/tmp'))
+ map('gs', fm.cd('/srv'))
+ map('gR', fm.cd(RANGERDIR))
# ------------------------------------------------------- searching
- bind('/', fm.open_console(cmode.SEARCH))
+ map('/', fm.open_console(cmode.SEARCH))
- bind('n', fm.search())
- bind('N', fm.search(forward=False))
+ map('n', fm.search())
+ map('N', fm.search(forward=False))
- bind(TAB, fm.search(order='tag'))
- bind('cc', fm.search(order='ctime'))
- bind('cm', fm.search(order='mimetype'))
- bind('cs', fm.search(order='size'))
- bind('c', hint='//c//time //m//imetype //s//ize')
+ map(TAB, fm.search(order='tag'))
+ map('cc', fm.search(order='ctime'))
+ map('cm', fm.search(order='mimetype'))
+ map('cs', fm.search(order='size'))
+ map('c', hint='//c//time //m//imetype //s//ize')
# ------------------------------------------------------- bookmarks
for key in ALLOWED_BOOKMARK_KEYS:
- bind("`" + key, "'" + key, fm.enter_bookmark(key))
- bind("m" + key, fm.set_bookmark(key))
- bind("um" + key, fm.unset_bookmark(key))
- bind("`", "'", "m", draw_bookmarks=True)
+ map("`" + key, "'" + key, fm.enter_bookmark(key))
+ map("m" + key, fm.set_bookmark(key))
+ map("um" + key, fm.unset_bookmark(key))
+ map("`", "'", "m", draw_bookmarks=True)
# ---------------------------------------------------- change views
- bind('i', fm.display_file())
- bind(ctrl('p'), fm.display_log())
- bind('?', KEY_F1, fm.display_help())
- bind('w', lambda arg: arg.fm.ui.open_taskview())
+ map('i', fm.display_file())
+ map(ctrl('p'), fm.display_log())
+ map('?', KEY_F1, fm.display_help())
+ map('w', lambda arg: arg.fm.ui.open_taskview())
# ---------------------------------------------------------- custom
# This is useful to track watched episode of a series.
@@ -206,134 +203,129 @@ def initialize_commands(command_list):
bind(KEY_ENTER, ctrl('j'), fm.move_right(mode=1))
# ------------------------------------------------ system functions
- _system_functions(command_list)
- bind('ZZ', fm.exit())
- bind(ctrl('R'), fm.reset())
- bind('R', fm.reload_cwd())
- bind(ctrl('C'), fm.exit())
+ _system_functions(map)
+ map('ZZ', fm.exit())
+ map(ctrl('R'), fm.reset())
+ map('R', fm.reload_cwd())
+ map(ctrl('C'), fm.exit())
- bind(':', ';', fm.open_console(cmode.COMMAND))
- bind('>', fm.open_console(cmode.COMMAND_QUICK))
- bind('!', fm.open_console(cmode.OPEN))
- bind('r', fm.open_console(cmode.OPEN_QUICK))
+ map(':', ';', fm.open_console(cmode.COMMAND))
+ map('>', fm.open_console(cmode.COMMAND_QUICK))
+ map('!', fm.open_console(cmode.OPEN))
+ map('r', fm.open_console(cmode.OPEN_QUICK))
- command_list.rebuild_paths()
+ map.rebuild_paths()
-def initialize_console_commands(command_list):
+def initialize_console_commands(map):
"""Initialize the commands for the console widget only"""
- bind, alias = make_abbreviations(command_list)
# -------------------------------------------------------- movement
- bind(KEY_UP, wdg.history_move(-1))
- bind(KEY_DOWN, wdg.history_move(1))
+ map(KEY_UP, wdg.history_move(-1))
+ map(KEY_DOWN, wdg.history_move(1))
- bind(ctrl('b'), KEY_LEFT, wdg.move(relative = -1))
- bind(ctrl('f'), KEY_RIGHT, wdg.move(relative = 1))
- bind(ctrl('a'), KEY_HOME, wdg.move(absolute = 0))
- bind(ctrl('e'), KEY_END, wdg.move(absolute = -1))
+ map(ctrl('b'), KEY_LEFT, wdg.move(relative = -1))
+ map(ctrl('f'), KEY_RIGHT, wdg.move(relative = 1))
+ map(ctrl('a'), KEY_HOME, wdg.move(absolute = 0))
+ map(ctrl('e'), KEY_END, wdg.move(absolute = -1))
# ----------------------------------------- deleting / pasting text
- bind(ctrl('d'), KEY_DC, wdg.delete(0))
- bind(ctrl('h'), KEY_BACKSPACE, DEL, wdg.delete(-1))
- bind(ctrl('w'), wdg.delete_word())
- bind(ctrl('k'), wdg.delete_rest(1))
- bind(ctrl('u'), wdg.delete_rest(-1))
- bind(ctrl('y'), wdg.paste())
+ map(ctrl('d'), KEY_DC, wdg.delete(0))
+ map(ctrl('h'), KEY_BACKSPACE, DEL, wdg.delete(-1))
+ map(ctrl('w'), wdg.delete_word())
+ map(ctrl('k'), wdg.delete_rest(1))
+ map(ctrl('u'), wdg.delete_rest(-1))
+ map(ctrl('y'), wdg.paste())
# ----------------------------------------------------- typing keys
def type_key(arg):
arg.wdg.type_key(arg.keys)
for i in range(ord(' '), ord('~')+1):
- bind(i, type_key)
+ map(i, type_key)
# ------------------------------------------------ system functions
- _system_functions(command_list)
+ _system_functions(map)
- bind(KEY_F1, lambda arg: arg.fm.display_command_help(arg.wdg))
- bind(ctrl('c'), ESC, wdg.close())
- bind(ctrl('j'), KEY_ENTER, wdg.execute())
- bind(TAB, wdg.tab())
- bind(KEY_BTAB, wdg.tab(-1))
+ map(KEY_F1, lambda arg: arg.fm.display_command_help(arg.wdg))
+ map(ctrl('c'), ESC, wdg.close())
+ map(ctrl('j'), KEY_ENTER, wdg.execute())
+ map(TAB, wdg.tab())
+ map(KEY_BTAB, wdg.tab(-1))
- command_list.rebuild_paths()
+ map.rebuild_paths()
-def initialize_taskview_commands(command_list):
+def initialize_taskview_commands(map):
"""Initialize the commands for the TaskView widget"""
- bind, alias = make_abbreviations(command_list)
- _basic_movement(command_list)
- _vimlike_aliases(command_list)
- _system_functions(command_list)
+ _basic_movement(map)
+ _vimlike_aliases(map)
+ _system_functions(map)
# -------------------------------------------------- (re)move tasks
- bind('K', wdg.task_move(0))
- bind('J', wdg.task_move(-1))
- bind('dd', wdg.task_remove())
+ map('K', wdg.task_move(0))
+ map('J', wdg.task_move(-1))
+ map('dd', wdg.task_remove())
# ------------------------------------------------ system functions
- bind('?', fm.display_help())
- bind('w', 'q', ESC, ctrl('d'), ctrl('c'),
+ map('?', fm.display_help())
+ map('w', 'q', ESC, ctrl('d'), ctrl('c'),
lambda arg: arg.fm.ui.close_taskview())
- command_list.rebuild_paths()
+ map.rebuild_paths()
-def initialize_pager_commands(command_list):
- bind, alias = make_abbreviations(command_list)
- _base_pager_commands(command_list)
- bind('q', 'i', ESC, KEY_F1, lambda arg: arg.fm.ui.close_pager())
- command_list.rebuild_paths()
+def initialize_pager_commands(map):
+ _base_pager_commands(map)
+ map('q', 'i', ESC, KEY_F1, lambda arg: arg.fm.ui.close_pager())
+ map.rebuild_paths()
-def initialize_embedded_pager_commands(command_list):
- bind, alias = make_abbreviations(command_list)
- _base_pager_commands(command_list)
- bind('q', 'i', ESC, lambda arg: arg.fm.ui.close_embedded_pager())
- command_list.rebuild_paths()
+def initialize_embedded_pager_commands(map):
+ _base_pager_commands(map)
+ map('q', 'i', ESC, lambda arg: arg.fm.ui.close_embedded_pager())
+ map.rebuild_paths()
-
-def _base_pager_commands(command_list):
- bind, alias = make_abbreviations(command_list)
- _basic_movement(command_list)
- _vimlike_aliases(command_list)
- _system_functions(command_list)
+def _base_pager_commands(map):
+ _basic_movement(map)
+ _vimlike_aliases(map)
+ _system_functions(map)
# -------------------------------------------------------- movement
- bind(KEY_LEFT, wdg.move_horizontal(relative=-4))
- bind(KEY_RIGHT, wdg.move_horizontal(relative=4))
- bind(KEY_NPAGE, wdg.move(relative=1, pages=True))
- bind(KEY_PPAGE, wdg.move(relative=-1, pages=True))
- bind(ctrl('d'), wdg.move(relative=0.5, pages=True))
- bind(ctrl('u'), wdg.move(relative=-0.5, pages=True))
+ map(KEY_LEFT, wdg.move_horizontal(relative=-4))
+ map(KEY_RIGHT, wdg.move_horizontal(relative=4))
+ map(KEY_NPAGE, wdg.move(relative=1, pages=True))
+ map(KEY_PPAGE, wdg.move(relative=-1, pages=True))
+ map(ctrl('d'), wdg.move(relative=0.5, pages=True))
+ map(ctrl('u'), wdg.move(relative=-0.5, pages=True))
+ map(' ', wdg.move(relative=0.8, pages=True))
# ---------------------------------------------------------- others
- bind('E', fm.edit_file())
- bind('?', fm.display_help())
+ map('E', fm.edit_file())
+ map('?', fm.display_help())
# --------------------------------------------- less-like shortcuts
- alias(KEY_NPAGE, 'd')
- alias(KEY_PPAGE, 'u')
+ map.alias(KEY_NPAGE, 'd')
+ map.alias(KEY_PPAGE, 'u')
-def _system_functions(command_list):
+def _system_functions(map):
# Each commandlist should have this bindings
- bind, alias = make_abbreviations(command_list)
+ map(KEY_RESIZE, fm.resize())
+ map(KEY_MOUSE, fm.handle_mouse())
+ map('Q', fm.exit())
+ map(ctrl('L'), fm.redraw_window())
- bind(KEY_RESIZE, fm.resize())
- bind(KEY_MOUSE, fm.handle_mouse())
- bind('Q', fm.exit())
- bind(ctrl('L'), fm.redraw_window())
+def _basic_movement(map):
+ map(KEY_DOWN, wdg.move(relative=1))
+ map(KEY_UP, wdg.move(relative=-1))
+ map(KEY_HOME, wdg.move(absolute=0))
+ map(KEY_END, wdg.move(absolute=-1))
-def _basic_movement(command_list):
- bind, alias = make_abbreviations(command_list)
- bind(KEY_DOWN, wdg.move(relative=1))
- bind(KEY_UP, wdg.move(relative=-1))
- bind(KEY_HOME, wdg.move(absolute=0))
- bind(KEY_END, wdg.move(absolute=-1))
+
+# ------ newkey:
def base_directions():
@@ -500,21 +492,6 @@ def browser_keys():
map('?', KEY_F1, fm.display_help())
map('w', lambda arg: arg.fm.ui.open_taskview())
- # ---------------------------------------------------------- custom
- # This is useful to track watched episode of a series.
- @map(']')
- def tag_next_and_run(arg):
- fm = arg.fm
- fm.tag_remove()
- fm.tag_remove(movedown=False)
- fm.tag_toggle()
- fm.move_pointer(relative=-2)
- fm.move_right()
- fm.move_pointer(relative=1)
-
- # "enter" = shortcut for "1l"
- map('<cr>', fm.move(Direction(right=2)))
-
# ------------------------------------------------ system functions
map('ZZ', fm.exit())
map(ctrl('R'), fm.reset())
@@ -535,7 +512,7 @@ def console_keys():
@map('<any>')
def type_key(arg):
arg.wdg.type_key(arg.match)
-
+
map('<up>', wdg.history_move(-1))
map('<down>', wdg.history_move(1))
map('<tab>', wdg.tab())
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py
index 139cda88..a7090285 100644
--- a/ranger/defaults/options.py
+++ b/ranger/defaults/options.py
@@ -15,32 +15,71 @@
"""
This is the default configuration file of ranger.
-If you do any changes, make sure the import-line stays
-intact and the type of the value stays the same.
+
+There are two ways of customizing ranger. The first and recommended
+method is creating a file at ~/.ranger/options.py and adding
+those lines you want to change. It might look like this:
+
+from ranger.api.options import *
+preview_files = False # I hate previews!
+max_history_size = 2000 # I can afford it.
+
+The other way is directly editing this file. This will make upgrades
+of ranger more complicated though.
+
+Whatever you do, make sure the import-line stays intact and the type
+of the values stay the same.
"""
from ranger.api.options import *
-one_kb = 1024
+# Which files are hidden if show_hidden is False?
+hidden_filter = regexp(
+ r'lost\+found|^\.|~$|\.(:?pyc|pyo|bak|swp)$')
+show_hidden = False
+
+# Which colorscheme to use? These colorschemes are available by default:
+# default, default88, texas, jungle, snow
+# Snow is monochrome, texas and default88 use 88 colors.
+colorscheme = 'default'
+
+# Preview files on the rightmost column?
+# And collapse the last column if there is nothing to preview?
+preview_files = True
+preview_directories = True
+max_filesize_for_preview = 300 * 1024 # 300kb
+collapse_preview = True
-colorscheme = colorschemes.default
+# Draw borders around columns?
+draw_borders = False
+# Set a title for the window?
+update_title = True
+
+# Shorten the title if it gets long? The number defines how many
+# directories are displayed at once, False turns off this feature.
+shorten_title = 3
+
+# How many directory-changes or console-commands should be kept in history?
max_history_size = 20
-max_filesize_for_preview = 300 * one_kb
+
+# Try to keep so much space between the top/bottom border when scrolling:
scroll_offset = 2
-preview_files = True
-flushinput = True
-sort = 'basename'
-reverse = False
-directories_first = True
+# Flush the input after each key hit? (Noticable when ranger lags)
+flushinput = True
-show_hidden = False
-collapse_preview = True
+# Save bookmarks (used with mX and `X) instantly?
+# This helps to synchronize bookmarks between multiple ranger
+# instances but leads to *slight* performance loss.
+# When false, bookmarks are saved when ranger is exited.
autosave_bookmarks = True
-update_title = False
+# Makes sense for screen readers:
show_cursor = False
-hidden_filter = regexp(
- r'lost\+found|^\.|~$|\.(:?pyc|pyo|bak|swp)$')
+# One of: size, basename, mtime, type
+sort = 'basename'
+reverse = False
+directories_first = True
+
diff --git a/ranger/ext/__init__.py b/ranger/ext/__init__.py
index d4bb9e72..9cf2ee50 100644
--- a/ranger/ext/__init__.py
+++ b/ranger/ext/__init__.py
@@ -1,16 +1 @@
-# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
"""This package includes extensions with broader usability"""
diff --git a/ranger/ext/command_parser.py b/ranger/ext/command_parser.py
index 1082e767..a6971631 100644
--- a/ranger/ext/command_parser.py
+++ b/ranger/ext/command_parser.py
@@ -30,7 +30,7 @@ class LazyParser(object):
def chunk(self, n, otherwise=''):
"""Chunks are pieces of the command seperated by spaces"""
if self._chunks is None:
- self._chunks = line.split()
+ self._chunks = self.line.split()
if len(self._chunks) > n:
return self._chunks[n]
diff --git a/ranger/ext/debug.py b/ranger/ext/debug.py
deleted file mode 100644
index 88f43340..00000000
--- a/ranger/ext/debug.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-LOGFILE = '/tmp/errorlog'
-
-def log(*objects, **keywords):
- """Writes objects to a logfile.
- Has the same arguments as print() in python3"""
- start = 'start' in keywords and keywords['start'] or 'ranger:'
- sep = 'sep' in keywords and keywords['sep'] or ' '
- _file = 'file' in keywords and keywords['file'] or open(LOGFILE, 'a')
- end = 'end' in keywords and keywords['end'] or '\n'
- _file.write(sep.join(map(str, (start, ) + objects)) + end)
-
-#for python3-only versions, this could be replaced with:
-#
-#def log(*objects, start='ranger:', sep=' ', end='\n'):
-# print(start, *objects, end=end, sep=sep, file=open(LOGFILE, 'a'))
-
-def trace():
- from traceback import print_stack
- print_stack(file=open(LOGFILE, 'a'))
diff --git a/ranger/ext/openstruct.py b/ranger/ext/openstruct.py
index 56f7de06..a94c3031 100644
--- a/ranger/ext/openstruct.py
+++ b/ranger/ext/openstruct.py
@@ -13,23 +13,11 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-class OpenStruct(object):
- def __init__(self, __dictionary=None, **__keywords):
- if __dictionary:
- self.__dict__.update(__dictionary)
- if __keywords:
- self.__dict__.update(__keywords)
+# prepend __ to arguments because one might use "args"
+# or "keywords" as a keyword argument.
- def __getitem__(self, key):
- return self.__dict__[key]
-
- def __setitem__(self, key, value):
- self.__dict__[key] = value
- return value
-
- def __contains__(self, key):
- return key in self.__dict__
-
-class ReferencedOpenStruct(OpenStruct):
- def __init__(self, dictionary):
- self.__dict__ = dictionary
+class OpenStruct(dict):
+ """The fusion of dict and struct"""
+ def __init__(self, *__args, **__keywords):
+ dict.__init__(self, *__args, **__keywords)
+ self.__dict__ = self
diff --git a/ranger/ext/relpath.py b/ranger/ext/relpath.py
deleted file mode 100644
index ddca89a3..00000000
--- a/ranger/ext/relpath.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import ranger
-
-def relpath(*paths):
- """returns the path relative to rangers library directory"""
- return os.path.join(ranger.RANGERDIR, *paths)
-
-def relpath_conf(*paths):
- """returns the path relative to rangers configuration directory"""
- return os.path.join(ranger.CONFDIR, *paths)
-
diff --git a/ranger/ext/shutil_generatorized.py b/ranger/ext/shutil_generatorized.py
index 8c699f8e..8bf07ace 100644
--- a/ranger/ext/shutil_generatorized.py
+++ b/ranger/ext/shutil_generatorized.py
@@ -306,12 +306,8 @@ def move(src, dst, overwrite=False):
"""
real_dst = dst
- if not overwrite and os.path.isdir(dst):
- real_dst = os.path.join(dst, _basename(src))
- if os.path.exists(real_dst):
- raise Error("Destination path '%s' already exists" % real_dst)
if not overwrite:
- real_dst = get_safe_path(real_dst)
+ real_dst = get_safe_path(os.path.join(dst, _basename(src)))
try:
os.rename(src, real_dst)
except OSError:
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py
index 5bbbe3e4..8bb8a78a 100644
--- a/ranger/fsobject/directory.py
+++ b/ranger/fsobject/directory.py
@@ -341,7 +341,7 @@ class Directory(FileSystemObject, Accumulator, SettingsAware):
Accumulator.correct_pointer(self)
try:
- if self == self.fm.env.pwd:
+ if self == self.fm.env.cwd:
self.fm.env.cf = self.pointed_obj
except:
pass
diff --git a/ranger/fsobject/fsobject.py b/ranger/fsobject/fsobject.py
index 0e67cba6..4278c3e8 100644
--- a/ranger/fsobject/fsobject.py
+++ b/ranger/fsobject/fsobject.py
@@ -30,6 +30,7 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
basename = None
basename_lower = None
_shell_escaped_basename = None
+ _filetype = None
dirname = None
extension = None
exists = False
@@ -86,6 +87,19 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
self._shell_escaped_basename = shell_escape(self.basename)
return self._shell_escaped_basename
+ @property
+ def filetype(self):
+ if self._filetype is None:
+ import subprocess
+ try:
+ got = subprocess.Popen(["file", '-Lb', '--mime-type',\
+ self.path], stdout=subprocess.PIPE).communicate()[0]
+ except OSError:
+ self._filetype = ''
+ else:
+ self._filetype = got
+ return self._filetype
+
def get_description(self):
return "Loading " + str(self)
@@ -105,16 +119,17 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
def set_mimetype(self):
"""assign attributes such as self.video according to the mimetype"""
- try:
- self.mimetype = self.mimetypes[self.extension]
- except KeyError:
+ self.mimetype = self.mimetypes.guess_type(self.basename, False)[0]
+ if self.mimetype is None:
self.mimetype = ''
self.video = self.mimetype.startswith('video')
self.image = self.mimetype.startswith('image')
self.audio = self.mimetype.startswith('audio')
self.media = self.video or self.image or self.audio
- self.document = self.mimetype.startswith('text') or (self.extension in DOCUMENT_EXTENSIONS) or (self.basename in DOCUMENT_BASENAMES)
+ self.document = self.mimetype.startswith('text') \
+ or (self.extension in DOCUMENT_EXTENSIONS) \
+ or (self.basename in DOCUMENT_BASENAMES)
self.container = self.extension in CONTAINER_EXTENSIONS
keys = ('video', 'audio', 'image', 'media', 'document', 'container')
@@ -152,7 +167,7 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
self.islink = stat.S_ISLNK(self.stat.st_mode)
self.accessible = True
- if os.access(self.path, os.F_OK):
+ if self.accessible and os.access(self.path, os.F_OK):
self.exists = True
self.accessible = True
@@ -203,12 +218,12 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
else:
perms = ['-']
- for who in "USR", "GRP", "OTH":
- for what in "rwx":
- if mode & getattr(stat, "S_I" + what.upper() + who):
- perms.append( what.lower() )
+ for who in ("USR", "GRP", "OTH"):
+ for what in "RWX":
+ if mode & getattr(stat, "S_I" + what + who):
+ perms.append(what.lower())
else:
- perms.append( '-' )
+ perms.append('-')
self.permissions = ''.join(perms)
return self.permissions
diff --git a/ranger/gui/colorscheme.py b/ranger/gui/colorscheme.py
index 867aec70..199a5523 100644
--- a/ranger/gui/colorscheme.py
+++ b/ranger/gui/colorscheme.py
@@ -41,7 +41,6 @@ If your colorscheme-file contains more than one colorscheme, specify it with:
colorscheme = colorschemes.filename.classname
"""
-from ranger.ext.openstruct import ReferencedOpenStruct
from curses import color_pair
from ranger.gui.color import get_color
from ranger.gui.context import Context
@@ -89,8 +88,17 @@ class ColorScheme(object):
def use(self, context):
"""
Use the colorscheme to determine the (fg, bg, attr) tuple.
- This is a dummy function which always returns default_colors.
- Override this in your custom colorscheme!
+
+ When no colorscheme is found, ranger will fall back to this very
+ basic colorscheme where directories are blue and bold, and
+ selected files have the color inverted.
+
+ Override this method in your own colorscheme.
"""
- from ranger.gui.color import default_colors
- return default_colors
+ fg, attr = -1, 0
+ if context.highlight or context.selected:
+ attr = 262144
+ if context.directory:
+ attr |= 2097152
+ fg = 4
+ return fg, -1, attr
diff --git a/ranger/gui/context.py b/ranger/gui/context.py
index 25544932..d31124ca 100644
--- a/ranger/gui/context.py
+++ b/ranger/gui/context.py
@@ -25,7 +25,7 @@ CONTEXT_KEYS = ['reset', 'error',
'scroll', 'all', 'bot', 'top', 'percentage',
'marked', 'tagged', 'tag_marker',
'help_markup',
- 'seperator', 'key', 'special',
+ 'seperator', 'key', 'special', 'border',
'title', 'text', 'highlight', 'bars', 'quotes',
'keybuffer']
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index 05efa639..2d86736c 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -13,6 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import os
import socket
import sys
import curses
@@ -22,12 +23,16 @@ from .displayable import DisplayableContainer
from ranger.container.keymap import CommandArgs
from .mouse_event import MouseEvent
+TERMINALS_WITH_TITLE = ("xterm", "xterm-256color", "rxvt",
+ "rxvt-256color", "rxvt-unicode", "aterm", "Eterm",
+ "screen", "screen-256color")
+
class UI(DisplayableContainer):
is_set_up = False
mousemask = curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION
load_mode = False
def __init__(self, keymap=None, env=None, fm=None):
- import os
+ self._draw_title = os.environ["TERM"] in TERMINALS_WITH_TITLE
os.environ['ESCDELAY'] = '25' # don't know a cleaner way
if env is not None:
@@ -195,13 +200,15 @@ class UI(DisplayableContainer):
"""Erase the window, then draw all objects in the container"""
self.win.touchwin()
DisplayableContainer.draw(self)
- if self.settings.update_title:
- hostname = str(socket.gethostname())
- try:
- cwd = self.fm.env.pwd.path
- except:
- cwd = ' - ranger'
- sys.stdout.write("\033]2;" + hostname + cwd + "\007")
+ if self._draw_title and self.settings.update_title:
+ cwd = self.fm.env.cwd.path
+ if cwd.startswith(self.env.home_path):
+ cwd = '~' + cwd[len(self.env.home_path):]
+ if self.settings.shorten_title:
+ split = cwd.rsplit(os.sep, self.settings.shorten_title)
+ if os.sep in split[0]:
+ cwd = os.sep.join(split[1:])
+ sys.stdout.write("\033]2;ranger:" + cwd + "\007")
self.win.refresh()
def finalize(self):
diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py
index 2550062f..238a4803 100644
--- a/ranger/gui/widgets/browsercolumn.py
+++ b/ranger/gui/widgets/browsercolumn.py
@@ -32,7 +32,7 @@ PREVIEW_BLACKLIST = re.compile(r"""
# binary files:
| torrent | class | so | img | py[co] | dmg
# containers:
- | iso | rar | zip | 7z | tar | gz | bz2
+ | iso | rar | zip | 7z | tar | gz | bz2 | tgz
)
# ignore filetype-independent suffixes:
(\.part|\.bak|~)?
@@ -41,7 +41,7 @@ PREVIEW_BLACKLIST = re.compile(r"""
$
""", re.VERBOSE | re.IGNORECASE)
-class BrowserColumn(Pager, Widget):
+class BrowserColumn(Pager):
main_column = False
display_infostring = False
scroll_begin = 0
@@ -53,6 +53,14 @@ class BrowserColumn(Pager, Widget):
old_cf = None
def __init__(self, win, level):
+ """
+ win = the curses window object of the BrowserView
+ level = what to display?
+
+ level >0 => previews
+ level 0 => current file/directory
+ level <0 => parent directories
+ """
Pager.__init__(self, win)
Widget.__init__(self, win)
self.level = level
@@ -100,6 +108,10 @@ class BrowserColumn(Pager, Widget):
if not self._preview_this_file(self.target):
return False
+ if self.target.is_directory:
+ if self.level > 0 and not self.settings.preview_directories:
+ return False
+
return True
def poke(self):
@@ -108,13 +120,12 @@ class BrowserColumn(Pager, Widget):
def draw(self):
"""Call either _draw_file() or _draw_directory()"""
- from ranger import log
-
if self.target != self.old_dir:
self.need_redraw = True
self.old_dir = self.target
- if self.target and self.target.is_directory:
+ if self.target and self.target.is_directory \
+ and (self.level <= 0 or self.settings.preview_directories):
if self.target.pointed_obj != self.old_cf:
self.need_redraw = True
self.old_cf = self.target.pointed_obj
@@ -167,6 +178,9 @@ class BrowserColumn(Pager, Widget):
"""Draw the contents of a directory"""
import stat
+ if self.level > 0 and not self.settings.preview_directories:
+ return
+
base_color = ['in_browser']
self.target.use()
@@ -207,7 +221,7 @@ class BrowserColumn(Pager, Widget):
this_color = base_color + list(drawed.mimetype_tuple)
text = drawed.basename
- tagged = drawed.realpath in self.fm.tags
+ tagged = self.fm.tags and drawed.realpath in self.fm.tags
if i == selected_i:
this_color.append('selected')
diff --git a/ranger/gui/widgets/browserview.py b/ranger/gui/widgets/browserview.py
index 080f1be0..8d6dc611 100644
--- a/ranger/gui/widgets/browserview.py
+++ b/ranger/gui/widgets/browserview.py
@@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""The BrowserView manages a set of BrowserColumns."""
+import curses
from . import Widget
from .browsercolumn import BrowserColumn
from .pager import Pager
@@ -31,10 +32,13 @@ class BrowserView(Widget, DisplayableContainer):
DisplayableContainer.__init__(self, win)
self.ratios = ratios
self.preview = preview
+ self.old_cf = self.env.cf
+ self.old_prevfile = None
+ self.old_prevdir = None
# normalize ratios:
ratio_sum = float(sum(ratios))
- self.ratios = tuple(map(lambda x: x / ratio_sum, ratios))
+ self.ratios = tuple(x / ratio_sum for x in ratios)
if len(self.ratios) >= 2:
self.stretch_ratios = self.ratios[:-2] + \
@@ -64,11 +68,23 @@ class BrowserView(Widget, DisplayableContainer):
if self.draw_bookmarks:
self._draw_bookmarks()
else:
+ if self.old_cf != self.env.cf:
+ self.need_clear = True
+ if self.settings.draw_borders:
+ if self.old_prevdir != self.settings.preview_directories:
+ self.need_clear = True
+ if self.old_prevfile != self.settings.preview_files:
+ self.need_clear = True
if self.need_clear:
self.win.erase()
self.need_redraw = True
self.need_clear = False
+ self.old_cf = self.env.cf
+ self.old_prevfile = self.settings.preview_files
+ self.old_prevdir = self.settings.preview_directories
DisplayableContainer.draw(self)
+ if self.settings.draw_borders:
+ self._draw_borders()
def finalize(self):
if self.pager.visible:
@@ -105,32 +121,90 @@ class BrowserView(Widget, DisplayableContainer):
string = " " + key + ": " + mark.path
self.addnstr(line, 0, string.ljust(maxlen), self.wid)
+ def _draw_borders(self):
+ win = self.win
+ self.color('in_browser', 'border')
+
+ left_start = 0
+ right_end = self.wid - 1
+
+ rows = [row for row in self.container \
+ if isinstance(row, BrowserColumn)]
+ rows.sort(key=lambda row: row.x)
+
+ for child in rows:
+ if not child.has_preview():
+ left_start = child.x + child.wid
+ else:
+ break
+ if not self.pager.visible:
+ for child in reversed(rows):
+ if not child.has_preview():
+ right_end = child.x - 1
+ else:
+ break
+ if right_end < left_start:
+ right_end = self.wid - 1
+
+ win.hline(0, left_start, curses.ACS_HLINE, right_end - left_start)
+ win.hline(self.hei - 1, left_start, curses.ACS_HLINE,
+ right_end - left_start)
+ win.vline(1, left_start, curses.ACS_VLINE, self.hei - 2)
+
+ for child in rows:
+ if not child.has_preview():
+ continue
+ if child.main_column and self.pager.visible:
+ win.vline(1, right_end, curses.ACS_VLINE, self.hei - 2)
+ break
+ x = child.x + child.wid
+ y = self.hei - 1
+ try:
+ win.vline(1, x, curses.ACS_VLINE, y - 1)
+ win.addch(0, x, curses.ACS_TTEE, 0)
+ win.addch(y, x, curses.ACS_BTEE, 0)
+ except:
+ # in case it's off the boundaries
+ pass
+
+ win.addch(0, left_start, curses.ACS_ULCORNER)
+ win.addch(self.hei - 1, left_start, curses.ACS_LLCORNER)
+ win.addch(0, right_end, curses.ACS_URCORNER)
+ try:
+ win.addch(self.hei - 1, right_end, curses.ACS_LRCORNER)
+ except:
+ pass
+
def resize(self, y, x, hei, wid):
"""Resize all the columns according to the given ratio"""
DisplayableContainer.resize(self, y, x, hei, wid)
- left = 0
+ borders = self.settings.draw_borders
+ pad = 1 if borders else 0
+ left = pad
cut_off_last = self.preview and not self.preview_available \
and self.stretch_ratios
if cut_off_last:
- generator = zip(self.stretch_ratios, range(len(self.ratios)))
+ generator = enumerate(self.stretch_ratios)
else:
- generator = zip(self.ratios, range(len(self.ratios)))
+ generator = enumerate(self.ratios)
last_i = len(self.ratios) - 1
- for ratio, i in generator:
+ for i, ratio in generator:
wid = int(ratio * self.wid)
if i == last_i:
- wid = int(self.wid - left + 1)
+ wid = int(self.wid - left + 1 - pad)
if i == last_i - 1:
- self.pager.resize(0, left, hei, max(1, self.wid - left))
+ self.pager.resize(pad, left, hei - pad * 2, \
+ max(1, self.wid - left - pad))
try:
- self.container[i].resize(0, left, hei, max(1, wid-1))
+ self.container[i].resize(pad, left, hei - pad * 2, \
+ max(1, wid - 1))
except KeyError:
pass
@@ -148,6 +222,7 @@ class BrowserView(Widget, DisplayableContainer):
def open_pager(self):
self.pager.visible = True
self.pager.focused = True
+ self.need_clear = True
self.pager.open()
try:
self.container[-2].visible = False
@@ -158,6 +233,7 @@ class BrowserView(Widget, DisplayableContainer):
def close_pager(self):
self.pager.visible = False
self.pager.focused = False
+ self.need_clear = True
self.pager.close()
try:
self.container[-2].visible = True
diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py
index 7ed00a7e..4dea98c7 100644
--- a/ranger/gui/widgets/console.py
+++ b/ranger/gui/widgets/console.py
@@ -23,7 +23,7 @@ import curses
from collections import deque
from . import Widget
-from ranger import commands
+from ranger.defaults import commands
from ranger.gui.widgets.console_mode import is_valid_mode, mode_to_class
from ranger import log
from ranger.ext.shell_escape import shell_quote
@@ -129,9 +129,13 @@ class Console(Widget):
def press(self, key):
from curses.ascii import ctrl, ESC
+ keytuple = self.env.keybuffer.tuple_with_numbers()
try:
- cmd = self.commandlist[self.env.keybuffer.tuple_with_numbers()]
+ cmd = self.commandlist[keytuple]
except KeyError:
+ # An unclean hack to allow unicode input.
+ # This whole part should be replaced.
+ self.type_key(chr(keytuple[0]))
self.env.key_clear()
return
@@ -292,26 +296,17 @@ class CommandConsole(ConsoleWithTab):
self.close()
def _get_cmd(self):
- command_class = self._get_cmd_class()
- if command_class:
- return command_class(self.line, self.mode)
- else:
- return None
-
- def _get_cmd_class(self):
try:
- command_name = self.line.split()[0]
- except IndexError:
- return None
-
- try:
- return commands.get_command(command_name)
+ command_class = self._get_cmd_class()
except KeyError:
self.fm.notify("Invalid command! Press ? for help.", bad=True)
+ except:
return None
- except ValueError as e:
- self.fm.notify(e)
- return None
+ else:
+ return command_class(self.line, self.mode)
+
+ def _get_cmd_class(self):
+ return commands.get_command(self.line.split()[0])
def _get_tab(self):
if ' ' in self.line:
@@ -339,9 +334,14 @@ class QuickCommandConsole(CommandConsole):
"""
prompt = '>'
def on_line_change(self):
- cmd = self._get_cmd()
- if cmd and cmd.quick_open():
- self.execute(cmd)
+ try:
+ cls = self._get_cmd_class()
+ except (KeyError, ValueError, IndexError):
+ pass
+ else:
+ cmd = cls(self.line, self.mode)
+ if cmd and cmd.quick_open():
+ self.execute(cmd)
class SearchConsole(Console):
@@ -352,11 +352,11 @@ class SearchConsole(Console):
def execute(self):
import re
- if self.fm.env.pwd:
+ if self.fm.env.cwd:
regexp = re.compile(self.line, re.L | re.U | re.I)
self.fm.env.last_search = regexp
if self.fm.search(order='search'):
- self.fm.env.cf = self.fm.env.pwd.pointed_obj
+ self.fm.env.cf = self.fm.env.cwd.pointed_obj
self.close()
@@ -414,7 +414,7 @@ class OpenConsole(ConsoleWithTab):
else:
before_word, start_of_word = self.line.rsplit(' ', 1)
return (before_word + ' ' + file.shell_escaped_basename \
- for file in self.fm.env.pwd.files \
+ for file in self.fm.env.cwd.files \
if file.shell_escaped_basename.startswith(start_of_word))
def _substitute_metachars(self, command):
@@ -576,10 +576,11 @@ class QuickOpenConsole(ConsoleWithTab):
def _is_app(self, arg):
- return self.fm.apps.has(arg)
+ return self.fm.apps.has(arg) or \
+ (not self._is_flags(arg) and arg in self.fm.executables)
def _is_flags(self, arg):
- from ranger.runner import ALLOWED_FLAGS
+ from ranger.core.runner import ALLOWED_FLAGS
return all(x in ALLOWED_FLAGS for x in arg)
def _is_mode(self, arg):
diff --git a/ranger/gui/widgets/pager.py b/ranger/gui/widgets/pager.py
index 03a421cf..c5ed8af1 100644
--- a/ranger/gui/widgets/pager.py
+++ b/ranger/gui/widgets/pager.py
@@ -229,7 +229,7 @@ class Pager(Widget):
while True:
try:
line = self._get_line(i).expandtabs(4)
- line = line[startx:self.wid - 1 + startx].rstrip()
+ line = line[startx:self.wid + startx].rstrip()
yield line
except IndexError:
raise StopIteration
diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py
index f15156df..6f52f8ef 100644
--- a/ranger/gui/widgets/statusbar.py
+++ b/ranger/gui/widgets/statusbar.py
@@ -81,8 +81,8 @@ class StatusBar(Widget):
if not self.result:
self.need_redraw = True
- if self.old_du and not self.env.pwd.disk_usage:
- self.old_du = self.env.pwd.disk_usage
+ if self.old_du and not self.env.cwd.disk_usage:
+ self.old_du = self.env.cwd.disk_usage
self.need_redraw = True
if self.old_cf != self.env.cf:
@@ -135,7 +135,8 @@ class StatusBar(Widget):
def _get_left_part(self, bar):
left = bar.left
- if self.column is not None:
+ if self.column is not None and self.column.target is not None\
+ and self.column.target.is_directory:
target = self.column.target.pointed_obj
else:
target = self.env.at_level(0).pointed_obj
@@ -195,6 +196,8 @@ class StatusBar(Widget):
return
target = self.column.target
+ if target is None:
+ return
if not target.content_loaded or not target.accessible:
return
diff --git a/ranger/gui/widgets/titlebar.py b/ranger/gui/widgets/titlebar.py
index cb6e8cdd..e1be8e97 100644
--- a/ranger/gui/widgets/titlebar.py
+++ b/ranger/gui/widgets/titlebar.py
@@ -54,20 +54,14 @@ class TitleBar(Widget):
self.result = bar.combine()
def _get_left_part(self, bar):
- import socket, os, pwd
-
- try:
- username = pwd.getpwuid(os.geteuid()).pw_name
- except:
- username = "???"
- if username == 'root':
+ if self.env.username == 'root':
clr = 'bad'
else:
clr = 'good'
- bar.add(username, 'hostname', clr, fixedsize=True)
+ bar.add(self.env.username, 'hostname', clr, fixedsize=True)
bar.add('@', 'hostname', clr, fixedsize=True)
- bar.add(socket.gethostname(), 'hostname', clr, fixedsize=True)
+ bar.add(self.env.hostname, 'hostname', clr, fixedsize=True)
for path in self.env.pathway:
if path.islink:
diff --git a/ranger/help/console.py b/ranger/help/console.py
index 7ba15799..3a4428f3 100644
--- a/ranger/help/console.py
+++ b/ranger/help/console.py
@@ -127,7 +127,7 @@ one unambiguous match, <RETURN> will be pressed for you, giving you a
very fast way to browse your files.
-All commands are defined in ranger/commands.py. You can refer to this
+All commands are defined in ranger/defaults/commands.py. You can refer to this
file for a list of commands. Implementing new commands should be intuitive:
Create a new class, a subclass of Command, and define the execute method
is usually enough. For parsing command input, the command parser in
diff --git a/ranger/help/fileop.py b/ranger/help/fileop.py
index 5b7a0f0b..53ce9ff8 100644
--- a/ranger/help/fileop.py
+++ b/ranger/help/fileop.py
@@ -19,6 +19,7 @@
4.1. Destructive Operations
4.2. The Selection
4.3. Copying and Pasting
+4.4. Task View
==============================================================================
@@ -28,7 +29,7 @@ These are all the operations which can change, and with misuse, possibly
harm your files:
:chmod <number> Change the rights of the selection
-:delete DELETES ALL FILES IN THE SELECTION WITHOUT CONFIRMATION
+:delete DELETES ALL FILES IN THE SELECTION
:rename <newname> Change the name of the current file
pp, pl, po Pastes the copied files in different ways
@@ -74,6 +75,26 @@ If renaming is not possible because the source and the destination are
on separate devices, it will be copied and eventually the source is deleted.
This implies that a file can only be cut + pasted once.
+
+==============================================================================
+4.4. Task View
+
+The task view lets you manage IO tasks like copying, moving and
+loading directories by changing their priority or stop them.
+
+ w open or close the task view
+ dd stop the task
+ J decrease the priority of the task
+ K increase the priority of the task
+
+The execution of tasks is not parallel but sequential. Only the
+topmost task is executed. Ranger constantly switches between
+handling GUI and executing tasks. One movement of the throbber at
+the top right represents such a switch, so while the throbber is
+standing still, ranger is locked by a Input/Output operation and
+you will not be able to input any commands.
+
+
==============================================================================
"""
# vim:tw=78:sw=4:sts=8:ts=8:ft=help
diff --git a/ranger/help/movement.py b/ranger/help/movement.py
index 28e2c38b..a0407838 100644
--- a/ranger/help/movement.py
+++ b/ranger/help/movement.py
@@ -58,8 +58,8 @@ Special keys like Home, Page Up,.. work as expected.
These keys work like in vim:
- ^D move half the screen up
- ^U move half the screen down
+ ^U move half the screen up
+ ^D move half the screen down
^B move up by one screen
^F move down by one screen
diff --git a/ranger/shared/mimetype.py b/ranger/shared/mimetype.py
index 93015a73..1a7f79a0 100644
--- a/ranger/shared/mimetype.py
+++ b/ranger/shared/mimetype.py
@@ -13,16 +13,13 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ranger.ext.relpath import relpath
+from ranger import relpath
+import mimetypes
class MimeTypeAware(object):
mimetypes = {}
__initialized = False
def __init__(self):
if not MimeTypeAware.__initialized:
+ MimeTypeAware.mimetypes = mimetypes.MimeTypes()
+ MimeTypeAware.mimetypes.read(relpath('data/mime.types'))
MimeTypeAware.__initialized = True
- import os, sys, pickle
- MimeTypeAware.mimetypes.clear()
-
- f = open(relpath('data/mime.dat'), 'rb')
- MimeTypeAware.mimetypes.update(pickle.load(f))
- f.close()
diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py
index b549bd20..cdddd623 100644
--- a/ranger/shared/settings.py
+++ b/ranger/shared/settings.py
@@ -13,7 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import os
import types
+from inspect import isclass, ismodule
+import ranger
from ranger.ext.openstruct import OpenStruct
from ranger.gui.colorscheme import ColorScheme
@@ -22,16 +25,19 @@ ALLOWED_SETTINGS = {
'show_cursor': bool,
'autosave_bookmarks': bool,
'collapse_preview': bool,
+ 'draw_borders': bool,
'sort': str,
'reverse': bool,
'directories_first': bool,
'update_title': bool,
+ 'shorten_title': int, # Note: False is an instance of int
'max_filesize_for_preview': (int, type(None)),
'max_history_size': (int, type(None)),
'scroll_offset': int,
'preview_files': bool,
+ 'preview_directories': bool,
'flushinput': bool,
- 'colorscheme': (ColorScheme, types.ModuleType),
+ 'colorscheme': str,
'hidden_filter': lambda x: isinstance(x, str) or hasattr(x, 'match'),
}
@@ -41,67 +47,91 @@ class SettingsAware(object):
@staticmethod
def _setup():
- from inspect import isclass, ismodule
- from ranger.gui.colorscheme import ColorScheme
+ settings = OpenStruct()
- # overwrite single default options with custom options
from ranger.defaults import options
- try:
- import options as custom_options
- for setting in ALLOWED_SETTINGS:
- if hasattr(custom_options, setting):
- setattr(options, setting, getattr(custom_options, setting))
- elif not hasattr(options, setting):
- raise Exception("This option was not defined: " + setting)
- except ImportError:
- pass
+ for setting in ALLOWED_SETTINGS:
+ try:
+ settings[setting] = getattr(options, setting)
+ except AttributeError:
+ raise Exception("The option `{0}' was not defined" \
+ " in the defaults!".format(setting))
+
+ import sys
+ if not ranger.arg.clean:
+ # overwrite single default options with custom options
+ try:
+ import options as my_options
+ except ImportError:
+ pass
+ else:
+ for setting in ALLOWED_SETTINGS:
+ try:
+ settings[setting] = getattr(my_options, setting)
+ except AttributeError:
+ pass
- assert check_option_types(options)
+ assert check_option_types(settings)
- try:
- import apps
- except ImportError:
- from ranger.defaults import apps
-
- try:
- import keys
- except ImportError:
- from ranger.defaults import keys
+ # Find the colorscheme. First look for it at ~/.ranger/colorschemes,
+ # then at RANGERDIR/colorschemes. If the file contains a class
+ # named Scheme, it is used. Otherwise, an arbitrary other class
+ # is picked.
+ scheme_name = settings.colorscheme
- # If a module is specified as the colorscheme, replace it with one
- # valid colorscheme inside that module.
+ def exists(colorscheme):
+ return os.path.exists(colorscheme + '.py')
- all_content = options.colorscheme.__dict__.items()
+ def is_scheme(x):
+ return isclass(x) and issubclass(x, ColorScheme)
- if isclass(options.colorscheme) and \
- issubclass(options.colorscheme, ColorScheme):
- options.colorscheme = options.colorscheme()
+ # create ~/.ranger/colorschemes/__init__.py if it doesn't exist
+ if os.path.exists(ranger.relpath_conf('colorschemes')):
+ initpy = ranger.relpath_conf('colorschemes', '__init__.py')
+ if not os.path.exists(initpy):
+ open(initpy, 'a').close()
- elif ismodule(options.colorscheme):
- def is_scheme(x):
- return isclass(x) and issubclass(x, ColorScheme)
+ if exists(ranger.relpath_conf('colorschemes', scheme_name)):
+ scheme_supermodule = 'colorschemes'
+ elif exists(ranger.relpath('colorschemes', scheme_name)):
+ scheme_supermodule = 'ranger.colorschemes'
+ else:
+ scheme_supermodule = None # found no matching file.
- if hasattr(options.colorscheme, 'Scheme') \
- and is_scheme(options.colorscheme.Scheme):
- options.colorscheme = options.colorscheme.Scheme()
+ if scheme_supermodule is None:
+ print("ERROR: colorscheme not found, fall back to builtin scheme")
+ if ranger.arg.debug:
+ raise Exception("Cannot locate colorscheme!")
+ settings.colorscheme = ColorScheme()
+ else:
+ scheme_module = getattr(__import__(scheme_supermodule,
+ globals(), locals(), [scheme_name], 0), scheme_name)
+ assert ismodule(scheme_module)
+ if hasattr(scheme_module, 'Scheme') \
+ and is_scheme(scheme_module.Scheme):
+ settings.colorscheme = scheme_module.Scheme()
else:
- for name, var in options.colorscheme.__dict__.items():
+ for name, var in scheme_module.__dict__.items():
if var != ColorScheme and is_scheme(var):
- options.colorscheme = var()
+ settings.colorscheme = var()
break
else:
raise Exception("The module contains no " \
"valid colorscheme!")
- else:
- raise Exception("Cannot locate colorscheme!")
- for setting in ALLOWED_SETTINGS:
- SettingsAware.settings[setting] = getattr(options, setting)
-
- SettingsAware.settings.keys = keys
- SettingsAware.settings.apps = apps
+ try:
+ import apps
+ except ImportError:
+ from ranger.defaults import apps
+ settings.apps = apps
+ try:
+ import keys
+ except ImportError:
+ from ranger.defaults import keys
+ settings.keys = keys
+ SettingsAware.settings = settings
def check_option_types(opt):
import inspect
diff --git a/test/tc_colorscheme.py b/test/tc_colorscheme.py
index c09b9fa9..dbaac1f9 100644
--- a/test/tc_colorscheme.py
+++ b/test/tc_colorscheme.py
@@ -24,6 +24,8 @@ from ranger.gui.context import CONTEXT_KEYS
class Test(TestCase):
def setUp(self):
import random
+ import curses
+ curses.COLORS = 88
schemes = []
for key, mod in vars(ranger.colorschemes).items():
if type(mod) == type(random):
|