[Frugalware-git] interim: edit-2.0-1-i686
James Buren
ryuo at frugalware.org
Sun Aug 10 00:35:45 CEST 2008
Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=interim.git;a=commitdiff;h=a8b25b7cd06e7164f7a7373ef3b77049afd3b0dd
commit a8b25b7cd06e7164f7a7373ef3b77049afd3b0dd
Author: James Buren <ryuo at frugalware.org>
Date: Wed Jun 18 14:49:26 2008 -0500
edit-2.0-1-i686
* clean up
diff --git a/source/rox-extra/edit/edit-2.0/Edit/.DirIcon b/source/rox-extra/edit/edit-2.0/Edit/.DirIcon
deleted file mode 100644
index f3dc988..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/.DirIcon and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/.cvsignore b/source/rox-extra/edit/edit-2.0/Edit/.cvsignore
deleted file mode 100644
index 0d20b64..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.pyc
diff --git a/source/rox-extra/edit/edit-2.0/Edit/AppInfo.xml b/source/rox-extra/edit/edit-2.0/Edit/AppInfo.xml
deleted file mode 100644
index 69d60dd..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/AppInfo.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<AppInfo>
- <Summary xml:lang="en">Simple text editor</Summary>
- <Summary xml:lang="it">Un semplice editor di testi</Summary>
- <Summary xml:lang="es">Un simple editor de texto</Summary>
- <Summary xml:lang="de">Ein einfacher Texteditor</Summary>
- <Summary xml:lang="zh_CN">æåç¼è¾å¨</Summary>
- <Summary xml:lang="zh_TW">æå編輯å¨</Summary>
- <About xml:lang="en">
- <Purpose>Text editor</Purpose>
- <Version>2.0 (21-Sep-2005)</Version>
- <Author>Thomas Leonard</Author>
- <License>GNU General Public License</License>
- <Homepage>http://rox.sourceforge.net</Homepage>
- </About>
- <About xml:lang="it">
- <Purpose label="Scopo">editor di testi</Purpose>
- <Version label="Versione"/>
- <Author label="Autore"/>
- <License label="Licenza"/>
- <Homepage label="Sito web"/>
- </About>
- <About xml:lang="es">
- <Purpose label="Propósito">Editor de texto</Purpose>
- <Version label="Versión" />
- <Author label="Autor" />
- <License label="Licencia" />
- <Homepage label="Sitio web" />
- </About>
- <About xml:lang="de">
- <Purpose label="Funktion">Texteditor</Purpose>
- <Author label="Autor"></Author>
- <License label="Lizenz"></License>
- </About>
- <About xml:lang="zh_CN">
- <Purpose label="åè½">æåç¼è¾å¨</Purpose>
- <Version label="çæ¬"/>
- <Authors label="ä½è
"/>
- <License label="çæ"/>
- <Homepage label="ç½é¡µ"/>
- </About>
- <About xml:lang="zh_TW">
- <Purpose label="åè½">æå編輯å¨</Purpose>
- <Version label="çæ¬"/>
- <Author label="ä½è
"/>
- <License label="çæ¬"/>
- <Homepage label="ç¶²é "/>
- </About>
-</AppInfo>
diff --git a/source/rox-extra/edit/edit-2.0/Edit/AppRun b/source/rox-extra/edit/edit-2.0/Edit/AppRun
deleted file mode 100755
index b58fd45..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/AppRun
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python
-import setup
-
-import sys
-import rox
-import EditWindow
-
-try:
- from optparse import OptionParser
-except ImportError:
- # optparse missing, e.g. in Python 2.2
- line_number = None
- args = sys.argv[1:]
-else:
- parser = OptionParser()
- parser.add_option("-l", "--line_number", type='int',
- dest="line_number", default=None,
- help="start editor at given line number")
-
- (options, args) = parser.parse_args()
- line_number = options.line_number
-
-if len(args):
- for file in args:
- try:
- EditWindow.EditWindow(file, line_number = line_number)
- except EditWindow.Abort:
- pass
-else:
- EditWindow.EditWindow()
-
-rox.mainloop()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/CVS/Entries b/source/rox-extra/edit/edit-2.0/Edit/CVS/Entries
deleted file mode 100644
index 393fd28..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/CVS/Entries
+++ /dev/null
@@ -1,17 +0,0 @@
-/.DirIcon/1.2/Fri May 16 10:13:21 2003/-ko/TRelease-2-0
-/.cvsignore/1.1/Fri Jul 19 15:43:34 2002//TRelease-2-0
-/AppInfo.xml/1.18/Wed Sep 21 09:18:51 2005//TRelease-2-0
-/AppRun/1.16/Sat Sep 3 09:53:52 2005//TRelease-2-0
-/Edit.xml/1.4/Wed Sep 21 09:19:56 2005//TRelease-2-0
-/EditWindow.py/1.61/Tue Sep 20 20:30:19 2005//TRelease-2-0
-/Options.xml/1.15/Sat Jul 9 16:22:58 2005//TRelease-2-0
-/buffer.py/1.11/Tue Jun 21 20:05:25 2005//TRelease-2-0
-/diff.py/1.8/Sat May 28 16:21:40 2005//TRelease-2-0
-/findrox.py/1.13/Mon May 2 17:58:32 2005//TRelease-2-0
-/goto.py/1.5/Sat May 28 16:21:40 2005//TRelease-2-0
-/search.py/1.13/Sat May 21 18:34:50 2005//TRelease-2-0
-/setup.py/1.4/Sat Sep 3 09:37:14 2005//TRelease-2-0
-D/Help////
-D/Messages////
-D/images////
-D/tests////
diff --git a/source/rox-extra/edit/edit-2.0/Edit/CVS/Repository b/source/rox-extra/edit/edit-2.0/Edit/CVS/Repository
deleted file mode 100644
index e99d6e3..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-Edit
diff --git a/source/rox-extra/edit/edit-2.0/Edit/CVS/Root b/source/rox-extra/edit/edit-2.0/Edit/CVS/Root
deleted file mode 100644
index 01d4116..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-tal197 at cvs.sourceforge.net:/cvsroot/rox
diff --git a/source/rox-extra/edit/edit-2.0/Edit/CVS/Tag b/source/rox-extra/edit/edit-2.0/Edit/CVS/Tag
deleted file mode 100644
index 8833b6e..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-NRelease-2-0
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Edit.xml b/source/rox-extra/edit/edit-2.0/Edit/Edit.xml
deleted file mode 100644
index d11dbed..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Edit.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" ?>
-<interface main="Edit/AppRun"
- uri="http://rox.sourceforge.net/2005/interfaces/Edit"
- xmlns="http://zero-install.sourceforge.net/2004/injector/interface">
- <name>Edit</name>
- <summary>simple text editor</summary>
- <description>
- Edit is a simple text editor, with a ROX-style user interface. It has drag-and-drop saving, search-and-replace and multi-level undo.
- </description>
- <icon type='image/png' href='http://rox.sourceforge.net/Icons/Edit.png'/>
-
- <group>
- <requires interface="http://rox.sourceforge.net/2005/interfaces/ROX-Lib">
- <environment insert="ROX-Lib2/python" name="PYTHONPATH"/>
- </requires>
- <implementation id=".." stability="testing" version="2.0" released='2005-09-21'/>
- </group>
-</interface>
diff --git a/source/rox-extra/edit/edit-2.0/Edit/EditWindow.py b/source/rox-extra/edit/edit-2.0/Edit/EditWindow.py
deleted file mode 100644
index d7cf875..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/EditWindow.py
+++ /dev/null
@@ -1,925 +0,0 @@
-
-import rox
-from rox import g, filer, app_options, mime
-import sys
-from rox.loading import XDSLoader
-from rox.options import Option
-from rox import OptionsBox
-from rox.saving import Saveable
-import os
-import diff
-import codecs
-
-# WARNING: This is a temporary hack, until we write a way choose between
-# the two ways of doing toolbars or we abandon the old method entirely
-import warnings
-warnings.filterwarnings('ignore', category=DeprecationWarning,
- module='EditWindow')
-# End temporary hack
-
-def optional_section(available):
- """If requires is None, the section is enabled. Otherwise,
- the section is shaded and the requires message is shown at
- the top."""
- if available:
- def build_enabled_section(box, node, label):
- return box.do_box(node, None, g.VBox(False, 0))
- return build_enabled_section
- else:
- def build_disabled_section(box, node, label):
- assert label is not None
- box, = box.do_box(node, None, g.VBox(False, 0))
- box.set_sensitive(False)
- frame = g.Frame(label)
- box.set_border_width(4)
- frame.add(box)
- return [frame]
- return build_disabled_section
-
-try:
- import gtkspell
- have_spell = True
-except:
- have_spell = False
-
-to_utf8 = codecs.getencoder('utf-8')
-
-from buffer import Buffer, have_sourceview
-from rox.Menu import Menu, set_save_name, SubMenu, Separator, Action, ToggleItem
-
-OptionsBox.widget_registry['source-view-only'] = optional_section(have_sourceview)
-
-default_font = Option('default_font', 'serif')
-
-background_colour = Option('background', '#fff')
-foreground_colour = Option('foreground', '#000')
-
-auto_indent = Option('autoindent', '1')
-word_wrap = Option('wordwrap', '1')
-
-layout_left_margin = Option('layout_left_margin', 2)
-layout_right_margin = Option('layout_right_margin', 4)
-
-layout_before_para = Option('layout_before_para', 0)
-layout_after_para = Option('layout_after_para', 0)
-layout_inside_para = Option('layout_inside_para', 0)
-layout_indent_para = Option('layout_indent_para', 2)
-
-right_margin = Option('right_margin', 80)
-show_margin = Option('show_margin', True)
-smart_home_end = Option('smart_home_end', True)
-show_line_numbers = Option('show_line_numbers', True)
-show_line_markers = Option('show_line_markers', True)
-tab_width = Option('tab_width', 4)
-use_spaces_for_tabs = Option('use_spaces_for_tabs', False)
-
-show_toolbar = Option('show_toolbar', 1)
-
-set_save_name('Edit', site='rox.sourceforge.net')
-
-edit_menu = [
- Action(_('Cut'), 'cut', '<Ctrl>X', g.STOCK_CUT),
- Action(_('Copy'), 'copy', '<Ctrl>C', g.STOCK_COPY),
- Action(_('Paste'), 'paste', '<Ctrl>V', g.STOCK_PASTE),
- Separator(),
- Action(_('Undo'), 'undo', '<Ctrl>Z', g.STOCK_UNDO),
- Action(_('Redo'), 'redo', '<Ctrl>Y', g.STOCK_REDO),
- Separator(),
- Action(_('Search...'), 'search', 'F4', g.STOCK_FIND),
- Action(_('Search and Replace....'), 'search_replace',
- '<Ctrl>F4', g.STOCK_FIND_AND_REPLACE),
- Action(_('Goto line...'), 'goto', 'F5', g.STOCK_JUMP_TO),
- ]
-
-bookmark_menu = [
- Separator(),
- Action(_('Toggle Bookmark'), 'toggle_bookmark', '<Ctrl>F2'),
- Action(_('Next Bookmark'), 'next_bookmark', 'F2'),
- Action(_('Previous Bookmark'), 'prev_bookmark', '<Shift>F2'),
- ]
-
-if have_sourceview:
- edit_menu += bookmark_menu
-
-menu = Menu('main', [
-SubMenu(_('File'), [
- Action(_('Save'), 'save', '<Ctrl>S', g.STOCK_SAVE),
- Action(_('Save As...'), 'save_as', '', g.STOCK_SAVE_AS),
- Action(_('Open Parent'), 'up', '', g.STOCK_GO_UP),
- Action(_('Show Changes'), 'diff', '', 'rox-diff'),
- ToggleItem(_('Word Wrap'), 'word_wrap'),
- Action(_('Close'), 'close', '', g.STOCK_CLOSE),
- Separator(),
- Action(_('New'), 'new', '', g.STOCK_NEW)]),
-
-SubMenu(_('Edit'), edit_menu),
-
-Action(_('Options'), 'show_options', '', g.STOCK_PROPERTIES),
-Action(_('Help'), 'help', 'F1', g.STOCK_HELP),
-])
-
-known_codecs = (
- "iso8859_1", "iso8859_2", "iso8859_3", "iso8859_4", "iso8859_5",
- "iso8859_6", "iso8859_7", "iso8859_8", "iso8859_9", "iso8859_10",
- "iso8859_13", "iso8859_14", "iso8859_15",
- "ascii", "base64_codec", "charmap",
- "cp037", "cp1006", "cp1026", "cp1140", "cp1250", "cp1251", "cp1252",
- "cp1253", "cp1254", "cp1255", "cp1256", "cp1257", "cp1258", "cp424",
- "cp437", "cp500", "cp737", "cp775", "cp850", "cp852", "cp855", "cp856",
- "cp857", "cp860", "cp861", "cp862", "cp863", "cp864", "cp865", "cp866",
- "cp869", "cp874", "cp875", "hex_codec",
- "koi8_r",
- "latin_1",
- "mac_cyrillic", "mac_greek", "mac_iceland", "mac_latin2", "mac_roman", "mac_turkish",
- "mbcs", "quopri_codec", "raw_unicode_escape",
- "rot_13",
- "utf_16_be", "utf_16_le", "utf_16", "utf_7", "utf_8", "uu_codec",
- "zlib_codec"
-)
-
-class Abort(Exception):
- pass
-
-class Minibuffer:
- def setup(self):
- """Called when the minibuffer is opened."""
-
- def key_press(self, kev):
- """A keypress event in the minibuffer text entry."""
-
- def changed(self):
- """The minibuffer text has changed."""
-
- def activate(self):
- """Return or Enter pressed."""
-
- info = 'Press Escape to close the minibuffer.'
-
-class DiffLoader(XDSLoader):
- def __init__(self, window):
- XDSLoader.__init__(self, ['text/plain'])
- self.window = window
-
- def xds_load_from_file(self, path):
- self.window.diff(path = path)
-
- def xds_load_from_stream(self, name, type, stream):
- tmp = diff.Tmp(suffix = '-' + (name or 'tmp'))
- import shutil
- shutil.copyfileobj(stream, tmp)
- tmp.seek(0)
- self.window.diff(path = tmp.name)
-
-class EditWindow(rox.Window, XDSLoader, Saveable):
- _word_wrap = False
- wrap_button = None
-
- def __init__(self, filename = None, show = True, line_number = None):
- rox.Window.__init__(self)
- XDSLoader.__init__(self, ['text/plain', 'UTF8_STRING'])
- self.set_default_size(g.gdk.screen_width() * 2 / 3,
- g.gdk.screen_height() / 2)
-
- self.savebox = None
- self.info_box = None
- self.language = None
-
- app_options.add_notify(self.update_styles)
-
- if filename:
- import os.path
- if not os.path.exists(filename):
- try:
- filename2, line_number = filename.split(':')
- line_number = long(line_number)
- except ValueError:
- # Either there was no ':', or it wasn't followed by a number
- pass
- else:
- filename = filename2
- self.uri = os.path.abspath(filename)
- self.mime_type = mime.get_type(self.uri, 1)
- else:
- self.uri = None
- self.mime_type = mime.lookup('text', 'plain')
-
- self.buffer = Buffer()
-
- try:
- import gtksourceview
- self.text = gtksourceview.SourceView(self.buffer)
- pixbuf = g.gdk.pixbuf_new_from_file(rox.app_dir+"/images/marker.png")
- self.text.set_marker_pixbuf("bookmark", pixbuf)
- if self.mime_type:
- self.buffer.set_type(self.mime_type)
- except:
- self.text = g.TextView()
- self.text.set_buffer(self.buffer)
-
- self.text.set_size_request(10, 10)
- self.xds_proxy_for(self.text)
-
- self.insert_mark = self.buffer.get_mark('insert')
- self.selection_bound_mark = self.buffer.get_mark('selection_bound')
- start = self.buffer.get_start_iter()
- self.mark_start = self.buffer.create_mark('mark_start', start, True)
- self.mark_end = self.buffer.create_mark('mark_end', start, False)
- self.mark_tmp = self.buffer.create_mark('mark_tmp', start, False)
- tag = self.buffer.create_tag('marked')
- tag.set_property('background', 'green')
- self.marked = 0
-
- # When searching, this is where the cursor was when the minibuffer
- # was opened.
- start = self.buffer.get_start_iter()
- self.search_base = self.buffer.create_mark('search_base', start, True)
-
- vbox = g.VBox(False)
- self.add(vbox)
-
- tools = g.Toolbar()
- tools.set_style(g.TOOLBAR_ICONS)
- vbox.pack_start(tools, False, True, 0)
-
- self.status_label = g.Label('')
- tools.append_widget(self.status_label, None, None)
- tools.insert_stock(g.STOCK_HELP, _('Help'), None, self.help, None, 0)
- diff = tools.insert_stock('rox-diff', _('Show changes from saved copy.\n'
- 'Or, drop a backup file onto this button to see changes from that.'),
- None, self.diff, None, 0)
- DiffLoader(self).xds_proxy_for(diff)
-
- if have_spell:
- self.spell = None
- image_spell = g.Image()
- image_spell.set_from_stock(g.STOCK_SPELL_CHECK, tools.get_icon_size())
- self.spell_button = tools.insert_element(g.TOOLBAR_CHILD_TOGGLEBUTTON,
- None, _("Check Spelling"), _("Check Spelling"), None,
- image_spell, self.toggle_spell, None, 0)
-
- image_wrap = g.Image()
- image_wrap.set_from_file(rox.app_dir + '/images/rox-word-wrap.png')
- self.wrap_button = tools.insert_element(g.TOOLBAR_CHILD_TOGGLEBUTTON,
- None, _("Word Wrap"), _("Word Wrap"), None, image_wrap,
- lambda button: self.set_word_wrap(button.get_active()),
- None, 0)
- tools.insert_stock(g.STOCK_REDO, _('Redo'), None, self.redo, None, 0)
- tools.insert_stock(g.STOCK_UNDO, _('Undo'), None, self.undo, None, 0)
- tools.insert_stock(g.STOCK_FIND_AND_REPLACE, _('Replace'), None, self.search_replace, None, 0)
- tools.insert_stock(g.STOCK_FIND, _('Search'), None, self.search, None, 0)
- tools.insert_stock(g.STOCK_SAVE_AS, _('Save As'), None, self.save_as, None, 0)
- self.save_button = tools.insert_stock(g.STOCK_SAVE, _('Save'), None, self.save, None, 0)
- tools.insert_stock(g.STOCK_GO_UP, _('Up'), None, self.up, None, 0)
- tools.insert_stock(g.STOCK_CLOSE, _('Close'), None, self.close, None, 0)
- # Set minimum size to ignore the label
- tools.set_size_request(tools.size_request()[0], -1)
-
- self.tools = tools
-
- swin = g.ScrolledWindow()
- swin.set_policy(g.POLICY_AUTOMATIC, g.POLICY_AUTOMATIC)
- vbox.pack_start(swin, True, True)
-
- swin.add(self.text)
-
- if show:
- self.show_all()
- self.update_styles()
-
- self.update_title()
-
- # Create the minibuffer
- self.mini_hbox = g.HBox(False)
-
- info = rox.ButtonMixed(g.STOCK_DIALOG_INFO, '')
- info.set_relief(g.RELIEF_NONE)
- info.unset_flags(g.CAN_FOCUS)
- info.connect('clicked', self.mini_show_info)
-
- close = rox.ButtonMixed(g.STOCK_STOP, '')
- close.set_relief(g.RELIEF_NONE)
- close.unset_flags(g.CAN_FOCUS)
- close.connect('clicked', lambda e: self.set_minibuffer(None))
-
- self.mini_hbox.pack_end(info, False, True, 0)
- self.mini_hbox.pack_start(close, False, True, 0)
- self.mini_label = g.Label('')
- self.mini_hbox.pack_start(self.mini_label, False, True, 0)
- self.mini_entry = g.Entry()
- self.mini_hbox.pack_start(self.mini_entry, True, True, 0)
- vbox.pack_start(self.mini_hbox, False, True)
- self.mini_entry.connect('key-press-event', self.mini_key_press)
- self.mini_entry.connect('changed', self.mini_changed)
-
- self.connect('destroy', self.destroyed)
-
- self.connect('delete-event', self.delete_event)
- self.text.grab_focus()
- self.text.connect('key-press-event', self.key_press)
-
- # FIXME: why does this freeze Edit?
- #if have_spell:
- #if self.mime_type.media == 'text' and self.mime_type.subtype == 'plain':
- #self.toggle_spell()
- ##self.spell.set_language ("en_US")
-
- def update_current_line(*unused):
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- bound = self.buffer.get_iter_at_mark(self.selection_bound_mark)
- if cursor.compare(bound) == 0:
- n_lines = self.buffer.get_line_count()
- self.status_label.set_text(_('Line %s of %d') % (cursor.get_line() + 1, n_lines))
- else:
- n_lines = abs(cursor.get_line() - bound.get_line()) + 1
- if n_lines == 1:
- n_chars = abs(cursor.get_line_offset() - bound.get_line_offset())
- if n_chars == 1:
- bytes = to_utf8(self.buffer.get_text(cursor, bound, False))[0]
- self.status_label.set_text(_('One character selected (%s)') %
- ' '.join(map(lambda x: '0x%2x' % ord(x), bytes)))
- else:
- self.status_label.set_text(_('%d characters selected') % n_chars)
- else:
- self.status_label.set_text(_('%d lines selected') % n_lines)
- self.buffer.connect('mark-set', update_current_line)
- self.buffer.connect('changed', update_current_line)
-
-
- # Loading might take a while, so get something on the screen
- # now...
- g.gdk.flush()
-
- if filename:
- try:
- self.load_file(filename)
- if filename != '-':
- self.save_last_stat = os.stat(filename)
- except Abort:
- self.destroy()
- raise
-
- self.buffer.connect('modified-changed', self.update_title)
- self.buffer.set_modified(False)
-
- def button_press(text, event):
- if event.button != 3:
- return False
- #self.text.emit('populate-popup', menu.menu)
- menu.popup(self, event)
- return True
- self.text.connect('button-press-event', button_press)
- self.text.connect('popup-menu', lambda text: menu.popup(self, None))
-
- menu.attach(self, self)
- self.buffer.place_cursor(self.buffer.get_start_iter())
- self.buffer.start_undo_history()
-
- if line_number:
- iter = self.buffer.get_iter_at_line(int(line_number) - 1)
- self.buffer.place_cursor(iter)
- self.text.scroll_to_mark(self.insert_mark, 0.05, False)
-
- def key_press(self, text, kev):
- if kev.keyval == g.keysyms.Return or kev.keyval == g.keysyms.KP_Enter:
- return self.auto_indent()
- elif kev.keyval == g.keysyms.Tab or kev.keyval == g.keysyms.KP_Tab:
- return self.indent_block()
- elif kev.keyval == g.keysyms.ISO_Left_Tab:
- return self.unindent_block()
-
- def auto_indent(self):
- if not auto_indent.int_value:
- return False
-
- start = self.buffer.get_iter_at_mark(self.insert_mark)
- end = start.copy()
- start.set_line_offset(0)
- end.forward_to_line_end()
- line = self.buffer.get_text(start, end, False)
- indent = ''
-
- if self.mime_type.subtype == 'x-python':
- try:
- l = line.split('\n')[0]
- except:
- l = line
- if l.endswith(':') and not l.startswith('#'):
- if use_spaces_for_tabs.int_value:
- indent += ' ' * tab_width.int_value
- else:
- indent += '\t'
- elif have_sourceview:
- return False
-
- for x in line:
- if x in ' \t':
- indent += x
- else:
- break
-
- self.buffer.begin_user_action()
- self.buffer.insert_at_cursor('\n' + indent)
- self.buffer.end_user_action()
- return True
-
- def indent_block(self):
- try:
- (start, end) = self.buffer.get_selection_bounds()
- start_line = start.get_line()
- end_line = end.get_line()
- self.buffer.begin_user_action()
- for i in range(start_line, end_line+1):
- iter = self.buffer.get_iter_at_line(i)
- self.buffer.insert(iter, '\t')
- self.buffer.end_user_action()
- return True
- except:
- return False
-
- def unindent_block(self):
- try:
- (start, end) = self.buffer.get_selection_bounds()
- start_line = start.get_line()
- end_line = end.get_line()
- self.buffer.begin_user_action()
- for i in range(start_line, end_line+1):
- iter = self.buffer.get_iter_at_line(i)
- if iter.get_char() == '\t':
- next_char = iter.copy()
- next_char.forward_char()
- self.buffer.delete(iter, next_char)
- self.buffer.end_user_action()
- return True
- except:
- return False
-
- def destroyed(self, widget):
- app_options.remove_notify(self.update_styles)
-
- def update_styles(self):
- try:
- import pango
- font = pango.FontDescription(default_font.value)
- bg = g.gdk.color_parse(background_colour.value)
- fg = g.gdk.color_parse(foreground_colour.value)
-
- self.text.set_left_margin(layout_left_margin.int_value)
- self.text.set_right_margin(layout_right_margin.int_value)
-
- self.text.set_pixels_above_lines(layout_before_para.int_value)
- self.text.set_pixels_below_lines(layout_after_para.int_value)
- self.text.set_pixels_inside_wrap(layout_inside_para.int_value)
- self.text.set_indent(layout_indent_para.int_value)
-
- self.word_wrap = bool(word_wrap.int_value)
-
- if show_toolbar.int_value:
- self.tools.show()
- else:
- self.tools.hide()
- except:
- rox.report_exception()
- else:
- self.text.modify_font(font)
- self.text.modify_base(g.STATE_NORMAL, bg)
- self.text.modify_text(g.STATE_NORMAL, fg)
-
- if have_sourceview:
- self.text.set_show_line_numbers(show_line_numbers.int_value)
- self.text.set_show_line_markers(show_line_markers.int_value)
- self.text.set_auto_indent(auto_indent.int_value)
- self.text.set_tabs_width(tab_width.int_value)
- self.text.set_insert_spaces_instead_of_tabs(use_spaces_for_tabs.int_value)
- self.text.set_margin(right_margin.int_value)
- self.text.set_show_margin(show_margin.int_value)
- self.text.set_smart_home_end(smart_home_end.int_value)
- if self.buffer.language == 'Python':
- self.text.set_auto_indent(False)
-
- def cut(self): self.text.emit('cut_clipboard')
- def copy(self): self.text.emit('copy_clipboard')
- def paste(self): self.text.emit('paste_clipboard')
-
- def delete_event(self, window, event):
- if self.buffer.get_modified():
- self.save_as(discard = 1)
- return 1
- return 0
-
- def update_title(self, *unused):
- title = self.uri or '<'+_('Untitled')+'>'
- if self.buffer.get_modified():
- title = title + " *"
- self.save_button.set_sensitive(True)
- else:
- self.save_button.set_sensitive(False)
- self.set_title(title)
-
- def xds_load_from_stream(self, name, t, stream):
- if t == 'UTF8_STRING':
- return # Gtk will handle it
- try:
- self.insert_data(stream.read())
- except Abort:
- pass
-
- def get_encoding(self, message):
- "Returns (encoding, errors), or raises Abort to cancel."
- box = g.MessageDialog(self, 0, g.MESSAGE_QUESTION, g.BUTTONS_CANCEL, message)
- box.set_has_separator(False)
-
- frame = g.Frame()
- box.vbox.pack_start(frame, True, True)
- frame.set_border_width(6)
-
- hbox = g.HBox(False, 4)
- hbox.set_border_width(6)
-
- hbox.pack_start(g.Label(_('Encoding:')), False, True, 0)
- combo = g.Combo()
- combo.disable_activate()
- combo.entry.connect('activate', lambda w: box.activate_default())
- combo.set_popdown_strings(known_codecs)
- hbox.pack_start(combo, True, True, 0)
- ignore_errors = g.CheckButton(_('Ignore errors'))
- hbox.pack_start(ignore_errors, False, True)
-
- frame.add(hbox)
-
- box.vbox.show_all()
- box.add_button(g.STOCK_CONVERT, g.RESPONSE_YES)
- box.set_default_response(g.RESPONSE_YES)
-
- while 1:
- combo.entry.grab_focus()
-
- resp = box.run()
- if resp != g.RESPONSE_YES:
- box.destroy()
- raise Abort
-
- if ignore_errors.get_active():
- errors = 'replace'
- else:
- errors = 'strict'
- encoding = combo.entry.get_text()
- try:
- codecs.getdecoder(encoding)
- break
- except:
- rox.alert(_("Unknown encoding '%s'") % encoding)
-
- box.destroy()
-
- return encoding, errors
-
- def insert_data(self, data):
- import codecs
- errors = 'strict'
- encoding = 'utf-8'
- while 1:
- decoder = codecs.getdecoder(encoding)
- try:
- data = decoder(data, errors)[0]
- if errors == 'strict':
- assert '\0' not in data
- else:
- if '\0' in data:
- data = data.replace('\0', '\\0')
- break
- except:
- pass
-
- encoding, errors = self.get_encoding(
- _("Data is not valid %s. Please select the file's encoding. "
- "Turn on 'ignore errors' to try and load it anyway.")
- % encoding)
-
- self.buffer.begin_user_action()
- self.buffer.insert_at_cursor(data)
- self.buffer.end_user_action()
- return 1
-
- def load_file(self, path):
- try:
- if path == '-':
- file = sys.stdin
- else:
- file = open(path, 'r')
- contents = file.read()
- if path != '-':
- file.close()
-
- self.buffer.begin_not_undoable_action()
- self.insert_data(contents)
- self.buffer.end_not_undoable_action()
- except Abort:
- raise
- except:
- rox.report_exception()
- raise Abort
-
- def close(self, button = None):
- if self.buffer.get_modified():
- self.save_as(discard = 1)
- else:
- self.destroy()
-
- def discard(self):
- self.destroy()
-
- def up(self, button = None):
- if self.uri:
- filer.show_file(self.uri)
- else:
- rox.alert(_('File is not saved to disk yet'))
-
-
- def toggle_spell(self, button = None):
- if self.spell:
- self.spell.detach()
- self.spell = None
- self.spell_button.set_active(False)
- else:
- try:
- self.spell = gtkspell.Spell(self.text)
- self.spell_button.set_active(True)
- except:
- self.spell = None
- self.spell_button.set_active(False)
-
- #self.spell_button.set_active(self.spell != None)
-
- def diff(self, button = None, path = None):
- path = path or self.uri
- if not path:
- rox.alert(_('This file has never been saved; nothing to compare it to!\n'
- 'Note: you can drop a file onto the toolbar button to see '
- 'the changes from that file.'))
- return
- diff.show_diff(path, self.save_to_stream)
-
- def has_selection(self):
- s, e = self.get_selection_range()
- return not e.equal(s)
-
- def get_marked_range(self):
- s = self.buffer.get_iter_at_mark(self.mark_start)
- e = self.buffer.get_iter_at_mark(self.mark_end)
- if s.compare(e) > 0:
- return e, s
- return s, e
-
- def get_selection_range(self):
- s = self.buffer.get_iter_at_mark(self.insert_mark)
- e = self.buffer.get_iter_at_mark(self.selection_bound_mark)
- if s.compare(e) > 0:
- return e, s
- return s, e
-
- def save(self, widget = None):
- if self.uri:
- self.save_to_file(self.uri)
- self.buffer.set_modified(False)
- else:
- self.save_as(discard=0)
-
- def save_as(self, widget = None, discard = 0):
- from rox.saving import SaveBox
-
- if self.savebox:
- self.savebox.destroy()
-
- try:
- self.mime_type = mime.get_type(self.uri, 1)
- except:
- self.mime_type = mime.lookup('text', 'plain')
-
- mime_text = self.mime_type.media + '/' + self.mime_type.subtype
-
- if self.has_selection() and not discard:
- saver = SelectionSaver(self)
- self.savebox = SaveBox(saver, 'Selection', mime_text)
- self.savebox.connect('destroy', lambda w: saver.destroy())
- else:
- uri = self.uri or _('TextFile')
- self.savebox = SaveBox(self, uri, mime_text, discard)
- self.savebox.show()
-
- def help(self, button = None):
- filer.open_dir(os.path.join(rox.app_dir, 'Help'))
-
- def save_to_stream(self, stream):
- s = self.buffer.get_start_iter()
- e = self.buffer.get_end_iter()
- stream.write(self.buffer.get_text(s, e, True))
-
- def set_uri(self, uri):
- self.uri = uri
- self.buffer.set_modified(False)
- self.update_title()
-
- def new(self):
- EditWindow()
-
- def change_font(self):
- style = self.text.get_style().copy()
- style.font = load_font(options.get('edit_font'))
- self.text.set_style(style)
-
- def show_options(self):
- rox.edit_options()
-
- def set_marked(self, start = None, end = None):
- "Set the marked region (from the selection if no region is given)."
- self.clear_marked()
- assert not self.marked
-
- buffer = self.buffer
- if start:
- assert end
- else:
- assert not end
- start, end = self.get_selection_range()
- buffer.move_mark(self.mark_start, start)
- buffer.move_mark(self.mark_end, end)
- buffer.apply_tag_by_name('marked',
- buffer.get_iter_at_mark(self.mark_start),
- buffer.get_iter_at_mark(self.mark_end))
- self.marked = 1
-
- def clear_marked(self):
- if not self.marked:
- return
- self.marked = 0
- buffer = self.buffer
- buffer.remove_tag_by_name('marked',
- buffer.get_iter_at_mark(self.mark_start),
- buffer.get_iter_at_mark(self.mark_end))
-
- def undo(self, widget = None):
- self.buffer.undo()
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- self.text.scroll_to_iter(cursor, 0.05, False)
-
- def redo(self, widget = None):
- self.buffer.redo()
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- self.text.scroll_to_iter(cursor, 0.05, False)
-
- def goto(self, widget = None):
- from goto import Goto
- self.set_minibuffer(Goto())
-
- def search(self, widget = None):
- from search import Search
- self.set_minibuffer(Search())
-
- def search_replace(self, widget = None):
- from search import Replace
- Replace(self).show()
-
- def toggle_bookmark(self):
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- name = str(cursor.get_line())
- marker = self.buffer.get_marker(name)
- if marker:
- self.buffer.delete_marker(marker);
- else:
- marker = self.buffer.create_marker(name, "bookmark", cursor);
-
- def next_bookmark(self):
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- cursor.forward_char()
- marker = self.buffer.get_next_marker(cursor)
- if marker:
- self.buffer.get_iter_at_marker (cursor, marker)
- self.buffer.place_cursor(cursor)
- self.text.scroll_to_iter(cursor, 0.05, False)
-
- def prev_bookmark(self):
- cursor = self.buffer.get_iter_at_mark(self.insert_mark)
- cursor.backward_char()
- marker = self.buffer.get_prev_marker(cursor)
- if marker:
- self.buffer.get_iter_at_marker (cursor, marker)
- self.buffer.place_cursor(cursor)
- self.text.scroll_to_iter(cursor, 0.05, False)
-
- def set_mini_label(self, label):
- self.mini_label.set_text(label)
-
- def set_minibuffer(self, minibuffer):
- assert minibuffer is None or isinstance(minibuffer, Minibuffer)
-
- try:
- self.minibuffer.close()
- except:
- pass
-
- self.minibuffer = None
-
- if minibuffer:
- self.mini_entry.set_text('')
- self.minibuffer = minibuffer
- minibuffer.setup(self)
- self.mini_entry.grab_focus()
- self.mini_hbox.show_all()
- else:
- self.mini_hbox.hide()
- self.text.grab_focus()
-
- def mini_key_press(self, entry, kev):
- if kev.keyval == g.keysyms.Escape:
- self.set_minibuffer(None)
- return 1
- if kev.keyval == g.keysyms.Return or kev.keyval == g.keysyms.KP_Enter:
- self.minibuffer.activate()
- return 1
-
- return self.minibuffer.key_press(kev)
-
- def mini_changed(self, entry):
- if not self.minibuffer:
- return
- self.minibuffer.changed()
-
- def mini_show_info(self, *unused):
- assert self.minibuffer
- if self.info_box:
- self.info_box.destroy()
- self.info_box = g.MessageDialog(self, 0, g.MESSAGE_INFO, g.BUTTONS_OK,
- self.minibuffer.info)
- self.info_box.set_title(_('Minibuffer help'))
- def destroy(box):
- self.info_box = None
- self.info_box.connect('destroy', destroy)
- self.info_box.show()
- self.info_box.connect('response', lambda w, r: w.destroy())
-
- def process_selected(self, process):
- """Calls process(line) on each line in the selection, or each line in the file
- if there is no selection. If the result is not None, the text is replaced."""
- self.buffer.begin_user_action()
- try:
- self._process_selected(process)
- finally:
- self.buffer.end_user_action()
-
- def _process_selected(self, process):
- if self.has_selection():
- def get_end():
- start, end = self.get_selection_range()
- if start.compare(end) > 0:
- return start
- return end
- start, end = self.get_selection_range()
- if start.compare(end) > 0:
- start = end
- else:
- def get_end():
- return self.buffer.get_end_iter()
- start = self.buffer.get_start_iter()
- end = get_end()
-
- while start.compare(end) <= 0:
- line_end = start.copy()
- line_end.forward_to_line_end()
- if line_end.compare(end) >= 0:
- line_end = end
- line = self.buffer.get_text(start, line_end, False)
- new = process(line)
- if new is not None:
- self.buffer.move_mark(self.mark_tmp, start)
- self.buffer.insert(line_end, new)
- start = self.buffer.get_iter_at_mark(self.mark_tmp)
- line_end = start.copy()
- line_end.forward_chars(len(line.decode('utf-8')))
- self.buffer.delete(start, line_end)
-
- start = self.buffer.get_iter_at_mark(self.mark_tmp)
- end = get_end()
- if not start.forward_line(): break
-
- def set_word_wrap(self, value):
- self._word_wrap = value
- self.wrap_button.set_active(value)
- if value:
- self.text.set_wrap_mode(g.WRAP_WORD)
- else:
- self.text.set_wrap_mode(g.WRAP_NONE)
-
- word_wrap = property(lambda self: self._word_wrap, set_word_wrap)
-
-class SelectionSaver(Saveable):
- def __init__(self, window):
- self.window = window
- window.set_marked()
-
- def save_to_stream(self, stream):
- s, e = self.window.get_marked_range()
- stream.write(self.window.buffer.get_text(s, e, True))
-
- def destroy(self):
- # Called when savebox is remove. Get rid of the selection marker
- self.window.clear_marked()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/COPYING b/source/rox-extra/edit/edit-2.0/Edit/Help/COPYING
deleted file mode 100644
index 60549be..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Entries b/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Entries
deleted file mode 100644
index 9c6dcc4..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Entries
+++ /dev/null
@@ -1,4 +0,0 @@
-/COPYING/1.1/Tue Jun 26 10:55:42 2001//TRelease-2-0
-/Changes/1.65/Wed Sep 21 09:18:51 2005//TRelease-2-0
-/README/1.13/Sat Sep 3 09:53:52 2005//TRelease-2-0
-D
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Repository b/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Repository
deleted file mode 100644
index 3493f2b..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-Edit/Help
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Root b/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Root
deleted file mode 100644
index 01d4116..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-tal197 at cvs.sourceforge.net:/cvsroot/rox
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Tag b/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Tag
deleted file mode 100644
index 8833b6e..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-NRelease-2-0
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/Changes b/source/rox-extra/edit/edit-2.0/Edit/Help/Changes
deleted file mode 100644
index 1aae91c..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/Changes
+++ /dev/null
@@ -1,257 +0,0 @@
- Edit
- A simple text editor
- by Thomas Leonard
-
-Dnd loading: Loads to cursor, not indicated point.
-
-20-Sep-2005 (Release 2.0)
-~~~~~~~~~~~
-Bugfix: Indenting Python code in spaces-for-tabs mode failed (Thomas Leonard).
-
-03-Sep-2005
-~~~~~~~~~~~
-Parsing the line number option requires Python 2.3. On Python 2.2, just
-disable this instead of aborting. As an alternative, allow the syntax
-file:number (Thomas Leonard).
-
-27-Aug-2005
-~~~~~~~~~~~
-Added Edit.xml file, which can be used as a feed for 0launch (Thomas Leonard).
-
-07-Jul-2005
-~~~~~~~~~~~
-Added tooltips for the GtkSourceView options (Thomas Leonard).
-
-22-Jun-2005
-~~~~~~~~~~~
-When gtksourceview is missing, shade those options and explain why they
-don't work (Thomas Leonard).
-
-06-Jun-2005
-~~~~~~~~~~~
-When saving a file with no name, don't show Discard (Thomas Leonard).
-
-31-May-2005
-~~~~~~~~~~~
-Guido Schimmels:
-Add GTK_SPELL_CHECK ToggleButton to toolbar when pygtkspell is available.
-
-30-May-2005
-~~~~~~~~~~~
-
-Guido Schimmels:
-Increase indendation level after python statement (previous line ends with colon)
-
-29-May-2005
-~~~~~~~~~~~
-Updated Chinese translations (Babyfai Cheung).
-
-28-May-2005
-~~~~~~~~~~~
-
-Add missing marker.png image
-
-Ken Hayber:
-
-Switch to basedir spec
-Code cleanups
-
-25-May-2005
-~~~~~~~~~~~
-
-Ken Hayber:
-
-New CLI option: -l (--line_number) -> jump to given line number at startup
-
-21-May-2005
-~~~~~~~~~~~
-Added Save toolbar button, renaming the old Save to Save As (Guido Schimmels).
-
-20-May-2005
-~~~~~~~~~~~
-
-Ken Hayber:
-
-Make Find minibuffer work like Firefox's.
-Indent/unindent of blocks (select a block and tab/shift-tab)
-Fix a warning when trying to undo too far and places the cursor
-at the undo/redo point (so you can see what you are un/redoing).
-
-16-May-2005
-~~~~~~~~~~~
-Ken Hayber + Guido Schimmels:
-
-Make <Untitled> translatable.
-Prettify search/replace dialog with sizegroup.
-Options.xml: move Toolbar frame at the end of Display section, remove Toolbar
-section, line up Display->Colour->Foreground/Background in a hbox.
-Update de.po.
-Use gtksourceview's undo/redo system (it groups edits together so
-if you type a word and hit undo it kills the whole word at once).
-Fix g.FALSE/TRUE deprecation warnings.
-Fix a small bug/warning about self.dir not being defined in search.py.
-Set the mime-type in the SaveBox from the file type if possible.
-Add support for bookmarks (set, clear and jump to).
-Make the search minibuffer work/look more like FireFox's search.
-
-12-May-2005
-~~~~~~~~~~~
-Updated Chinese translation (Babyfai Cheung).
-
-03-May-2005
-~~~~~~~~~~~
-Added support for GtkSourceView (Guido Schimmels, with some untested changes
-by Thomas Leonard).
-Updated findrox.
-
-03-Mar-2005
-~~~~~~~~~~~
-Renamed 'Save' to 'Save As' for consistency with other systems (Thomas
-Leonard).
-
-19-Feb-2005
-~~~~~~~~~~~
-Temporary fix for deprecation warnings with pygtk 2.6 (Stephen Watson).
-
-12-Feb-2005
-~~~~~~~~~~~
-Updated Chinese translation (Babyfai Cheung).
-
-29-Jan-2005 (Release 1.9.7)
-~~~~~~~~~~~
-Added some unit tests for search and replace.
-Bugfix: Search and Replace failed to correctly modify lines containing
- non-ASCII characters (Thomas Leonard; reported by Arnaud Calvo).
-
-23-Dec-2004
-~~~~~~~~~~~
-Added Chinese translation (Babyfai Cheung).
-
-15-Jul-2004
-~~~~~~~~~~~
-Added option to toggle display of toolbar (requested by JoeHill).
-
-18-Apr-2004 (Release 1.9.6)
-~~~~~~~~~~~
-Added Word Wrap menu item and toolbar toggle (Ken Hayber).
-
-18-Mar-2004
-~~~~~~~~~~~
-Added German translation (Guido Schimmels).
-
-22-Feb-2004 (Release 1.9.5)
-~~~~~~~~~~~
-Record size and mtime of file when editing starts, so newer ROX-Libs can
-warn about other applications editing the file.
-
-27-Jan-2004
-~~~~~~~~~~~
-Added French translation (Arnaud Calvo).
-
-13-Jan-2004
-~~~~~~~~~~~
-Option to turn word wrapping on and off (Ken Hayber).
-
-17-Oct-2003
-~~~~~~~~~~~
-Bugfix: Needed to 'import os' for Python 2.2 (Peter Geer).
-
-14-Oct-2003 (Release 1.9.4)
-~~~~~~~~~~~
-Added toolbar icon for Show Changes.
-Added line number display, which also shows details of the current selection,
-if any (requested by Arnaud Calvo).
-
-13-Oct-2003
-~~~~~~~~~~~
-Added ability to bring up a diff of the changes to the saved version of the
-file.
-
-09-Oct-2003
-~~~~~~~~~~~
-Open menu on popup-menu signal (for keyboard users).
-
-06-Oct-2003
-~~~~~~~~~~~
-Added Spanish translation (Nicolás de la Torre).
-
-04-Oct-2003
-~~~~~~~~~~~
-Marked strings as translatable and added Italian translation (Roberto
-Inzerillo).
-
-27-Aug-2003
-~~~~~~~~~~~
-Spanish translation of AppInfo (Nicolás de la Torre).
-
-26-Aug-2003
-~~~~~~~~~~~
-Added 'Messages' directory for translations (requested by Nicolás de la Torre).
-
-26-Jul-2003
-~~~~~~~~~~~
-Hide scrollbar when not in use.
-
-23-Jul-2003 (Release 1.9.3)
-~~~~~~~~~~~
-Group actions for undo and redo.
-Removed Process minibuffer.
-Cope slightly better with binary data.
-
-22-Jul-2003
-~~~~~~~~~~~
-Added Search-and-Replace toolbar button. Added section on search and replace
-to the manual.
-Added Spacing section to the options box, to control the line spacings,
-margins and indents.
-
-20-Jul-2003
-~~~~~~~~~~~
-Support older versions of pygtk (reported by Alastair Porter).
-
-19-Jul-2003 (Release 1.9.2)
-~~~~~~~~~~~
-Added stock items to menus.
-Added menu items for Cut, Copy and Paste.
-Added Search and Replace.
-Added automatic indentation feature (on by default).
-
-04-Jul-2003
-~~~~~~~~~~~
-Added italian translation in AppInfo.xml (Yuri Bongiorno)
-
-16-May-2003 (Release 1.9.1)
-~~~~~~~~~~~
-New icon (Geoff Youngs).
-
-10-Feb-2003
-~~~~~~~~~~~
-Upgraded to cope with pygtk-1.99.15.
-
-02-Feb-2003
-~~~~~~~~~~~
-Fixed problem with wheel mouse scrolling (Stuart Langridge).
-
-29-Jan-2003
-~~~~~~~~~~~
-Make wheel mouse scrolling work (requested by Albert Wagner).
-
-21-Jan-2003
-~~~~~~~~~~~
-Fix warning message when opening minibuffer (reported by joehill).
-
-02-Sep-2002 (Release 1.9.0)
-~~~~~~~~~~~
-Process minibuffer defaults to previous command.
-
-28-Jul-2002
-~~~~~~~~~~~
-Added process minibuffer.
-
-21-Jul-2002
-~~~~~~~~~~~
-Preserve permissions when saving.
-
-19-Jul-2002
-~~~~~~~~~~~
-When importing non-UTF8 text, allow the user to select an encoding to use.
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Help/README b/source/rox-extra/edit/edit-2.0/Edit/Help/README
deleted file mode 100644
index f24c295..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Help/README
+++ /dev/null
@@ -1,122 +0,0 @@
- Edit
- A simple text editor for ROX
- by Thomas Leonard
-
-
-BRIEF
-
-Edit is a simple text editor written in python. You do not need to compile it before using it, but you will require ROX-Lib2:
-
- http://rox.sourceforge.net/rox_lib.html
-
-To run, click on Edit's icon in a filer window. No installation is required, but you can copy it anywhere you want using the filer...
-
-To load a file into Edit, drop the file onto the Edit icon in a ROX-Filer window or panel.
-
-INSTRUCTIONS
-
-To start Edit, either click on its icon in a filer window or drag a file onto it. A window appears with a small toolbar and a text area showing the file. The tools are:
-
-Close
- Close the window
-Up
- Open a ROX-Filer window showing the file
-Save
- Open a ROX savebox - drag to a ROX-Filer window to save
-Search
- Open the interactive search minibuffer at the bottom of the window
-Search and Replace
- Open the search and replace dialog box (see below)
-Undo
- Back one change
-Redo
- Forward one change (undoes undo operations)
-Diff
- Show changes since the file was saved (see below)
-Help
- Show the help files
-
-You can right-click on the window for a menu.
-
-COPY AND PASTE
-
-You can copy a piece of text to the `clipboard' (which is invisible) by selecting it and then pressing Ctrl-C. You can paste text from the clipboard by pressing Ctrl-V (you can also use the Edit menu). The clipboard is shared by all applications, so you can use this to transfer text between programs. However, if you quit the application which 'owns' the clipboard (the last program you did Ctrl-C in), then the clipboard is lost.
-
-A faster alternative mechanism is the 'primary selection'. You can click the middle mouse button to insert the currently selected text (from any application). This mechanism is entirely separate from the clipboard, but is also widely supported.
-
-Tip: to insert the pathname of a file (rather than its contents, which you would do with drag-and-drop), select the file in ROX-Filer and click the middle button at the point in the text where you want to insert it.
-
-SEARCHING
-
-To search, click on the Search toolbar icon, or choose Edit->Search... from the popup menu. As you type, the next match is highlighted. Press the Down arrow to move to the next match, or the Up arrow to search backwards for the previous match.
-
-SEARCH AND REPLACE
-
-Enter some text to search for in the 'Replace' box and enter the text to replace it with in the 'With:' box. For example, to update all your copyright notices:
-
- Replace: Copyright 2002
- With: Copyright 2003
-
-Sometimes you need more flexibility. For example, you may wish to search for all four digit numbers, or for spaces at the beginning of a line. In that case, you'll need to turn on the 'Advanced' check box. When you do this, some characters take on special meanings. A quick-reference table will appear listing them, and some examples.
-
-You can now do things like this:
-
- Replace: Copyright \d{4}
- With: Copyright 2003
-
-`\d' means `any digit', and `{4}' means to match four of them. So, this will find 'Copyright 2002', 'Copyright 1997', etc, and change them all to Copyright 2003.
-
-The 'With:' box also allows some special characters, allowing you to refer back to bracketed parts of the match. For example:
-
- Replace: ^(\d+) (\S+)$
- With: \2 \1
-
-This looks for lines starting with one or more digits, then a space, and then one or more non-spaces at the end of the line. The part matched by the (\d+) becomes group 1, and the (\S+) bit is group 2, due to the brackets. The replacement text then switches them around, so:
-
- 1234 Mary
- 876 Bob
-becomes
- Mary 1234
- Bob 876
-
-(if you want to ignore spaces at the start of the line, use: ^\s*...)
-Finally, if your needs are really complicated, you can turn on the 'Python expression' checkbox. In this case, instead of inserting the 'With:' text directly, it will be evaluated as a formula (a Python expression). For example:
-
- Replace: \b[A-Z][a-z]+\b
- With: old.upper()
-
-This finds all complete words starting with an uppercase letter and followed by at least one lowercase letter, and converts them to uppercase (so "Where are Mary and Bob?" becomes "WHERE are MARY and BOB?").
-Likewise, consider:
-
- Replace: \d+\+\d+
- With: eval(old)
-
-This searches for two strings of digits separated by a "+" (the \ is needed so that + doesn't get it's special meaning of `one or more'), and evaluates the matched text as a Python expression itself. So:
-
- What is 5+2, 3+5 or 1+1?
-becomes:
- What is 7, 8 or 2?
-
-OPTIONS
-
-From the popup menu, you can open the Options box. This lets to choose the font, colours and spacings to use, and control the auto-indent feature.
-
-SHOW CHANGES
-
-When editing a file, you can compare it to the saved version by clicking on the Show Changes toolbar button, or by choosing File->Show Changes from the menu.
-
-The window that appears shows each part of the file that changed. Red lines were deleted and green lines were added (if a line was changed, there will be a red line for the old version followed by a green line for the new one). White lines are context (lines which didn't change, but help to show where the change was). Each section has a grey header showing the line numbers of the changes.
-
-All the colours can be changed in the options box.
-
-You can also compare the current file with an older backup (or any other file) by dragging the backup file to the 'Show Changes' toolbar button.
-
-CONDITIONS
-
-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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Please report any bugs to the mailing list:
-
- http://rox.sourceforge.net/phpwiki/index.php/MailingLists
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Entries b/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Entries
deleted file mode 100644
index a588626..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Entries
+++ /dev/null
@@ -1,10 +0,0 @@
-/de.po/1.2/Sat May 21 18:34:50 2005//TRelease-2-0
-/dist/1.1/Tue Aug 26 14:48:35 2003//TRelease-2-0
-/es.po/1.3/Sat May 21 18:34:50 2005//TRelease-2-0
-/fr.po/1.4/Sat May 21 18:34:50 2005//TRelease-2-0
-/it.po/1.4/Sat May 21 18:34:50 2005//TRelease-2-0
-/tips.py/1.1/Mon Oct 6 10:11:38 2003//TRelease-2-0
-/update-po/1.2/Mon Oct 6 10:11:38 2003//TRelease-2-0
-/zh_CN.po/1.6/Sun Jul 31 10:09:52 2005//TRelease-2-0
-/zh_TW.po/1.6/Sun Jul 31 10:09:52 2005//TRelease-2-0
-D
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Repository b/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Repository
deleted file mode 100644
index 7200d40..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-Edit/Messages
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Root b/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Root
deleted file mode 100644
index 01d4116..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-tal197 at cvs.sourceforge.net:/cvsroot/rox
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Tag b/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Tag
deleted file mode 100644
index 8833b6e..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-NRelease-2-0
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/de.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/de.gmo
deleted file mode 100644
index ea9d0a3..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/de.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/de.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/de.po
deleted file mode 100644
index 61d4c90..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/de.po
+++ /dev/null
@@ -1,587 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Edit 1.9.7\n"
-"POT-Creation-Date: Sat May 21 20:07:04 2005\n"
-"PO-Revision-Date: 2005-05-21 20:06+0100\n"
-"Last-Translator: Guido Schimmels <__guido__ at web.de>\n"
-"Language-Team: ROX mailing-list <rox-users at lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: pygettext.py 1.4\n"
-"X-Poedit-Language: German\n"
-"X-Poedit-Country: GERMANY\n"
-
-#: EditWindow.py:52
-msgid "Cut"
-msgstr "Ausschneiden"
-
-#: EditWindow.py:53
-msgid "Copy"
-msgstr "Kopieren"
-
-#: EditWindow.py:54
-msgid "Paste"
-msgstr "Einfügen"
-
-#: EditWindow.py:56 EditWindow.py:221
-msgid "Undo"
-msgstr "Zurück"
-
-#: EditWindow.py:57 EditWindow.py:220
-msgid "Redo"
-msgstr "Wiederholen"
-
-#: EditWindow.py:59
-msgid "Search..."
-msgstr "Suchen..."
-
-#: EditWindow.py:60
-msgid "Search and Replace...."
-msgstr "Suchen und Ersetzen..."
-
-#: EditWindow.py:62
-msgid "Goto line..."
-msgstr "Zu Zeile..."
-
-#: EditWindow.py:67
-msgid "Toggle Bookmark"
-msgstr "Lesezeichen an/aus"
-
-#: EditWindow.py:68
-msgid "Next Bookmark"
-msgstr "Nächstes Lesezeichen"
-
-#: EditWindow.py:69
-msgid "Previous Bookmark"
-msgstr "Voriges Lesezeichen"
-
-#: EditWindow.py:76
-msgid "File"
-msgstr "Datei"
-
-#: EditWindow.py:77 EditWindow.py:225
-msgid "Save"
-msgstr "Speichern"
-
-#: EditWindow.py:78
-msgid "Save As..."
-msgstr "Speichern Als..."
-
-#: EditWindow.py:79
-msgid "Open Parent"
-msgstr "Ãbergeordnetes Verzeichnis"
-
-#: EditWindow.py:80
-msgid "Show Changes"
-msgstr "Ãnderungen zeigen"
-
-#: EditWindow.py:81 EditWindow.py:216 tips:9
-msgid "Word Wrap"
-msgstr "Zeilenumbruch"
-
-#: EditWindow.py:82 EditWindow.py:227
-msgid "Close"
-msgstr "SchlieÃen"
-
-#: EditWindow.py:84
-msgid "New"
-msgstr "Neu"
-
-#: EditWindow.py:86
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: EditWindow.py:88
-msgid "Options"
-msgstr "Optionen"
-
-#: EditWindow.py:89 EditWindow.py:207
-msgid "Help"
-msgstr "Hilfe"
-
-#: EditWindow.py:208
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-"Zeige Ãnderungen gegenüber Sicherheitskopie.\n"
-"Oder, Sicherungskopie auf diesen Knopf ziehen, um Ãnderungen zu sehen."
-
-#: EditWindow.py:222
-msgid "Replace"
-msgstr "Ersetzen"
-
-#: EditWindow.py:223
-msgid "Search"
-msgstr "Suchen"
-
-#: EditWindow.py:224
-msgid "Save As"
-msgstr "Speichern Als"
-
-#: EditWindow.py:226
-msgid "Up"
-msgstr "Rauf"
-
-#: EditWindow.py:279
-msgid "Line %s of %d"
-msgstr "Zeile %s von %d"
-
-#: EditWindow.py:286
-msgid "One character selected (%s)"
-msgstr "Ein Zeichen markiert (%s)"
-
-#: EditWindow.py:289
-msgid "%d characters selected"
-msgstr "%d Zeichen markiert"
-
-#: EditWindow.py:291
-msgid "%d lines selected"
-msgstr "%d Zeilen markiert"
-
-#: EditWindow.py:434
-msgid "Untitled"
-msgstr "Unbenannt"
-
-#: EditWindow.py:462
-msgid "Encoding:"
-msgstr "Kodierung:"
-
-#: EditWindow.py:468
-msgid "Ignore errors"
-msgstr "Fehler ignorieren"
-
-#: EditWindow.py:494
-msgid "Unknown encoding '%s'"
-msgstr "Unbekanntes Zeichenormat '%s'"
-
-#: EditWindow.py:518
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr ""
-"Daten entsprechen nicht %s. Bitte wählen Sie das Zeichenformat der Datei. "
-"Schalten Sie 'Fehler ignorieren ein', um Datei trotzdem zu öffnen."
-
-#: EditWindow.py:559
-msgid "File is not saved to disk yet"
-msgstr "Die Datei ist noch nicht gespeichert"
-
-#: EditWindow.py:564
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-"Diese Datei wurde noch nie gespeichert; Nichts da zum vergleichen!\n"
-"Ãbrigens: Sie können eine Datei auf den Knopf in der Werkzeugleiste ziehen, "
-"um Ãnderungen an dieser Datei zu sehen."
-
-#: EditWindow.py:761
-msgid "Minibuffer help"
-msgstr "Hilfe zur Befehlszeile"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr "Ãnderungen an %s"
-
-#: diff.py:129
-msgid "There is no difference between this version and the saved one."
-msgstr "Diese Version unterscheidet sich nicht von der Sicherheitskopie."
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "Zu Zeile:"
-
-#: goto.py:12
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr ""
-"Geben Sie die gewünschte Zeilennummer ein. Zeilennummern beginnen bei 1. "
-"Drücken Sie Esc, um abzubrechen oder Return, um zur Zeile zu springen."
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "Ungültige Zeilennummer: %s"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr "Beliebiges Zeichen"
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr "Beliebiger Kleinbuchstabe"
-
-#: search.py:8
-msgid "Any character listed (- must be first)"
-msgstr "Beliebiges genanntes Zeichen (- muss als erstes stehen)"
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr "A nur am Zeilenanfang"
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr "A nur am Zeilenende"
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr "Null oder mehr A"
-
-#: search.py:12
-msgid "One or more A"
-msgstr "Ein weiteres A"
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr "Null oder ein A"
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr "Zwischen m und n Treffer von A"
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr "Laxe Versionen von *, +, ? und {}"
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr "Literal \"*\", \"+\""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr "Trifft zu auf A oder B"
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr "A und B Zusammengroupieren (für *, \\1, etc.)"
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr "Der erste/zweite geklammerte Treffer (gehört in den Kasten \"Durch:\")"
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr "Wortgrenze (z.B. \\bWort\\b)"
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr "Nicht-Wort Grenze"
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr "Ziffer, Nicht-Ziffer"
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr "Leerraum, Nicht-Leerraum"
-
-#: search.py:24
-msgid "Others"
-msgstr "Andere"
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr ""
-"Für Weiteres, Schlagen Sie nach in der Pythondocumentation zu regulären "
-"Ausdrücken"
-
-#: search.py:26
-msgid "Examples:"
-msgstr "Beispiele:"
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr "\"Fred\" an beliebiger Stelle stehend"
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr "Eine Zeile die nur \"Fred\" enthält"
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr "\"Gogle, Google, Gooogle, etc\""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr "Colour oder Color"
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr "\"The\" or \"the\""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr "Python-Ausdrücke:"
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr "Der zutreffende Text"
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr "Der Zahlenwert von 'old'"
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr "Zutreffenden Text in GroÃbuchstaben wandeln"
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr "Alle zutreffenden Nummern verdoppeln"
-
-#: search.py:56
-msgid "Find Next"
-msgstr "Finde Nächstes"
-
-#: search.py:61
-msgid "Find Previous"
-msgstr "Finde Voriges"
-
-#: search.py:66
-msgid "Match case"
-msgstr "GroÃ-/Kleinschreibung beachten"
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-"Einen Suchtext eingeben. Die Anzeige scrollt zum nächsten Treffer währen sie "
-"tippen. Durch Pfeil Hoch und Runter gelangen sie zum nächsten oder vorigen "
-"Treffer. Beenden durch Esc oder Eingabetaste."
-
-#: search.py:85
-msgid " Find: "
-msgstr "Finde:"
-
-#: search.py:160
-msgid "Code"
-msgstr "Zeichen"
-
-#: search.py:162
-msgid "Meaning"
-msgstr "Bedeutet"
-
-#: search.py:213
-msgid "Replace:"
-msgstr "Ersetzen:"
-
-#: search.py:214
-msgid "With:"
-msgstr "Durch:"
-
-#: search.py:221
-msgid "Advanced search and replace"
-msgstr "Erweitertes Suchen und Ersetzen"
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr "Werte 'With' aus als Python-Ausdruck"
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr "Keine Suche spezifiziert..."
-
-#: search.py:297
-msgid "Search string not found"
-msgstr "Suchtext nicht gefunden"
-
-#: search.py:301
-msgid "One line changed"
-msgstr "Eine Zeile geändert"
-
-#: search.py:303
-msgid "%d lines changed"
-msgstr "%d Zeilen geändert"
-
-#: tips:1
-msgid "Display"
-msgstr "Darstellung"
-
-#: tips:2
-msgid "Fonts"
-msgstr "Zeichensätze"
-
-#: tips:3
-msgid "Text font"
-msgstr "Textzeichensatz"
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr "Zeichensatz für normalen Text."
-
-#: tips:6
-msgid "Colours"
-msgstr "Farben"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr "Vordergrundfarbe"
-
-#: tips:8
-msgid "Background colour"
-msgstr "Hintergrundfarbe"
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr "Lange Textzeilen umbrechen"
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr "Einstellen, ob Zeilen am Fensterrand umbrochen werden sollen."
-
-#: tips:13
-msgid "Toolbar"
-msgstr "Werkzeugleiste"
-
-#: tips:14
-msgid "Show toolbar"
-msgstr "Zeige Werkzeugleiste"
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr "Zeige eine Werkzeugleiste mit gebräuchlichen Schaltern am Fensterkopf."
-
-#: tips:18
-msgid "Spacing"
-msgstr "Abstände"
-
-#: tips:19
-msgid "Margins"
-msgstr "Ränder"
-
-#: tips:20
-msgid "pixels for left margin, and for the right:"
-msgstr "Pixel für linken Rand, und für den Rechten:"
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr "Pixel"
-
-#: tips:22
-msgid "Paragraphs"
-msgstr "Absätze"
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr "Abstand oberhalb von Absätzen"
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr "Abstand unterhalb von Absätzen"
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr "Zeilenabstand zwischen Absätzen"
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr "Neue Absätze einrücken"
-
-#: tips:31
-msgid "Editing"
-msgstr "Bearbeiten"
-
-#: tips:32
-msgid "Indentation"
-msgstr "Einrücken"
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr "Automatisches Einrücken"
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr ""
-"Drücken der Umschalttaste rückt Text entsprechend der vorherigen Zeile ein."
-
-#: tips:35
-msgid "Show Print Margin"
-msgstr "Druckränder zeigen"
-
-#: tips:36
-msgid "Print Margin"
-msgstr "Druckränder"
-
-#: tips:37 tips:43
-msgid "characters"
-msgstr "Zeichen"
-
-#: tips:38
-msgid "Smart Home/End"
-msgstr "Intelligentes Pos 1 / Ende"
-
-#: tips:39
-msgid "Show Line Numbers"
-msgstr "Zeilennummern zeigen"
-
-#: tips:40
-msgid "Show Line Markers"
-msgstr "Zeilenmarkierungen zeigen"
-
-#: tips:41
-msgid "Use spaces instead of Tabs"
-msgstr "Tabulatoren durch Leerzeichen ersetzen"
-
-#: tips:42
-msgid "Tab width"
-msgstr "Tabulatorbreite"
-
-#: tips:44
-msgid "Changes"
-msgstr "Ãnderungen"
-
-#: tips:45
-msgid "Colours for Show Changes feature"
-msgstr "Farben für 'Ãnderungen zeigen'"
-
-#: tips:46 tips:50 tips:54 tips:58
-msgid "Foreground"
-msgstr "Vordergrund"
-
-#: tips:47 tips:51 tips:55 tips:59
-msgid "Background"
-msgstr "Hintergrund"
-
-#: tips:48 tips:49
-msgid "(headers)"
-msgstr "(Kopfzeilen)"
-
-#: tips:52 tips:53
-msgid "(no change)"
-msgstr "(keine Ãnderung)"
-
-#: tips:56 tips:57
-msgid "(additions)"
-msgstr "(hinzugefügt)"
-
-#: tips:60 tips:61 tips:62 tips:63 tips:64
-msgid "(deletions)"
-msgstr "(gelöscht)"
-
-#~ msgid "Forward search:"
-#~ msgstr "Vorwärtssuche:"
-
-#~ msgid "Backward search:"
-#~ msgstr "Rückwärtssuche:"
-
-#~ msgid "/File/"
-#~ msgstr "/Datei/"
-
-#~ msgid "/Edit/"
-#~ msgstr "/Bearbeiten/"
-
-#~ msgid "/Help"
-#~ msgstr "/Hilfe"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/dist b/source/rox-extra/edit/edit-2.0/Edit/Messages/dist
deleted file mode 100755
index a637e09..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/dist
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-echo Making all .mo files...
-echo
-
-for FILE in *.po; do
- msgfmt $FILE -o ${FILE%.po}.gmo && echo Created file $OUT OK
-done
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/es.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/es.gmo
deleted file mode 100644
index dcd5f0a..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/es.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/es.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/es.po
deleted file mode 100644
index 0920186..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/es.po
+++ /dev/null
@@ -1,580 +0,0 @@
-# Spanish translation for Edit.
-# Copyright (C) 2003 Ensambl3
-# Nicolás de la Torre <ndelatorre at gmx.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: Sat May 21 20:07:04 2005\n"
-"PO-Revision-Date: 2003-10-05 23:34-0300\n"
-"Last-Translator: Nicolás de la Torre <ndelatorre at gmx.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.4\n"
-
-#: EditWindow.py:52
-msgid "Cut"
-msgstr "Cortar"
-
-#: EditWindow.py:53
-msgid "Copy"
-msgstr "Copiar"
-
-#: EditWindow.py:54
-msgid "Paste"
-msgstr "Pegar"
-
-#: EditWindow.py:56 EditWindow.py:221
-msgid "Undo"
-msgstr "Deshacer"
-
-#: EditWindow.py:57 EditWindow.py:220
-msgid "Redo"
-msgstr "Rehacer"
-
-#: EditWindow.py:59
-msgid "Search..."
-msgstr "Buscar..."
-
-#: EditWindow.py:60
-msgid "Search and Replace...."
-msgstr "Buscar y Reemplazar..."
-
-#: EditWindow.py:62
-msgid "Goto line..."
-msgstr "Ir a linea..."
-
-#: EditWindow.py:67
-msgid "Toggle Bookmark"
-msgstr ""
-
-#: EditWindow.py:68
-msgid "Next Bookmark"
-msgstr ""
-
-#: EditWindow.py:69
-msgid "Previous Bookmark"
-msgstr ""
-
-#: EditWindow.py:76
-#, fuzzy
-msgid "File"
-msgstr "/Archivo"
-
-#: EditWindow.py:77 EditWindow.py:225
-msgid "Save"
-msgstr "Salvar"
-
-#: EditWindow.py:78
-msgid "Save As..."
-msgstr ""
-
-#: EditWindow.py:79
-msgid "Open Parent"
-msgstr "Abrir Origen"
-
-#: EditWindow.py:80
-msgid "Show Changes"
-msgstr ""
-
-#: EditWindow.py:81 EditWindow.py:216 tips:9
-msgid "Word Wrap"
-msgstr ""
-
-#: EditWindow.py:82 EditWindow.py:227
-msgid "Close"
-msgstr "Cerrar"
-
-#: EditWindow.py:84
-msgid "New"
-msgstr "Nuevo"
-
-#: EditWindow.py:86
-#, fuzzy
-msgid "Edit"
-msgstr "/Editar"
-
-#: EditWindow.py:88
-#, fuzzy
-msgid "Options"
-msgstr "/Opciones"
-
-#: EditWindow.py:89 EditWindow.py:207
-msgid "Help"
-msgstr "Ayuda"
-
-#: EditWindow.py:208
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-
-#: EditWindow.py:222
-msgid "Replace"
-msgstr "Reemplazar"
-
-#: EditWindow.py:223
-msgid "Search"
-msgstr "Buscar"
-
-#: EditWindow.py:224
-#, fuzzy
-msgid "Save As"
-msgstr "Salvar"
-
-#: EditWindow.py:226
-msgid "Up"
-msgstr "Arriba"
-
-#: EditWindow.py:279
-msgid "Line %s of %d"
-msgstr ""
-
-#: EditWindow.py:286
-msgid "One character selected (%s)"
-msgstr ""
-
-#: EditWindow.py:289
-msgid "%d characters selected"
-msgstr ""
-
-#: EditWindow.py:291
-msgid "%d lines selected"
-msgstr ""
-
-#: EditWindow.py:434
-msgid "Untitled"
-msgstr ""
-
-#: EditWindow.py:462
-#, fuzzy
-msgid "Encoding:"
-msgstr "/Editar"
-
-#: EditWindow.py:468
-msgid "Ignore errors"
-msgstr ""
-
-#: EditWindow.py:494
-msgid "Unknown encoding '%s'"
-msgstr "Codificación desconocia '%s'"
-
-#: EditWindow.py:518
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr ""
-"Los datos %s no son validos. Por favor elija la codificación para el "
-"archivo. Seleccione 'ignorar errores' para probar y cargarlo de todas formas."
-
-#: EditWindow.py:559
-msgid "File is not saved to disk yet"
-msgstr "El archivo no se a salvado en el disco todavia"
-
-#: EditWindow.py:564
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-
-#: EditWindow.py:761
-msgid "Minibuffer help"
-msgstr "Ayuda Minibuffer"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr ""
-
-#: diff.py:129
-msgid "There is no difference between this version and the saved one."
-msgstr ""
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "Ir a linea:"
-
-#: goto.py:12
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr ""
-"Ingrese el número de linea para ir. Los números de lineas empiezan desde 1. "
-"Presione Escape para cancelar, o intro para saltar a la linea."
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "Número de linea invalida: %s"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr ""
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr ""
-
-#: search.py:8
-msgid "Any character listed (- must be first)"
-msgstr ""
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr ""
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr ""
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr ""
-
-#: search.py:12
-msgid "One or more A"
-msgstr ""
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr ""
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr ""
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr ""
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr ""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr ""
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr ""
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr ""
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr ""
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr ""
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr ""
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr ""
-
-#: search.py:24
-msgid "Others"
-msgstr ""
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr ""
-
-#: search.py:26
-msgid "Examples:"
-msgstr ""
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr ""
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr ""
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr ""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr ""
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr ""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr ""
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr ""
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr ""
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr ""
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr ""
-
-#: search.py:56
-msgid "Find Next"
-msgstr ""
-
-#: search.py:61
-msgid "Find Previous"
-msgstr ""
-
-#: search.py:66
-msgid "Match case"
-msgstr ""
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-
-#: search.py:85
-msgid " Find: "
-msgstr ""
-
-#: search.py:160
-#, fuzzy
-msgid "Code"
-msgstr "Cerrar"
-
-#: search.py:162
-msgid "Meaning"
-msgstr ""
-
-#: search.py:213
-#, fuzzy
-msgid "Replace:"
-msgstr "Reemplazar"
-
-#: search.py:214
-msgid "With:"
-msgstr ""
-
-#: search.py:221
-#, fuzzy
-msgid "Advanced search and replace"
-msgstr "Buscar y Reemplazar..."
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr ""
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr ""
-
-#: search.py:297
-msgid "Search string not found"
-msgstr ""
-
-#: search.py:301
-msgid "One line changed"
-msgstr ""
-
-#: search.py:303
-msgid "%d lines changed"
-msgstr ""
-
-#: tips:1
-msgid "Display"
-msgstr ""
-
-#: tips:2
-msgid "Fonts"
-msgstr ""
-
-#: tips:3
-msgid "Text font"
-msgstr ""
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr ""
-
-#: tips:6
-#, fuzzy
-msgid "Colours"
-msgstr "Cerrar"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr ""
-
-#: tips:8
-msgid "Background colour"
-msgstr ""
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr ""
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr ""
-
-#: tips:13
-msgid "Toolbar"
-msgstr ""
-
-#: tips:14
-msgid "Show toolbar"
-msgstr ""
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr ""
-
-#: tips:18
-msgid "Spacing"
-msgstr ""
-
-#: tips:19
-msgid "Margins"
-msgstr ""
-
-#: tips:20
-msgid "pixels for left margin, and for the right:"
-msgstr ""
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr ""
-
-#: tips:22
-msgid "Paragraphs"
-msgstr ""
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr ""
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr ""
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr ""
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr ""
-
-#: tips:31
-#, fuzzy
-msgid "Editing"
-msgstr "/Editar"
-
-#: tips:32
-msgid "Indentation"
-msgstr ""
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr ""
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr ""
-
-#: tips:35
-msgid "Show Print Margin"
-msgstr ""
-
-#: tips:36
-msgid "Print Margin"
-msgstr ""
-
-#: tips:37 tips:43
-msgid "characters"
-msgstr ""
-
-#: tips:38
-msgid "Smart Home/End"
-msgstr ""
-
-#: tips:39
-msgid "Show Line Numbers"
-msgstr ""
-
-#: tips:40
-msgid "Show Line Markers"
-msgstr ""
-
-#: tips:41
-msgid "Use spaces instead of Tabs"
-msgstr ""
-
-#: tips:42
-msgid "Tab width"
-msgstr ""
-
-#: tips:44
-msgid "Changes"
-msgstr ""
-
-#: tips:45
-msgid "Colours for Show Changes feature"
-msgstr ""
-
-#: tips:46 tips:50 tips:54 tips:58
-msgid "Foreground"
-msgstr ""
-
-#: tips:47 tips:51 tips:55 tips:59
-msgid "Background"
-msgstr ""
-
-#: tips:48 tips:49
-msgid "(headers)"
-msgstr ""
-
-#: tips:52 tips:53
-msgid "(no change)"
-msgstr ""
-
-#: tips:56 tips:57
-msgid "(additions)"
-msgstr ""
-
-#: tips:60 tips:61 tips:62 tips:63 tips:64
-msgid "(deletions)"
-msgstr ""
-
-#~ msgid "/File/"
-#~ msgstr "/Archivo/"
-
-#~ msgid "/Edit/"
-#~ msgstr "/Editar/"
-
-#~ msgid "/Help"
-#~ msgstr "/Ayuda"
-
-#~ msgid "Edit requires ROX-Lib2 1.9.8 or later"
-#~ msgstr "Edit requiere ROX-Lib2 1.9.8 o posterior"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.gmo
deleted file mode 100644
index b034d04..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.po
deleted file mode 100644
index 2f80418..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/fr.po
+++ /dev/null
@@ -1,601 +0,0 @@
-# French translation for Edit.
-# Copyright (C) 2004 Arnaud CALVO
-# Arnaud CALVO <arnaud+traducedit@(drop-this)calvo-france.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: Sat May 21 20:07:04 2005\n"
-"PO-Revision-Date: 2004-01-28 12:00+0100\n"
-"Last-Translator: Arnaud CALVO <arnaud+traducedit@(drop-this)calvo-france."
-"com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: EditWindow.py:52
-msgid "Cut"
-msgstr "Couper"
-
-#: EditWindow.py:53
-msgid "Copy"
-msgstr "Copier"
-
-#: EditWindow.py:54
-msgid "Paste"
-msgstr "Coller"
-
-#: EditWindow.py:56 EditWindow.py:221
-msgid "Undo"
-msgstr "Annuler"
-
-#: EditWindow.py:57 EditWindow.py:220
-msgid "Redo"
-msgstr "Rétablir"
-
-#: EditWindow.py:59
-msgid "Search..."
-msgstr "Chercher..."
-
-#: EditWindow.py:60
-msgid "Search and Replace...."
-msgstr "Chercher et remplacer..."
-
-#: EditWindow.py:62
-msgid "Goto line..."
-msgstr "Aller à la ligne..."
-
-#: EditWindow.py:67
-msgid "Toggle Bookmark"
-msgstr ""
-
-#: EditWindow.py:68
-msgid "Next Bookmark"
-msgstr ""
-
-#: EditWindow.py:69
-msgid "Previous Bookmark"
-msgstr ""
-
-#: EditWindow.py:76
-#, fuzzy
-msgid "File"
-msgstr "/Fichier"
-
-#: EditWindow.py:77 EditWindow.py:225
-msgid "Save"
-msgstr "Enregistrer"
-
-#: EditWindow.py:78
-msgid "Save As..."
-msgstr ""
-
-#: EditWindow.py:79
-msgid "Open Parent"
-msgstr "Ouvrir le dossier père"
-
-#: EditWindow.py:80
-msgid "Show Changes"
-msgstr "Afficher les différences"
-
-#: EditWindow.py:81 EditWindow.py:216 tips:9
-msgid "Word Wrap"
-msgstr ""
-
-#: EditWindow.py:82 EditWindow.py:227
-msgid "Close"
-msgstr "Quitter"
-
-#: EditWindow.py:84
-msgid "New"
-msgstr "Nouveau"
-
-#: EditWindow.py:86
-#, fuzzy
-msgid "Edit"
-msgstr "/Ãdition"
-
-#: EditWindow.py:88
-#, fuzzy
-msgid "Options"
-msgstr "/Options"
-
-#: EditWindow.py:89 EditWindow.py:207
-msgid "Help"
-msgstr "Aide"
-
-#: EditWindow.py:208
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-"Afficher les différences par rapport au dernier enregistrement (vous\n"
-"pouvez faire glisser ici une ancienne version de ce fichier pour afficher\n"
-"les différences."
-
-#: EditWindow.py:222
-msgid "Replace"
-msgstr "Remplacer"
-
-#: EditWindow.py:223
-msgid "Search"
-msgstr "Chercher"
-
-#: EditWindow.py:224
-#, fuzzy
-msgid "Save As"
-msgstr "Enregistrer"
-
-#: EditWindow.py:226
-msgid "Up"
-msgstr "Ouvrir le dossier père"
-
-#: EditWindow.py:279
-msgid "Line %s of %d"
-msgstr "Ligne %s sur %d"
-
-#: EditWindow.py:286
-msgid "One character selected (%s)"
-msgstr "Un caractère sélectionné (%s)"
-
-#: EditWindow.py:289
-msgid "%d characters selected"
-msgstr "%d caractères sélectionnés"
-
-#: EditWindow.py:291
-msgid "%d lines selected"
-msgstr "%d lignes sélectionnées"
-
-#: EditWindow.py:434
-msgid "Untitled"
-msgstr ""
-
-#: EditWindow.py:462
-#, fuzzy
-msgid "Encoding:"
-msgstr "Ãdition"
-
-#: EditWindow.py:468
-msgid "Ignore errors"
-msgstr ""
-
-#: EditWindow.py:494
-msgid "Unknown encoding '%s'"
-msgstr "Encodage de caractères '%s' inconnu"
-
-#: EditWindow.py:518
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr ""
-"Ce fichier contient du texte non %s.\n"
-"Choisissez un encodage pour ce fichier.\n"
-"Cochez 'Ignorer les erreurs' pour essayer de l'ouvrir quand même."
-
-#: EditWindow.py:559
-msgid "File is not saved to disk yet"
-msgstr "Le fichier n'a pas encore été enregistré"
-
-#: EditWindow.py:564
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-"Ce fichier n'a encore pas été enregistré ; rien à comparer !\n"
-"Note : vous pouvez glisser un fichier sur le bouton de la barre d'outils\n"
-"pour afficher les différences."
-
-#: EditWindow.py:761
-msgid "Minibuffer help"
-msgstr "Aide du Minibuffer"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr "Différences sur %s"
-
-#: diff.py:129
-msgid "There is no difference between this version and the saved one."
-msgstr ""
-"Il n'y a aucune différence entre cette version et la dernière enregistrée."
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "Aller à la ligne :"
-
-#: goto.py:12
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr ""
-"Entrez le numéro de la ligne sur laquelle vous voulez aller.Appuyez sur "
-"Ãchap pour annuler, ou Entrée pour vous déplacer sur la ligne indiquée."
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "Numéro de ligne invalide (%s)"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr ""
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr ""
-
-#: search.py:8
-#, fuzzy
-msgid "Any character listed (- must be first)"
-msgstr "Un caractère sélectionné (%s)"
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr ""
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr ""
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr ""
-
-#: search.py:12
-msgid "One or more A"
-msgstr ""
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr ""
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr ""
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr ""
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr ""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr ""
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr ""
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr ""
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr ""
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr ""
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr ""
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr ""
-
-#: search.py:24
-msgid "Others"
-msgstr ""
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr ""
-
-#: search.py:26
-msgid "Examples:"
-msgstr ""
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr ""
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr ""
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr ""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr ""
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr ""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr ""
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr ""
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr ""
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr ""
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr ""
-
-#: search.py:56
-msgid "Find Next"
-msgstr ""
-
-#: search.py:61
-msgid "Find Previous"
-msgstr ""
-
-#: search.py:66
-msgid "Match case"
-msgstr ""
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-
-#: search.py:85
-msgid " Find: "
-msgstr ""
-
-#: search.py:160
-#, fuzzy
-msgid "Code"
-msgstr "Quitter"
-
-#: search.py:162
-msgid "Meaning"
-msgstr ""
-
-#: search.py:213
-#, fuzzy
-msgid "Replace:"
-msgstr "Remplacer"
-
-#: search.py:214
-msgid "With:"
-msgstr ""
-
-#: search.py:221
-#, fuzzy
-msgid "Advanced search and replace"
-msgstr "Chercher et remplacer..."
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr ""
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr ""
-
-#: search.py:297
-msgid "Search string not found"
-msgstr ""
-
-#: search.py:301
-msgid "One line changed"
-msgstr ""
-
-#: search.py:303
-#, fuzzy
-msgid "%d lines changed"
-msgstr "%d lignes sélectionnées"
-
-#: tips:1
-msgid "Display"
-msgstr "Affichage"
-
-#: tips:2
-msgid "Fonts"
-msgstr "Polices"
-
-#: tips:3
-msgid "Text font"
-msgstr "Texte"
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr "Police utilisée pour le texte normal"
-
-#: tips:6
-msgid "Colours"
-msgstr "Couleurs"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr "Texte"
-
-#: tips:8
-msgid "Background colour"
-msgstr "Fond"
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr ""
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr ""
-
-#: tips:13
-msgid "Toolbar"
-msgstr ""
-
-#: tips:14
-msgid "Show toolbar"
-msgstr ""
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr ""
-
-#: tips:18
-msgid "Spacing"
-msgstr "Espacement"
-
-#: tips:19
-msgid "Margins"
-msgstr "Marges"
-
-#: tips:20
-#, fuzzy
-msgid "pixels for left margin, and for the right:"
-msgstr "à gauche, et à droite :"
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr "pixels"
-
-#: tips:22
-msgid "Paragraphs"
-msgstr "Paragraphes"
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr "Espace au-dessus des paragraphes"
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr "Espace sous les paragraphes"
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr "Interlignage intra paragraphes"
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr "Retrait des nouveaux paragraphes"
-
-#: tips:31
-msgid "Editing"
-msgstr "Ãdition"
-
-#: tips:32
-msgid "Indentation"
-msgstr "Mises en retrait"
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr "Retraits automatiques"
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr ""
-"Quand vous pressez la touche Entrée, la nouvelle ligne commence avec le même "
-"retrait que la précédente"
-
-#: tips:35
-msgid "Show Print Margin"
-msgstr ""
-
-#: tips:36
-#, fuzzy
-msgid "Print Margin"
-msgstr "Marges"
-
-#: tips:37 tips:43
-#, fuzzy
-msgid "characters"
-msgstr "%d caractères sélectionnés"
-
-#: tips:38
-msgid "Smart Home/End"
-msgstr ""
-
-#: tips:39
-msgid "Show Line Numbers"
-msgstr ""
-
-#: tips:40
-msgid "Show Line Markers"
-msgstr ""
-
-#: tips:41
-msgid "Use spaces instead of Tabs"
-msgstr ""
-
-#: tips:42
-msgid "Tab width"
-msgstr ""
-
-#: tips:44
-msgid "Changes"
-msgstr "Différences"
-
-#: tips:45
-msgid "Colours for Show Changes feature"
-msgstr "Couleurs pour la fonction 'Afficher les différences'"
-
-#: tips:46 tips:50 tips:54 tips:58
-msgid "Foreground"
-msgstr "Texte"
-
-#: tips:47 tips:51 tips:55 tips:59
-msgid "Background"
-msgstr "Fond"
-
-#: tips:48 tips:49
-#, fuzzy
-msgid "(headers)"
-msgstr "En-têtes :"
-
-#: tips:52 tips:53
-#, fuzzy
-msgid "(no change)"
-msgstr "Afficher les différences"
-
-#: tips:56 tips:57
-#, fuzzy
-msgid "(additions)"
-msgstr "Ajouts :"
-
-#: tips:60 tips:61 tips:62 tips:63 tips:64
-#, fuzzy
-msgid "(deletions)"
-msgstr "Suppressions :"
-
-#~ msgid "/File/"
-#~ msgstr "/Fichier/"
-
-#~ msgid "/Edit/"
-#~ msgstr "/Ãdition/"
-
-#~ msgid "/Help"
-#~ msgstr "/Aide"
-
-#~ msgid "Edit requires ROX-Lib2 1.9.8 or later"
-#~ msgstr "Edit a besoin de ROX-Lib2 version 1.9.8 ou postérieure"
-
-#~ msgid "Normal:"
-#~ msgstr "Normal :"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/it.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/it.gmo
deleted file mode 100644
index bb586a6..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/it.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/it.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/it.po
deleted file mode 100644
index ef17221..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/it.po
+++ /dev/null
@@ -1,618 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: Sat May 21 20:07:04 2005\n"
-"PO-Revision-Date: 2003-10-03 18:55+1\n"
-"Last-Translator: Roberto Inzerillo <robicd at gmx.net>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.4\n"
-
-#: EditWindow.py:52
-msgid "Cut"
-msgstr ""
-
-#: EditWindow.py:53
-msgid "Copy"
-msgstr ""
-
-#: EditWindow.py:54
-#, fuzzy
-msgid "Paste"
-msgstr "/Modifica/Incolla"
-
-#: EditWindow.py:56 EditWindow.py:221
-msgid "Undo"
-msgstr "Annulla"
-
-#: EditWindow.py:57 EditWindow.py:220
-msgid "Redo"
-msgstr "Ripeti"
-
-#: EditWindow.py:59
-#, fuzzy
-msgid "Search..."
-msgstr "Cerca"
-
-#: EditWindow.py:60
-#, fuzzy
-msgid "Search and Replace...."
-msgstr "/Modifica/Cerca e Sotituisci"
-
-#: EditWindow.py:62
-#, fuzzy
-msgid "Goto line..."
-msgstr "Vai alla riga:"
-
-#: EditWindow.py:67
-msgid "Toggle Bookmark"
-msgstr ""
-
-#: EditWindow.py:68
-msgid "Next Bookmark"
-msgstr ""
-
-#: EditWindow.py:69
-msgid "Previous Bookmark"
-msgstr ""
-
-#: EditWindow.py:76
-#, fuzzy
-msgid "File"
-msgstr "/File"
-
-#: EditWindow.py:77 EditWindow.py:225
-msgid "Save"
-msgstr "Salva"
-
-#: EditWindow.py:78
-msgid "Save As..."
-msgstr ""
-
-#: EditWindow.py:79
-#, fuzzy
-msgid "Open Parent"
-msgstr "/File/Apri Directory"
-
-#: EditWindow.py:80
-msgid "Show Changes"
-msgstr ""
-
-#: EditWindow.py:81 EditWindow.py:216 tips:9
-msgid "Word Wrap"
-msgstr ""
-
-#: EditWindow.py:82 EditWindow.py:227
-msgid "Close"
-msgstr "Chiudi"
-
-#: EditWindow.py:84
-msgid "New"
-msgstr ""
-
-#: EditWindow.py:86
-#, fuzzy
-msgid "Edit"
-msgstr "/Modifica"
-
-#: EditWindow.py:88
-#, fuzzy
-msgid "Options"
-msgstr "/Opzioni"
-
-#: EditWindow.py:89 EditWindow.py:207
-msgid "Help"
-msgstr "Aiuto"
-
-#: EditWindow.py:208
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-
-#: EditWindow.py:222
-msgid "Replace"
-msgstr "Sostituisci"
-
-#: EditWindow.py:223
-msgid "Search"
-msgstr "Cerca"
-
-#: EditWindow.py:224
-#, fuzzy
-msgid "Save As"
-msgstr "Salva"
-
-#: EditWindow.py:226
-msgid "Up"
-msgstr "Apri directory"
-
-#: EditWindow.py:279
-msgid "Line %s of %d"
-msgstr ""
-
-#: EditWindow.py:286
-msgid "One character selected (%s)"
-msgstr ""
-
-#: EditWindow.py:289
-msgid "%d characters selected"
-msgstr ""
-
-#: EditWindow.py:291
-msgid "%d lines selected"
-msgstr ""
-
-#: EditWindow.py:434
-msgid "Untitled"
-msgstr ""
-
-#: EditWindow.py:462
-#, fuzzy
-msgid "Encoding:"
-msgstr "/Modifica"
-
-#: EditWindow.py:468
-msgid "Ignore errors"
-msgstr ""
-
-#: EditWindow.py:494
-#, fuzzy
-msgid "Unknown encoding '%s'"
-msgstr "Codifica % sconosciuta"
-
-#: EditWindow.py:518
-#, fuzzy
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr "I dati non sono %s validi. Scegliere la codifica del file."
-
-#: EditWindow.py:559
-msgid "File is not saved to disk yet"
-msgstr "Il file non è ancora stato salvato sul disco"
-
-#: EditWindow.py:564
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-
-#: EditWindow.py:761
-msgid "Minibuffer help"
-msgstr "Aiuto del Minibuffer"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr ""
-
-#: diff.py:129
-msgid "There is no difference between this version and the saved one."
-msgstr ""
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "Vai alla riga:"
-
-#: goto.py:12
-#, fuzzy
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr ""
-"Scrivi il numero della riga alla quale andare. Le righe iniziano dalla "
-"numero 1.\n"
-"Premi ESC per annullare, oppure INVIO per andare alla riga scelta."
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "Numero di riga non valido: %"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr ""
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr ""
-
-#: search.py:8
-msgid "Any character listed (- must be first)"
-msgstr ""
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr ""
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr ""
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr ""
-
-#: search.py:12
-msgid "One or more A"
-msgstr ""
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr ""
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr ""
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr ""
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr ""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr ""
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr ""
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr ""
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr ""
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr ""
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr ""
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr ""
-
-#: search.py:24
-msgid "Others"
-msgstr ""
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr ""
-
-#: search.py:26
-msgid "Examples:"
-msgstr ""
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr ""
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr ""
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr ""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr ""
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr ""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr ""
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr ""
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr ""
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr ""
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr ""
-
-#: search.py:56
-msgid "Find Next"
-msgstr ""
-
-#: search.py:61
-msgid "Find Previous"
-msgstr ""
-
-#: search.py:66
-msgid "Match case"
-msgstr ""
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-
-#: search.py:85
-msgid " Find: "
-msgstr ""
-
-#: search.py:160
-#, fuzzy
-msgid "Code"
-msgstr "Chiudi"
-
-#: search.py:162
-msgid "Meaning"
-msgstr ""
-
-#: search.py:213
-#, fuzzy
-msgid "Replace:"
-msgstr "Sostituisci"
-
-#: search.py:214
-msgid "With:"
-msgstr ""
-
-#: search.py:221
-#, fuzzy
-msgid "Advanced search and replace"
-msgstr "/Modifica/Cerca e Sotituisci"
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr ""
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr ""
-
-#: search.py:297
-msgid "Search string not found"
-msgstr ""
-
-#: search.py:301
-msgid "One line changed"
-msgstr ""
-
-#: search.py:303
-msgid "%d lines changed"
-msgstr ""
-
-#: tips:1
-msgid "Display"
-msgstr ""
-
-#: tips:2
-msgid "Fonts"
-msgstr ""
-
-#: tips:3
-msgid "Text font"
-msgstr ""
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr ""
-
-#: tips:6
-#, fuzzy
-msgid "Colours"
-msgstr "Chiudi"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr ""
-
-#: tips:8
-msgid "Background colour"
-msgstr ""
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr ""
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr ""
-
-#: tips:13
-msgid "Toolbar"
-msgstr ""
-
-#: tips:14
-msgid "Show toolbar"
-msgstr ""
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr ""
-
-#: tips:18
-msgid "Spacing"
-msgstr ""
-
-#: tips:19
-msgid "Margins"
-msgstr ""
-
-#: tips:20
-msgid "pixels for left margin, and for the right:"
-msgstr ""
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr ""
-
-#: tips:22
-msgid "Paragraphs"
-msgstr ""
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr ""
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr ""
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr ""
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr ""
-
-#: tips:31
-#, fuzzy
-msgid "Editing"
-msgstr "/Modifica"
-
-#: tips:32
-msgid "Indentation"
-msgstr ""
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr ""
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr ""
-
-#: tips:35
-msgid "Show Print Margin"
-msgstr ""
-
-#: tips:36
-msgid "Print Margin"
-msgstr ""
-
-#: tips:37 tips:43
-msgid "characters"
-msgstr ""
-
-#: tips:38
-msgid "Smart Home/End"
-msgstr ""
-
-#: tips:39
-msgid "Show Line Numbers"
-msgstr ""
-
-#: tips:40
-msgid "Show Line Markers"
-msgstr ""
-
-#: tips:41
-msgid "Use spaces instead of Tabs"
-msgstr ""
-
-#: tips:42
-msgid "Tab width"
-msgstr ""
-
-#: tips:44
-msgid "Changes"
-msgstr ""
-
-#: tips:45
-msgid "Colours for Show Changes feature"
-msgstr ""
-
-#: tips:46 tips:50 tips:54 tips:58
-msgid "Foreground"
-msgstr ""
-
-#: tips:47 tips:51 tips:55 tips:59
-msgid "Background"
-msgstr ""
-
-#: tips:48 tips:49
-msgid "(headers)"
-msgstr ""
-
-#: tips:52 tips:53
-msgid "(no change)"
-msgstr ""
-
-#: tips:56 tips:57
-msgid "(additions)"
-msgstr ""
-
-#: tips:60 tips:61 tips:62 tips:63 tips:64
-msgid "(deletions)"
-msgstr ""
-
-#~ msgid "/File/"
-#~ msgstr "/File/"
-
-#~ msgid "/Edit/"
-#~ msgstr "/Modifica/"
-
-#~ msgid "/Help"
-#~ msgstr "/Aiuto"
-
-#~ msgid "Edit requires ROX-Lib2 1.9.8 or later"
-#~ msgstr "Edit necessita di ROX-Lib2 1.9.8 o più recente"
-
-#~ msgid "/File/Save"
-#~ msgstr "/File/Salva"
-
-#~ msgid "/File/Close"
-#~ msgstr "/File/Chiudi"
-
-#~ msgid "/File/New"
-#~ msgstr "/File/Nuovo"
-
-#~ msgid "/Edit/Cut"
-#~ msgstr "/Modifica/Taglia"
-
-#~ msgid "/Edit/Copy"
-#~ msgstr "/Modifica/Copia"
-
-#~ msgid "/Edit/Undo"
-#~ msgstr "/Modifica/Annulla"
-
-#~ msgid "/Edit/Redo"
-#~ msgstr "/Modifica/Ripeti"
-
-#~ msgid "/Edit/Search..."
-#~ msgstr "/Modifica/Cerca..."
-
-#~ msgid "/Edit/Goto line..."
-#~ msgstr "/Modifica/Vai alla riga..."
-
-#~ msgid "Turn on 'ignore errors' to try and load it anyway."
-#~ msgstr "Attiva 'ignora errori' per per provare a caricarlo comunque"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/tips.py b/source/rox-extra/edit/edit-2.0/Edit/Messages/tips.py
deleted file mode 100644
index 19e9592..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/tips.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# Grab the tips from Options.xml
-
-from xmllib import *
-import string, os
-
-print "Extracting translatable bits from Options.xml..."
-
-class Parser(XMLParser):
- data = ""
-
- def unknown_starttag(self, tag, attrs):
- for x in ['title', 'label', 'end', 'unit']:
- if attrs.has_key(x):
- self.trans(attrs[x])
- self.data = ""
-
- def handle_data(self, data):
- self.data = self.data + data
-
- def unknown_endtag(self, tag):
- data = string.strip(self.data)
- if data:
- self.trans(data)
-
- def trans(self, data):
- data = string.join(string.split(data, '\n'), '\\n')
- if data:
- out.write('_("%s")\n' % data)
-
-try:
- os.chdir("po")
-except OSError:
- pass
-
-file = open('../Options.xml', 'rb')
-out = open('../tips', 'wb')
-parser = Parser()
-parser.feed(file.read())
-file.close()
-parser.close()
-out.close()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/update-po b/source/rox-extra/edit/edit-2.0/Edit/Messages/update-po
deleted file mode 100755
index dba7ff2..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/update-po
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-echo Extracting messages from source files...
-echo
-
-python ./tips.py
-(cd ..; pygettext *.py tips)
-
-echo
-echo Updating all .po files...
-echo
-
-for FILE in *.po; do
- echo -n "Updating '$FILE' translation"
- mv $FILE $FILE.old
- msgmerge $FILE.old ../messages.pot > $FILE
-done
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.gmo
deleted file mode 100644
index bab9d21..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.po
deleted file mode 100644
index 2bbf17f..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_CN.po
+++ /dev/null
@@ -1,601 +0,0 @@
-# Rox Edit Chinese Tranalation.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2005-07-10 21:57+HKT\n"
-"PO-Revision-Date: 2005-07-10 18:55+1\n"
-"Last-Translator: Babyfai Cheung <babyfai1 at yahoo.com.hk>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.4\n"
-
-#: EditWindow.py:81
-msgid "Cut"
-msgstr "åªä¸"
-
-#: EditWindow.py:82
-msgid "Copy"
-msgstr "å¤å¶"
-
-#: EditWindow.py:83
-msgid "Paste"
-msgstr "è´´ä¸"
-
-#: EditWindow.py:85 EditWindow.py:259
-msgid "Undo"
-msgstr "è¿å"
-
-#: EditWindow.py:86 EditWindow.py:258
-msgid "Redo"
-msgstr "éå"
-
-#: EditWindow.py:88
-msgid "Search..."
-msgstr "æå¯»..."
-
-#: EditWindow.py:89
-msgid "Search and Replace...."
-msgstr "æå¯»åå代..."
-
-#: EditWindow.py:91
-msgid "Goto line..."
-msgstr "è·³è³è¡æ°..."
-
-#: EditWindow.py:96
-msgid "Toggle Bookmark"
-msgstr "æ è®°æ¤è¡"
-
-#: EditWindow.py:97
-msgid "Next Bookmark"
-msgstr "ä¸ä¸ªæ è®°"
-
-#: EditWindow.py:98
-msgid "Previous Bookmark"
-msgstr "ä¸ä¸ªæ è®°"
-
-#: EditWindow.py:105
-msgid "File"
-msgstr "æä»¶"
-
-#: EditWindow.py:106 EditWindow.py:263
-msgid "Save"
-msgstr "å¨å"
-
-#: EditWindow.py:107
-msgid "Save As..."
-msgstr "å¦å为..."
-
-#: EditWindow.py:108
-msgid "Open Parent"
-msgstr "å¾ä¸ç®å½"
-
-#: EditWindow.py:109
-msgid "Show Changes"
-msgstr "æ¾ç¤ºæ¹å"
-
-#: EditWindow.py:110 EditWindow.py:255 tips:9
-msgid "Word Wrap"
-msgstr "èªå¨æ¢è¡"
-
-#: EditWindow.py:111 EditWindow.py:265
-msgid "Close"
-msgstr "å
³é"
-
-#: EditWindow.py:113
-msgid "New"
-msgstr "æ°å¢"
-
-#: EditWindow.py:115
-msgid "Edit"
-msgstr "ç¼è¾"
-
-#: EditWindow.py:117
-msgid "Options"
-msgstr "é项"
-
-#: EditWindow.py:118 EditWindow.py:238
-msgid "Help"
-msgstr "帮å©"
-
-#: EditWindow.py:239
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-"æ¾ç¤ºå·²ä½åå¨åçæ¹å.\n"
-"æå°å¤ä»½æä»¶ï¼ææ¾å°è¿æé®ä¸ä»¥æ£è§æ¹åã"
-
-#: EditWindow.py:249
-msgid "Check Spelling"
-msgstr "æ£æ¥å串æ¼å"
-
-#: EditWindow.py:260
-msgid "Replace"
-msgstr "å代"
-
-#: EditWindow.py:261
-msgid "Search"
-msgstr "æå¯»"
-
-#: EditWindow.py:262
-msgid "Save As"
-msgstr "å¦å为"
-
-#: EditWindow.py:264
-msgid "Up"
-msgstr "å¾ä¸"
-
-#: EditWindow.py:323
-msgid "Line %s of %d"
-msgstr "è¡ %s æ»æ° %d"
-
-#: EditWindow.py:330
-msgid "One character selected (%s)"
-msgstr "éæ©äºä¸ä¸ªå符 (%s)"
-
-#: EditWindow.py:333
-msgid "%d characters selected"
-msgstr "%d 个åç¬¦å·²éæ©"
-
-#: EditWindow.py:335
-msgid "%d lines selected"
-msgstr "%d è¡æ°å·²éæ©"
-
-#: EditWindow.py:502
-msgid "Untitled"
-msgstr "æªå½å"
-
-#: EditWindow.py:530
-msgid "Encoding:"
-msgstr "ç¼ç ï¼"
-
-#: EditWindow.py:536
-msgid "Ignore errors"
-msgstr "忽ç¥é误"
-
-#: EditWindow.py:562
-msgid "Unknown encoding '%s'"
-msgstr "䏿ç¼ç '%s'"
-
-#: EditWindow.py:586
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr "èµæä¸æ¯ %s. è¯·éæ©æ£ç¡®çç¼ç ï¼å¯ç¨ '忽ç¥é误' 以å°è¯æå¼ã"
-
-#: EditWindow.py:627
-msgid "File is not saved to disk yet"
-msgstr "æä»¶å°æªå¨å"
-
-#: EditWindow.py:648
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-"è¿æä»¶è¿æªå¨åï¼å æ¤æ²¡æ³è¿è¡æ¯è¾ï¼\n"
-"注æï¼æ¨å¯ææ¾æä»¶å°å·¥å
·æ çæé®ä¸ï¼æ¥æ¥çå·²æ´æ¹çèµæã"
-
-#: EditWindow.py:697
-msgid "TextFile"
-msgstr "æåæä»¶"
-
-#: EditWindow.py:845
-msgid "Minibuffer help"
-msgstr "å°å叮婿¡"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr "%s çæ¹å"
-
-#: diff.py:128
-msgid "There is no difference between this version and the saved one."
-msgstr "没æä¸ç¸åçå°æ¹ã"
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "è·³è³è¡æ°ï¼"
-
-#: goto.py:12
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr "é®å
¥è¡æ°æ°åï¼è¡æ°èµ·å§ä¸º 1ãæ Escape ä»¥åæ¶ï¼ææ Enter 以跳è³è¯¥è¡ã"
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "é误çè¡æ°ï¼%s"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr "对åºä»»ä½å符"
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr "ä»»ä½å°é¶åæ¯"
-
-#: search.py:8
-msgid "Any character listed (- must be first)"
-msgstr "ä»»ä¸ååºå符 (- å¿
é¡»åæ)"
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr "A å¨è¡çæå"
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr "A å¨è¡çæå"
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr "é¶ææ´å¤ A"
-
-#: search.py:12
-msgid "One or more A"
-msgstr "䏿æ´å¤ A"
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr "é¶æä¸ä¸ª A"
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr "å¯¹åº m ä¸ n ä¹é´ç A"
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr "å
å« *, +, ? å {} ççæ¬"
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr "æ£å¸¸å符 \"*\", \"+\""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr "è½å¯¹åº A æ B"
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr "A å B ä¸åå¹é
(ç¨æ¼ *, \\1, çç)"
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr "å¹é
æ¬å¼§å
第ä¸/æç¬¬äºä¸ªå符 (é¡»ç¨æ¼: ç忬弧å
)"
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr "å¹é
å«è¾¹æ²¿çæ´å (eg, \\bWord\\b)"
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr "å¹é
æ´åå
ä¸å¨è¾¹æ²¿çå符"
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr "æ°åï¼éæ°å"
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr "空ç½ï¼é空ç½"
-
-#: search.py:24
-msgid "Others"
-msgstr "å
¶ä»"
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr "详æ
请åé
Python æ£åè¡¨è¾¾æ³ææ¬"
-
-#: search.py:26
-msgid "Examples:"
-msgstr "举ä¾ï¼"
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr "ä»»ä½å¯¹åº \"Fred\" "
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr "ä¸è¡å
åªå
å« \"Fred\""
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr "\"Gogle, Google, Gooogle, çç\""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr "Colour æ Color"
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr "\"The\" æ \"the\""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr "Python æ£å表达æ³ï¼"
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr "å¹é
çæå"
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr "'old' çæ°å¼"
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr "å°å¹é
çæå转为大é¶åæ¯"
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr "å°å¹é
çæ°å¼å å"
-
-#: search.py:56
-msgid "Find Next"
-msgstr "æ¾å¯»ä¸ä¸ä¸ª"
-
-#: search.py:61
-msgid "Find Previous"
-msgstr "æ¾å¯»ä¸ä¸ä¸ª"
-
-#: search.py:66
-msgid "Match case"
-msgstr "å¹é
大å°é¶"
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-"é®å
¥è¦å¯»æ¾çå串ï¼å¹é
çå°ä¼ä»¥å·å¨å弿¾ç¤ºï¼ç¨å¾ä¸æå¾ä¸çç®å鮿¥æµè§ç»æï¼"
-"æEscape æ Return ç»æã"
-
-#: search.py:85
-msgid " Find: "
-msgstr "æ¾å¯»ï¼"
-
-#: search.py:160
-msgid "Code"
-msgstr "代ç "
-
-#: search.py:162
-msgid "Meaning"
-msgstr "注é"
-
-#: search.py:213
-msgid "Replace:"
-msgstr "å代ï¼"
-
-#: search.py:214
-msgid "With:"
-msgstr "æ¢ä¸ºï¼"
-
-#: search.py:221
-msgid "Advanced search and replace"
-msgstr "è¿é¶æå¯»åå代"
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr "以 Python æ£å表达æ³é´å®"
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr "请å
ææéè¦æå¯»çç®æ ..."
-
-#: search.py:297
-msgid "Search string not found"
-msgstr "æ¾ä¸å°è¦æå¯»çå串"
-
-#: search.py:301
-msgid "One line changed"
-msgstr "ä¸è¡å·²æ¹å"
-
-#: search.py:303
-msgid "%d lines changed"
-msgstr "%d è¡æ°å·²æ¹å"
-
-#: tips:1
-msgid "Display"
-msgstr "æ¾ç¤º"
-
-#: tips:2
-msgid "Fonts"
-msgstr "åå"
-
-#: tips:3
-msgid "Text font"
-msgstr "å
æåå"
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr "ä¸è¬å
æçåå"
-
-#: tips:6
-msgid "Colours"
-msgstr "é¢è²"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr "æåé¢è²"
-
-#: tips:8
-msgid "Background colour"
-msgstr "èæ¯é¢è²"
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr "对è¿é¿æåçè¡æ¢è¡"
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr "å½å
æçåè¡æ¯çªå£è¦é¿æ¶ï¼ä¼æ¢å°ä¸ä¸è¡æ¥æ¾ç¤º."
-
-#: tips:13
-msgid "Toolbar"
-msgstr "å·¥å
·æ "
-
-#: tips:14
-msgid "Show toolbar"
-msgstr "æ¾ç¤ºå·¥å
·æ "
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr "å¨é¡¶ç«¯æ¾ç¤ºå·¥å
·æ "
-
-#: tips:18
-msgid "Spacing"
-msgstr "åè·"
-
-#: tips:19
-msgid "Margins"
-msgstr "è¾¹ç"
-
-#: tips:20
-msgid "pixels for left margin, and for the right:"
-msgstr "åç´ å·¦é¢è¾¹çï¼åå³é¢è¾¹çï¼"
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr "åç´ "
-
-#: tips:22
-msgid "Paragraphs"
-msgstr "段è½"
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr "对æ¯ä¸æ®µè½é´çè·ç¦»"
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr "对æ¯ä¸æ®µè½é´çè·ç¦»"
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr "段è½é´çè¡è·"
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr "æ¢æ°æ®µè½æ¶ç¼©æ"
-
-#: tips:31
-msgid "Editing"
-msgstr "ç¼è¾"
-
-#: tips:32
-msgid "Indentation"
-msgstr "缩æ"
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr "èªå¨ç¼©æ"
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr "å½æä¸ Return é®ï¼ä¸ä¸è¡å¼å§çä½ç½®ï¼ä¼èªè¡ç¼©æè´è·ä¸è¡ä¸æ ·ã"
-
-#: tips:35
-msgid "You need the gtksourceview Python module to use these"
-msgstr "æ¨é¡»å®è£
gtksourceview Python æ¨¡ç»æå¯å¯ç¨è¿äºåè½"
-
-#: tips:36
-msgid "Show Print Margin"
-msgstr "æ¾ç¤ºå¯åå°è¾¹ç"
-
-#: tips:37
-msgid "Draw a line to show the right margin for printing."
-msgstr "å¨å³è¾¹å¯åå°è¾¹çä¸ç»åºä¸æ¡ç´çº¿"
-
-#: tips:38
-msgid "Print Margin"
-msgstr "å¯åå°è¾¹ç"
-
-#: tips:39 tips:49
-msgid "characters"
-msgstr "å符"
-
-#: tips:40
-msgid "Smart Home/End"
-msgstr "ä¼å Home/End æé® "
-
-#: tips:41
-msgid "Move to the first/last actual character on the line, ignoring spaces."
-msgstr "ç§»å°æ¯è¡ç æå/æå çå符ï¼å¹¶å¿½ç¥ç©ºæ ¼ã"
-
-#: tips:42
-msgid "Show Line Numbers"
-msgstr "æ¾ç¤ºè¡å·"
-
-#: tips:43
-msgid "Add a column on the far left showing line numbers."
-msgstr "å¨æå·¦è¾¹å ä¸ä¸åç©ºé´æ¥æ¾ç½®è¡å·ã"
-
-#: tips:44
-msgid "Show Bookmarks"
-msgstr "æ¾ç¤ºæ è®°"
-
-#: tips:45
-msgid "Add a column in the left margin showing which lines are bookmarked."
-msgstr "å¨æå·¦è¾¹å ä¸ä¸åç©ºé´æ¥æ¾ç¤ºè¢«æ è®°çè¡å·ã"
-
-#: tips:46
-msgid "Use spaces instead of Tabs"
-msgstr "ä¼å Tab é®è¾åº"
-
-#: tips:47
-msgid ""
-"Pressing the Tab key inserts multiple spaces, instead of a single Tab "
-"character."
-msgstr "彿 Tab 鮿¶å¯å为èªå¨è¾åºå¤ä¸ªç©ºæ ¼å符ã"
-
-#: tips:48
-msgid "Tab width"
-msgstr "Tab 宽度"
-
-#: tips:50 tips:51 tips:52 tips:53
-msgid ""
-"Show one tab as this number of spaces or, when 'Use spaces instead of Tabs' "
-"is on, insert this many spaces."
-msgstr "设å®å¨æ Tab 鮿¶å¯è¾åºçç©ºæ ¼æ°ç®ã"
-
-#: tips:54
-msgid "Changes"
-msgstr "åæ´"
-
-#: tips:55
-msgid "Colours for Show Changes feature"
-msgstr "ç¨ä»¥æ¾ç¤ºåæ´çé¢è²"
-
-#: tips:56 tips:60 tips:64 tips:68
-msgid "Foreground"
-msgstr "æå"
-
-#: tips:57 tips:61 tips:65 tips:69
-msgid "Background"
-msgstr "èæ¯"
-
-#: tips:58 tips:59
-msgid "(headers)"
-msgstr "(æ é¢)"
-
-#: tips:62 tips:63
-msgid "(no change)"
-msgstr "(æ²¡ææ¹å)"
-
-#: tips:66 tips:67
-msgid "(additions)"
-msgstr "(éå )"
-
-#: tips:70 tips:71 tips:72 tips:73 tips:74
-msgid "(deletions)"
-msgstr "(å é¤)"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.gmo b/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.gmo
deleted file mode 100644
index 22a7d5a..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.gmo and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.po b/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.po
deleted file mode 100644
index f8179a8..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Messages/zh_TW.po
+++ /dev/null
@@ -1,601 +0,0 @@
-# Rox Edit Chinese Tranalation.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2005-07-10 21:57+HKT\n"
-"PO-Revision-Date: 2005-07-10 18:55+1\n"
-"Last-Translator: Babyfai Cheung <babyfai1 at yahoo.com.hk>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.4\n"
-
-#: EditWindow.py:81
-msgid "Cut"
-msgstr "åªä¸"
-
-#: EditWindow.py:82
-msgid "Copy"
-msgstr "è¤è£½"
-
-#: EditWindow.py:83
-msgid "Paste"
-msgstr "è²¼ä¸"
-
-#: EditWindow.py:85 EditWindow.py:259
-msgid "Undo"
-msgstr "éå"
-
-#: EditWindow.py:86 EditWindow.py:258
-msgid "Redo"
-msgstr "éå"
-
-#: EditWindow.py:88
-msgid "Search..."
-msgstr "æå°..."
-
-#: EditWindow.py:89
-msgid "Search and Replace...."
-msgstr "æå°åå代..."
-
-#: EditWindow.py:91
-msgid "Goto line..."
-msgstr "è·³è³è¡æ¸..."
-
-#: EditWindow.py:96
-msgid "Toggle Bookmark"
-msgstr "æ¨è¨æ¤è¡"
-
-#: EditWindow.py:97
-msgid "Next Bookmark"
-msgstr "ä¸åæ¨è¨"
-
-#: EditWindow.py:98
-msgid "Previous Bookmark"
-msgstr "ä¸åæ¨è¨"
-
-#: EditWindow.py:105
-msgid "File"
-msgstr "æªæ¡"
-
-#: EditWindow.py:106 EditWindow.py:263
-msgid "Save"
-msgstr "å²å"
-
-#: EditWindow.py:107
-msgid "Save As..."
-msgstr "å¦åçº..."
-
-#: EditWindow.py:108
-msgid "Open Parent"
-msgstr "å¾ä¸ç®é"
-
-#: EditWindow.py:109
-msgid "Show Changes"
-msgstr "顯示æ¹è®"
-
-#: EditWindow.py:110 EditWindow.py:255 tips:9
-msgid "Word Wrap"
-msgstr "èªåæè¡"
-
-#: EditWindow.py:111 EditWindow.py:265
-msgid "Close"
-msgstr "éé"
-
-#: EditWindow.py:113
-msgid "New"
-msgstr "æ°å¢"
-
-#: EditWindow.py:115
-msgid "Edit"
-msgstr "編輯"
-
-#: EditWindow.py:117
-msgid "Options"
-msgstr "é¸é
"
-
-#: EditWindow.py:118 EditWindow.py:238
-msgid "Help"
-msgstr "說æ"
-
-#: EditWindow.py:239
-msgid ""
-"Show changes from saved copy.\n"
-"Or, drop a backup file onto this button to see changes from that."
-msgstr ""
-"顯示已ä½åå²åçæ¹è®ã\n"
-"æå°åä»½æªæ¡ï¼ææ¾å°éæéä¸ä»¥æª¢è¦æ¹è®ã"
-
-#: EditWindow.py:249
-msgid "Check Spelling"
-msgstr "檢æ¥å串æ¼å¯«"
-
-#: EditWindow.py:260
-msgid "Replace"
-msgstr "å代"
-
-#: EditWindow.py:261
-msgid "Search"
-msgstr "æå°"
-
-#: EditWindow.py:262
-msgid "Save As"
-msgstr "å¦åçº"
-
-#: EditWindow.py:264
-msgid "Up"
-msgstr "å¾ä¸"
-
-#: EditWindow.py:323
-msgid "Line %s of %d"
-msgstr "è¡ %s ç¸½æ¸ %d"
-
-#: EditWindow.py:330
-msgid "One character selected (%s)"
-msgstr "鏿äºä¸åå符 (%s)"
-
-#: EditWindow.py:333
-msgid "%d characters selected"
-msgstr "%d ååç¬¦å·²é¸æ"
-
-#: EditWindow.py:335
-msgid "%d lines selected"
-msgstr "%d è¡æ¸å·²é¸æ"
-
-#: EditWindow.py:502
-msgid "Untitled"
-msgstr "æªå½å"
-
-#: EditWindow.py:530
-msgid "Encoding:"
-msgstr "編碼ï¼"
-
-#: EditWindow.py:536
-msgid "Ignore errors"
-msgstr "忽ç¥é¯èª¤"
-
-#: EditWindow.py:562
-msgid "Unknown encoding '%s'"
-msgstr "ä¸æç·¨ç¢¼ '%s'"
-
-#: EditWindow.py:586
-msgid ""
-"Data is not valid %s. Please select the file's encoding. Turn on 'ignore "
-"errors' to try and load it anyway."
-msgstr "è³æä¸æ¯ %sãè«é¸ææ£ç¢ºç編碼ï¼åç¨ '忽ç¥é¯èª¤' 以å試æéã"
-
-#: EditWindow.py:627
-msgid "File is not saved to disk yet"
-msgstr "æªæ¡å°æªå²å"
-
-#: EditWindow.py:648
-msgid ""
-"This file has never been saved; nothing to compare it to!\n"
-"Note: you can drop a file onto the toolbar button to see the changes from "
-"that file."
-msgstr ""
-"éæªæ¡éæªå²åï¼å æ¤æ²æ³é²è¡æ¯è¼ï¼\n"
-"注æï¼æ¨å¯ææ¾æªæ¡å°å·¥å
·æ¬çæéä¸ï¼ä¾æ¥çå·²æ´æ¹çè³æã"
-
-#: EditWindow.py:697
-msgid "TextFile"
-msgstr "æåæªæ¡"
-
-#: EditWindow.py:845
-msgid "Minibuffer help"
-msgstr "å°å幫婿¡"
-
-#: diff.py:78
-msgid "Changes to %s"
-msgstr "%s çæ¹è®"
-
-#: diff.py:128
-msgid "There is no difference between this version and the saved one."
-msgstr "æ²æä¸ç¸åçå°æ¹ã"
-
-#: goto.py:10
-msgid "Goto line:"
-msgstr "è·³è³è¡æ¸ï¼"
-
-#: goto.py:12
-msgid ""
-"Enter the line number to go to. Line numbers start from 1. Press Escape to "
-"cancel, or Return to jump to the line."
-msgstr "éµå
¥è¡æ¸æ¸åï¼è¡æ¸èµ·å§çº 1ãæ Escape ä»¥åæ¶ï¼ææ Enter 以跳è³è©²è¡ã"
-
-#: goto.py:22
-msgid "Invalid line number: %s"
-msgstr "é¯èª¤çè¡æ¸ï¼%s"
-
-#: search.py:6
-msgid "Matches any character"
-msgstr "å°æä»»ä½å符"
-
-#: search.py:7
-msgid "Any lowercase letter"
-msgstr "ä»»ä½å°é忝"
-
-#: search.py:8
-msgid "Any character listed (- must be first)"
-msgstr "ä»»ä¸ååºå符 (- å¿
é åæ)"
-
-#: search.py:9
-msgid "A only at the start of a line"
-msgstr "A å¨è¡çæå"
-
-#: search.py:10
-msgid "A only at the end of a line"
-msgstr "A å¨è¡çæå¾"
-
-#: search.py:11
-msgid "Zero or more A"
-msgstr "é¶ææ´å¤ A"
-
-#: search.py:12
-msgid "One or more A"
-msgstr "䏿æ´å¤ A"
-
-#: search.py:13
-msgid "Zero or one A"
-msgstr "é¶æä¸å A"
-
-#: search.py:14
-msgid "Between m and n matches of A"
-msgstr "å°æ m è n ä¹éç A"
-
-#: search.py:15
-msgid "Non-greedy versions of *, +, ? and {}"
-msgstr "å
å« *, +, ? å {} ççæ¬"
-
-#: search.py:16
-msgid "Literal \"*\", \"+\""
-msgstr "æ£å¸¸å符 \"*\", \"+\""
-
-#: search.py:17
-msgid "Can match A or B"
-msgstr "è½å°æ A æ B"
-
-#: search.py:18
-msgid "Group A and B together (for *, \\1, etc)"
-msgstr "A å B ä¸åå¹é
(ç¨æ¼ *, \\1, çç)"
-
-#: search.py:19
-msgid "The first/second bracketed match (goes in the With: box)"
-msgstr "å¹é
æ¬å¼§å
§ç¬¬ä¸/æç¬¬äºåå符 (é ç¨æ¼: ç忬弧å
§)"
-
-#: search.py:20
-msgid "Word boundary (eg, \\bWord\\b)"
-msgstr "å¹é
å«éæ²¿çæ´å (eg, \\bWord\\b)"
-
-#: search.py:21
-msgid "Non-word boundary"
-msgstr "å¹é
æ´åå
§ä¸å¨é沿çå符"
-
-#: search.py:22
-msgid "Digit, non-digit"
-msgstr "æ¸åï¼éæ¸å"
-
-#: search.py:23
-msgid "Whitespace, non-whitespace"
-msgstr "空ç½ï¼é空ç½"
-
-#: search.py:24
-msgid "Others"
-msgstr "å
¶ä»"
-
-#: search.py:24
-msgid "See the Python regular expression documentation for more"
-msgstr "詳æ
è«åé± Python æ£åè¡¨éæ³ææ¬"
-
-#: search.py:26
-msgid "Examples:"
-msgstr "èä¾ï¼"
-
-#: search.py:27
-msgid "Matches \"Fred\" anywhere"
-msgstr "ä»»ä½å°æ \"Fred\" "
-
-#: search.py:28
-msgid "A line containing only \"Fred\""
-msgstr "ä¸è¡å
§åªå
å« \"Fred\""
-
-#: search.py:29
-msgid "\"Gogle, Google, Gooogle, etc\""
-msgstr "\"Gogle, Google, Gooogle, çç\""
-
-#: search.py:30
-msgid "Colour or Color"
-msgstr "Colour æ Color"
-
-#: search.py:31
-msgid "\"The\" or \"the\""
-msgstr "\"The\" æ \"the\""
-
-#: search.py:35
-msgid "Python expressions:"
-msgstr "Python æ£åè¡¨éæ³ï¼"
-
-#: search.py:36
-msgid "The text that was matched"
-msgstr "å¹é
çæå"
-
-#: search.py:37
-msgid "The numerical value of 'old'"
-msgstr "'old' çæ¸å¼"
-
-#: search.py:38
-msgid "Convert match to uppercase"
-msgstr "å°å¹é
çæåè½çºå¤§é忝"
-
-#: search.py:39
-msgid "Double all matched numbers"
-msgstr "å°å¹é
çæ¸å¼å å"
-
-#: search.py:56
-msgid "Find Next"
-msgstr "æ¾å°ä¸ä¸å"
-
-#: search.py:61
-msgid "Find Previous"
-msgstr "æ¾å°ä¸ä¸å"
-
-#: search.py:66
-msgid "Match case"
-msgstr "å¹é
大å°é"
-
-#: search.py:80
-msgid ""
-"Type a string to search for. The display will scroll to show the next match "
-"as you type. Use the Up and Down cursor keys to move to the next or previous "
-"match. Press Escape or Return to finish."
-msgstr ""
-"éµå
¥è¦å°æ¾çå串ï¼å¹é
ç尿以å·ååå¼é¡¯ç¤ºï¼ç¨å¾ä¸æå¾ä¸çç®åéµä¾çè¦½çµæï¼"
-"æEscape æ Return çµæã"
-
-#: search.py:85
-msgid " Find: "
-msgstr " æ¾å°ï¼"
-
-#: search.py:160
-msgid "Code"
-msgstr "代碼"
-
-#: search.py:162
-msgid "Meaning"
-msgstr "註é"
-
-#: search.py:213
-msgid "Replace:"
-msgstr "å代ï¼"
-
-#: search.py:214
-msgid "With:"
-msgstr "æçºï¼"
-
-#: search.py:221
-msgid "Advanced search and replace"
-msgstr "é²éæå°åå代"
-
-#: search.py:229
-msgid "Evaluate 'With' as Python expression"
-msgstr "以 Python æ£åè¡¨éæ³éå®"
-
-#: search.py:252
-msgid "You need to specify something to search for..."
-msgstr "è«å
ææéè¦æå°çç®æ¨..."
-
-#: search.py:297
-msgid "Search string not found"
-msgstr "æ¾ä¸å°è¦æå°çå串"
-
-#: search.py:301
-msgid "One line changed"
-msgstr "ä¸è¡å·²æ¹è®"
-
-#: search.py:303
-msgid "%d lines changed"
-msgstr "%d è¡æ¸å·²æ¹è®"
-
-#: tips:1
-msgid "Display"
-msgstr "顯示"
-
-#: tips:2
-msgid "Fonts"
-msgstr "åå"
-
-#: tips:3
-msgid "Text font"
-msgstr "å
§æåå"
-
-#: tips:4 tips:5
-msgid "Font used for normal text."
-msgstr "ä¸è¬å
§æçåå"
-
-#: tips:6
-msgid "Colours"
-msgstr "é¡è²"
-
-#: tips:7
-msgid "Foreground colour"
-msgstr "æåé¡è²"
-
-#: tips:8
-msgid "Background colour"
-msgstr "èæ¯é¡è²"
-
-#: tips:10
-msgid "Wrap long lines of text"
-msgstr "å°éé·æåçè¡æè¡"
-
-#: tips:11 tips:12
-msgid ""
-"Control whether lines wider than the window are wrapped to multiple display "
-"lines."
-msgstr "ç¶å
§æçåè¡æ¯çªå£è¦é·æï¼ææå°ä¸ä¸è¡ä¾é¡¯ç¤ºã"
-
-#: tips:13
-msgid "Toolbar"
-msgstr "å·¥å
·æ¬"
-
-#: tips:14
-msgid "Show toolbar"
-msgstr "顯示工å
·æ¬"
-
-#: tips:15 tips:16 tips:17
-msgid "Display a toolbar along the top of each window with common tools."
-msgstr "å¨é 端顯示工å
·æ¬ã"
-
-#: tips:18
-msgid "Spacing"
-msgstr "åè·"
-
-#: tips:19
-msgid "Margins"
-msgstr "éç"
-
-#: tips:20
-msgid "pixels for left margin, and for the right:"
-msgstr "åç´ å·¦é¢éçï¼åå³é¢éçï¼"
-
-#: tips:21 tips:24 tips:26 tips:28 tips:30
-msgid "pixels"
-msgstr "åç´ "
-
-#: tips:22
-msgid "Paragraphs"
-msgstr "段è½"
-
-#: tips:23
-msgid "Space above paragraphs"
-msgstr "å°æ¯ä¸æ®µè½éçè·é¢"
-
-#: tips:25
-msgid "Space below paragraphs"
-msgstr "å°æ¯ä¸æ®µè½éçè·é¢"
-
-#: tips:27
-msgid "Line spacing within paragraphs"
-msgstr "段è½éçè¡è·"
-
-#: tips:29
-msgid "New-paragraph indent"
-msgstr "ææ°æ®µè½æç¸®æ"
-
-#: tips:31
-msgid "Editing"
-msgstr "編輯"
-
-#: tips:32
-msgid "Indentation"
-msgstr "縮æ"
-
-#: tips:33
-msgid "Automatic indentation"
-msgstr "èªå縮æ"
-
-#: tips:34
-msgid ""
-"When you press Return, the next line starts with the same amount of "
-"indentation as the previous line."
-msgstr "ç¶æä¸ Return éµï¼ä¸ä¸è¡éå§çä½ç½®ï¼æèªè¡ç¸®æè´è·ä¸è¡ä¸æ¨£ã"
-
-#: tips:35
-msgid "You need the gtksourceview Python module to use these"
-msgstr "æ¨é å®è£ gtksourceview Python æ¨¡çµæå¯åç¨éäºåè½ "
-
-#: tips:36
-msgid "Show Print Margin"
-msgstr "顯示å¯åå°éç"
-
-#: tips:37
-msgid "Draw a line to show the right margin for printing."
-msgstr "å¨å³éå¯åå°éçä¸ç¹ªåºä¸æ¢ç´ç·ã"
-
-#: tips:38
-msgid "Print Margin"
-msgstr "å¯åå°éç"
-
-#: tips:39 tips:49
-msgid "characters"
-msgstr "å符"
-
-#: tips:40
-msgid "Smart Home/End"
-msgstr "åªå Home/End æéµ"
-
-#: tips:41
-msgid "Move to the first/last actual character on the line, ignoring spaces."
-msgstr "ç§»å°æ¯è¡ç æå/æå¾ çå符ï¼ä¸¦å¿½ç¥ç©ºæ ¼ã"
-
-#: tips:42
-msgid "Show Line Numbers"
-msgstr "顯示è¡è"
-
-#: tips:43
-msgid "Add a column on the far left showing line numbers."
-msgstr "卿左éå ä¸ä¸å空é便¾ç½®è¡èã"
-
-#: tips:44
-msgid "Show Bookmarks"
-msgstr "顯示æ¨è¨"
-
-#: tips:45
-msgid "Add a column in the left margin showing which lines are bookmarked."
-msgstr "卿左éå ä¸ä¸å空éä¾é¡¯ç¤ºè¢«æ¨è¨çè¡èã"
-
-#: tips:46
-msgid "Use spaces instead of Tabs"
-msgstr "åªå Tab éµè¼¸åº"
-
-#: tips:47
-msgid ""
-"Pressing the Tab key inserts multiple spaces, instead of a single Tab "
-"character."
-msgstr "ç¶æ Tab 鵿å¯è®çºèªå輸åºå¤åç©ºæ ¼å符ã"
-
-#: tips:48
-msgid "Tab width"
-msgstr "Tab 寬度"
-
-#: tips:50 tips:51 tips:52 tips:53
-msgid ""
-"Show one tab as this number of spaces or, when 'Use spaces instead of Tabs' "
-"is on, insert this many spaces."
-msgstr "è¨å®å¨æ Tab 鵿å¯è¼¸åºçç©ºæ ¼æ¸ç®ã"
-
-#: tips:54
-msgid "Changes"
-msgstr "è®æ´"
-
-#: tips:55
-msgid "Colours for Show Changes feature"
-msgstr "ç¨ä»¥é¡¯ç¤ºè®æ´çé¡è²"
-
-#: tips:56 tips:60 tips:64 tips:68
-msgid "Foreground"
-msgstr "æå"
-
-#: tips:57 tips:61 tips:65 tips:69
-msgid "Background"
-msgstr "èæ¯"
-
-#: tips:58 tips:59
-msgid "(headers)"
-msgstr "(æ¨é¡)"
-
-#: tips:62 tips:63
-msgid "(no change)"
-msgstr "(æ²ææ¹è®)"
-
-#: tips:66 tips:67
-msgid "(additions)"
-msgstr "(éå )"
-
-#: tips:70 tips:71 tips:72 tips:73 tips:74
-msgid "(deletions)"
-msgstr "(åªé¤)"
diff --git a/source/rox-extra/edit/edit-2.0/Edit/Options.xml b/source/rox-extra/edit/edit-2.0/Edit/Options.xml
deleted file mode 100644
index 7f5c9b9..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/Options.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version='1.0'?>
-<options>
- <section title='Display'>
- <frame label='Fonts'>
- <font name='default_font' label='Text font'>
- Font used for normal text.
- </font>
- </frame>
-
- <frame label='Colours' size-group='colours'>
- <hbox>
- <colour name='foreground' label='Foreground colour'/>
- <colour name='background' label='Background colour'/>
- </hbox>
- </frame>
-
- <frame label='Word Wrap'>
- <toggle name='wordwrap' label='Wrap long lines of text'>
- Control whether lines wider than the window are wrapped to multiple display lines.
- </toggle>
- </frame>
- <frame label='Toolbar'>
- <toggle name='show_toolbar' label='Show toolbar'>Display a toolbar along the top of each window with common tools.</toggle>
- </frame>
-
- </section>
-
- <section title='Spacing'>
-
- <frame label='Margins'>
- <hbox>
- <numentry name='layout_left_margin' label='' min='0' max='100' unit='pixels for left margin, and for the right:'/>
- <numentry name='layout_right_margin' label='' min='0' max='100' unit='pixels'/>
- </hbox>
- </frame>
-
- <frame label='Paragraphs' size-group='para'>
- <numentry name='layout_before_para' label='Space above paragraphs'
- min='0' max='10' unit='pixels'/>
- <numentry name='layout_after_para' label='Space below paragraphs'
- min='0' max='10' unit='pixels'/>
- <numentry name='layout_inside_para' label='Line spacing within paragraphs'
- min='0' max='10' unit='pixels'/>
- <numentry name='layout_indent_para' label='New-paragraph indent'
- min='-100' max='100' unit='pixels'/>
- </frame>
- </section>
-
- <section title='Editing'>
- <frame label='Indentation'>
- <toggle name='autoindent' label='Automatic indentation'>
- When you press Return, the next line starts with the same amount of indentation as the previous line.
- </toggle>
- <source-view-only label='You need the gtksourceview Python module to use these'>
- <toggle name='show_margin' label='Show Print Margin'>Draw a line to show the right margin for printing.</toggle>
- <numentry name='right_margin' label='Print Margin' min='20' max='300' unit='characters'/>
- <toggle name='smart_home_end' label='Smart Home/End'>Move to the first/last actual character on the line, ignoring spaces.</toggle>
- <toggle name='show_line_numbers' label='Show Line Numbers'>Add a column on the far left showing line numbers.</toggle>
- <toggle name='show_line_markers' label='Show Bookmarks'>Add a column in the left margin showing which lines are bookmarked.</toggle>
- <toggle name='use_spaces_for_tabs' label='Use spaces instead of Tabs'>Pressing the Tab key inserts multiple spaces, instead of a single Tab character.</toggle>
- <numentry name='tab_width' label='Tab width' min='2' max='10' unit='characters'>Show one tab as this number of spaces or, when 'Use spaces instead of Tabs' is on, insert this many spaces.</numentry>
- </source-view-only>
- </frame>
- </section>
-
- <section title='Changes'>
- <frame label='Colours for Show Changes feature'>
- <hbox><colour name='headers_fg' label='Foreground'/><colour name='headers_bg' label='Background'/><label>(headers)</label></hbox>
- <hbox><colour name='static_fg' label='Foreground'/><colour name='static_bg' label='Background'/><label>(no change)</label></hbox>
- <hbox><colour name='additions_fg' label='Foreground'/><colour name='additions_bg' label='Background'/><label>(additions)</label></hbox>
- <hbox><colour name='deletions_fg' label='Foreground'/><colour name='deletions_bg' label='Background'/><label>(deletions)</label></hbox>
- </frame>
- </section>
-
-</options>
diff --git a/source/rox-extra/edit/edit-2.0/Edit/buffer.py b/source/rox-extra/edit/edit-2.0/Edit/buffer.py
deleted file mode 100644
index adb82e8..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/buffer.py
+++ /dev/null
@@ -1,161 +0,0 @@
-import rox
-from rox import g
-
-# GtkSourceBuffer is a subclass of GtkTextBuffer which provides extra
-# features. We'll use it if it's available, or GtkTextBuffer if not.
-try:
- import gtksourceview
- _parentClass = gtksourceview.SourceBuffer
- have_sourceview = True
-except:
- _parentClass = g.TextBuffer
- have_sourceview = False
-
-
-DELETE = 1
-INSERT = 2
-
-# As operations are performed, they are added to 'in_progress'.
-# When complete, the whole group is added to undo_buffer.
-
-class Buffer(_parentClass):
- "A buffer that deals with undo/redo."
-
- action_nest_level = 0
-
- def __init__(self):
- if have_sourceview:
- _parentClass.__init__(self)
- self.set_max_undo_levels(1000)
- else:
- _parentClass.__init__(self, None)
-
- self.in_progress = None
- self.undo_buffer = []
- self.redo_buffer = [] # Will be None during undo or redo
-
- if have_sourceview:
- self.lm = gtksourceview.SourceLanguagesManager()
- self.set_data('languages-manager', self.lm)
-
- def set_type(self, mime_type):
- """Set up syntax highlighting, if available"""
- self.language = None
- if not have_sourceview: return
- if not mime_type: return
-
- language = self.lm.get_language_from_mime_type(mime_type.media + '/' + mime_type.subtype)
- if language:
- self.set_highlight(True)
- self.set_language(language)
- self.language = language.get_name()
- else:
- #print 'No language found for mime type "%s"' % mime_type
- self.set_highlight(False)
-
- def start_undo_history(self):
- if have_sourceview: return
- def begin(buffer):
- self.action_nest_level += 1
- if self.action_nest_level == 1:
- assert self.in_progress is None
- self.in_progress = []
-
- self.connect('begin-user-action', begin)
- def end_action(buffer):
- self.action_nest_level -= 1
- assert self.action_nest_level >= 0
- if self.action_nest_level == 0:
- assert self.in_progress is not None
- if self.in_progress:
- self.undo_buffer.append(self.in_progress)
- self.in_progress = None
- self.connect('end-user-action', end_action)
- self.connect('delete-range', self.delete_range)
- self.connect('insert-text', self.insert_text)
-
- def delete_range(self, buffer, start, end):
- self.in_progress.append((INSERT,
- start.get_offset(),
- buffer.get_slice(start, end, True)))
- if self.redo_buffer:
- self.redo_buffer = []
-
- def insert_text(self, buffer, where, text, len):
- text = text[:len] # PyGtk bug?
- start = where.get_offset()
- self.in_progress.append((DELETE,
- start, start + len, text))
- if self.redo_buffer:
- self.redo_buffer = []
-
- try:
- g.TextBuffer(None).insert_at_cursor('hello')
- except:
- # Old version of pygtk
- def insert(self, iter, text):
- g.TextBuffer.insert(self, iter, text, -1)
- def insert_at_cursor(self, text):
- g.TextBuffer.insert_at_cursor(self, text, -1)
-
- def do_action(self, op):
- if op[0] == DELETE:
- start = self.get_iter_at_offset(op[1])
- end = self.get_iter_at_offset(op[2])
- self.delete(start, end)
- elif op[0] == INSERT:
- start = self.get_iter_at_offset(op[1])
- self.insert(start, op[2])
- else:
- rox.alert('Unknown entry in undo buffer!\n' + `op`)
-
- def undo(self, hist = None):
- if have_sourceview:
- if self.can_undo():
- _parentClass.undo(self)
- return
-
- if hist is None: hist = self.undo_buffer
-
- if not hist:
- g.gdk.beep()
- return # Nothing to undo/redo
-
- assert not self.in_progress
-
- # List of actions to perform
- group = hist.pop()
-
- old_redo, self.redo_buffer = self.redo_buffer, None
-
- try:
- self.begin_user_action()
- group.reverse()
- for action in group:
- self.do_action(action)
- finally:
- self.redo_buffer = old_redo
- if hist is self.undo_buffer:
- self.redo_buffer.append(self.in_progress)
- else:
- self.undo_buffer.append(self.in_progress)
- self.in_progress = []
-
- self.end_user_action()
-
- def redo(self):
- if have_sourceview:
- _parentClass.redo(self)
- else:
- self.undo(hist = self.redo_buffer)
-
-
- def begin_not_undoable_action(self):
- if have_sourceview:
- _parentClass.begin_not_undoable_action(self)
-
- def end_not_undoable_action(self):
- if have_sourceview:
- _parentClass.end_not_undoable_action(self)
-
-
diff --git a/source/rox-extra/edit/edit-2.0/Edit/diff.py b/source/rox-extra/edit/edit-2.0/Edit/diff.py
deleted file mode 100644
index b49943a..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/diff.py
+++ /dev/null
@@ -1,130 +0,0 @@
-import rox
-import os
-from rox import processes, g
-from rox.options import Option
-
-try:
- processes.PipeThroughCommand
-except:
- rox.croak('Edit requires ROX-Lib 1.9.11 or later. Sorry!\n'
- '\nhttp://rox.sourceforge.net/rox_lib.html')
-
-header_fg = Option('headers_fg', '#000')
-header_bg = Option('headers_bg', '#ddd')
-
-static_fg = Option('static_fg', '#000')
-static_bg = Option('static_bg', '#fff')
-
-additions_fg = Option('additions_fg', '#000')
-additions_bg = Option('additions_bg', '#8f8')
-
-deletions_fg = Option('deletions_fg', '#000')
-deletions_bg = Option('deletions_bg', '#f88')
-
-tags = g.TextTagTable()
-
-header = g.TextTag('header')
-tags.add(header)
-
-static = g.TextTag('static')
-tags.add(static)
-
-add = g.TextTag('add')
-tags.add(add)
-remove = g.TextTag('remove')
-tags.add(remove)
-
-def options_changed():
- header.set_property('foreground', header_fg.value)
- header.set_property('background', header_bg.value)
- static.set_property('foreground', static_fg.value)
- static.set_property('background', static_bg.value)
- add.set_property('foreground', additions_fg.value)
- add.set_property('background', additions_bg.value)
- remove.set_property('foreground', deletions_fg.value)
- remove.set_property('background', deletions_bg.value)
-
-rox.app_options.add_notify(options_changed)
-
-class Diff(processes.PipeThroughCommand):
- def __init__(self, uri, src, dst):
- processes.PipeThroughCommand.__init__(self, ('diff', '-u', '--', uri, '-'), src, dst)
- self.wait()
-
- def check_errors(self, errors, status):
- if errors:
- raise Exception(errors)
-
-def Tmp(mode = 'w+b', suffix = '-tmp'):
- "Create a seekable, randomly named temp file (deleted automatically after use)."
- import tempfile
- try:
- return tempfile.NamedTemporaryFile(mode, suffix = suffix)
- except:
- # python2.2 doesn't have NamedTemporaryFile...
- pass
-
- import random
- name = tempfile.mktemp(`random.randint(1, 1000000)` + suffix)
-
- fd = os.open(name, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0700)
- tmp = tempfile.TemporaryFileWrapper(os.fdopen(fd, mode), name)
- tmp.name = name
- return tmp
-
-class DiffWindow(rox.Dialog):
- def __init__(self, uri, diff):
- rox.Dialog.__init__(self)
- self.set_title(_('Changes to %s') % uri)
- self.set_has_separator(False)
-
- buffer = g.TextBuffer(tags)
- text = g.TextView(buffer)
- text.set_editable(False)
- text.set_cursor_visible(False)
- text.modify_base(g.STATE_NORMAL, g.gdk.color_parse(static_bg.value))
-
- swin = g.ScrolledWindow()
- swin.set_shadow_type(g.SHADOW_IN)
- swin.set_policy(g.POLICY_AUTOMATIC, g.POLICY_ALWAYS)
- self.vbox.pack_start(swin)
- swin.add(text)
- self.vbox.show_all()
-
- self.add_button(g.STOCK_CLOSE, g.RESPONSE_OK)
- self.connect('response', lambda b, r: self.destroy())
-
- iter = buffer.get_start_iter()
- for line in diff.split('\n'):
- line += '\n'
- if line[:4] in ('--- ', '+++ ', '@@ -'):
- tag = header
- elif line.startswith('-'):
- tag = remove
- if len(line) < 3: line = ' \n'
- elif line.startswith('+'):
- tag = add
- if len(line) < 3: line = ' \n'
- else:
- tag = static
- buffer.insert_with_tags(iter, line, tag)
-
- width = g.gdk.screen_width() * 3 / 4
- height = g.gdk.screen_height() * 1 / 2
- self.set_default_size(width, height)
-
-
-def show_diff(uri, writer):
- from cStringIO import StringIO
- src = Tmp(suffix = '-diff')
- dst = StringIO()
- writer(src)
- src.seek(0)
- Diff(uri, src, dst)
- del src
- diff = dst.getvalue()
- del dst
- if not diff:
- rox.info(_('There is no difference between this version and the saved one.'))
- else:
- DiffWindow(uri, diff).show()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/findrox.py b/source/rox-extra/edit/edit-2.0/Edit/findrox.py
deleted file mode 100644
index 3405e2a..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/findrox.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# Most of the common code needed by ROX applications is in ROX-Lib2.
-# Except this code, which is needed to find ROX-Lib2 in the first place!
-
-# Just make sure you run findrox.version() before importing anything inside
-# ROX-Lib2...
-
-import os, sys
-from os.path import exists
-import string
-
-def version(major, minor, micro):
- """Find ROX-Lib2, with a version >= (major, minor, micro), and
- add it to sys.path. If version is missing or too old, either
- prompt the user, or (if possible) upgrade it automatically.
- If 'rox' is already in PYTHONPATH, just use that (assume the injector
- is being used)."""
- try:
- import rox
- except ImportError:
- pass
- else:
- #print "Using ROX-Lib in PYTHONPATH"
- if (major, minor, micro) > rox.roxlib_version:
- print >>sys.stderr, "WARNING: ROX-Lib version " \
- "%d.%d.%d requested, but using version " \
- "%d.%d.%d from %s" % \
- (major, minor, micro,
- rox.roxlib_version[0],
- rox.roxlib_version[1],
- rox.roxlib_version[2],
- rox.__file__)
- return
-
- if not os.getenv('ROXLIB_DISABLE_ZEROINSTALL') and os.path.exists('/uri/0install/rox.sourceforge.net'):
- # We're using ZeroInstall. Good :-)
- zpath = '/uri/0install/rox.sourceforge.net/lib/ROX-Lib2/' \
- 'latest-2'
- if not os.path.exists(zpath):
- os.system('0refresh rox.sourceforge.net')
- assert os.path.exists(zpath)
- vs = os.readlink(zpath).split('-')[-1]
- v = tuple(map(int, vs.split('.')))
- if v < (major, minor, micro):
- if os.system('0refresh rox.sourceforge.net'):
- report_error('Using ROX-Lib in Zero Install, but cached version (%s) is too old (need %d.%d.%d) and updating failed (is zero-install running?)' % (vs, major, minor, micro))
- sys.path.append(zpath + '/python')
- return
- try:
- path = os.environ['LIBDIRPATH']
- paths = string.split(path, ':')
- except KeyError:
- paths = [os.environ['HOME'] + '/lib',
- '/usr/local/lib', '/usr/lib' ]
-
- for p in paths:
- p = os.path.join(p, 'ROX-Lib2')
- if exists(p):
- # TODO: check version is new enough
- sys.path.append(os.path.join(p, 'python'))
- import rox
- if major == 1 and minor == 9 and micro < 10:
- return # Can't check version
- if not hasattr(rox, 'roxlib_version'):
- break
- if (major, minor, micro) <= rox.roxlib_version:
- return # OK
- report_error("This program needs ROX-Lib2 (version %d.%d.%d) " % \
- (major, minor, micro) + "to run.\n" + \
- "I tried all of these places:\n\n" + \
- string.join(paths, '\n') + '\n\n' + \
- "ROX-Lib2 is available from:\n" + \
- "http://rox.sourceforge.net")
-
-def report_error(err):
- "Write 'error' to stderr and, if possible, display a dialog box too."
- try:
- sys.stderr.write('*** ' + err + '\n')
- except:
- pass
- try:
- import pygtk; pygtk.require('2.0')
- import gtk; g = gtk
- except:
- import gtk
- win = gtk.GtkDialog()
- message = gtk.GtkLabel(err +
- '\n\nAlso, pygtk2 needs to be present')
- win.set_title('Missing ROX-Lib2')
- win.set_position(gtk.WIN_POS_CENTER)
- message.set_padding(20, 20)
- win.vbox.pack_start(message)
-
- ok = gtk.GtkButton("OK")
- ok.set_flags(gtk.CAN_DEFAULT)
- win.action_area.pack_start(ok)
- ok.connect('clicked', gtk.mainquit)
- ok.grab_default()
-
- win.connect('destroy', gtk.mainquit)
- win.show_all()
- gtk.mainloop()
- else:
- box = g.MessageDialog(None, g.MESSAGE_ERROR, 0,
- g.BUTTONS_OK, err)
- box.set_title('Missing ROX-Lib2')
- box.set_position(g.WIN_POS_CENTER)
- box.set_default_response(g.RESPONSE_OK)
- box.run()
- sys.exit(1)
diff --git a/source/rox-extra/edit/edit-2.0/Edit/goto.py b/source/rox-extra/edit/edit-2.0/Edit/goto.py
deleted file mode 100644
index 855e91b..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/goto.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from rox import g
-import rox
-from EditWindow import Minibuffer
-
-class Goto(Minibuffer):
- "A minibuffer used to find a line by number."
-
- def setup(self, window):
- self.window = window
- self.window.set_mini_label(_('Goto line:'))
-
- info = _('Enter the line number to go to. Line numbers start from 1. '
- 'Press Escape to cancel, or Return to jump to the line.')
-
- def activate(self):
- line = self.window.mini_entry.get_text()
- if line:
- try:
- line = int(line)
- assert line >= 1
- except:
- rox.alert(_('Invalid line number: %s') % line)
- else:
- buffer = self.window.buffer
- iter = buffer.get_iter_at_line(line - 1)
- buffer.place_cursor(iter)
- self.window.text.scroll_to_iter(iter, 0.05, False)
- self.window.set_minibuffer(None)
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Entries b/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Entries
deleted file mode 100644
index 013636c..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Entries
+++ /dev/null
@@ -1,4 +0,0 @@
-/marker.png/1.1/Sun May 29 17:12:53 2005//TRelease-2-0
-/rox-diff.png/1.1/Thu Oct 16 11:30:17 2003/-ko/TRelease-2-0
-/rox-word-wrap.png/1.1/Sun Apr 18 13:14:45 2004/-ko/TRelease-2-0
-D
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Repository b/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Repository
deleted file mode 100644
index 624a7f3..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-Edit/images
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Root b/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Root
deleted file mode 100644
index 01d4116..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-tal197 at cvs.sourceforge.net:/cvsroot/rox
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Tag b/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Tag
deleted file mode 100644
index 8833b6e..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/images/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-NRelease-2-0
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/marker.png b/source/rox-extra/edit/edit-2.0/Edit/images/marker.png
deleted file mode 100644
index 830d43c..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/images/marker.png and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/rox-diff.png b/source/rox-extra/edit/edit-2.0/Edit/images/rox-diff.png
deleted file mode 100644
index 0d60e5a..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/images/rox-diff.png and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/images/rox-word-wrap.png b/source/rox-extra/edit/edit-2.0/Edit/images/rox-word-wrap.png
deleted file mode 100644
index 1eee4b4..0000000
Binary files a/source/rox-extra/edit/edit-2.0/Edit/images/rox-word-wrap.png and /dev/null differ
diff --git a/source/rox-extra/edit/edit-2.0/Edit/search.py b/source/rox-extra/edit/edit-2.0/Edit/search.py
deleted file mode 100644
index bafadf0..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/search.py
+++ /dev/null
@@ -1,304 +0,0 @@
-import rox
-from rox import g
-from EditWindow import Minibuffer
-
-regex_help = (
- ('.', _('Matches any character')),
- ('[a-z]', _('Any lowercase letter')),
- ('[-+*/]', _('Any character listed (- must be first)')),
- ('^A', _('A only at the start of a line')),
- ('A$', _('A only at the end of a line')),
- ('A*', _('Zero or more A')),
- ('A+', _('One or more A')),
- ('A?', _('Zero or one A')),
- ('A{m,n}', _('Between m and n matches of A')),
- ('A*?, A+?, A??, A{}?', _('Non-greedy versions of *, +, ? and {}')),
- ('\*, \+, etc', _('Literal "*", "+"')),
- ('A|B', _('Can match A or B')),
- ('(AB)', _('Group A and B together (for *, \\1, etc)')),
- ('\\1, \\2, etc', _('The first/second bracketed match (goes in the With: box)')),
- ('\\b', _('Word boundary (eg, \\bWord\\b)')),
- ('\\B', _('Non-word boundary')),
- ('\\d, \\D', _('Digit, non-digit')),
- ('\\s, \\S', _('Whitespace, non-whitespace')),
- (_('Others'), _('See the Python regular expression documentation for more')),
- ('', ''),
- (_('Examples:'), ''),
- ('Fred', _('Matches "Fred" anywhere')),
- ('^Fred$', _('A line containing only "Fred"')),
- ('Go+gle', _('"Gogle, Google, Gooogle, etc"')),
- ('Colou?r', _('Colour or Color')),
- ('[tT]he', _('"The" or "the"')),
- ('M.*d', '"Md", "Mad", "Mud", "Mind", etc'),
- ('([ab][cd])+', '"ac", "ad", "acbdad", etc'),
- ('', ''),
- (_('Python expressions:'), ''),
- ('old', _('The text that was matched')),
- ('x', _("The numerical value of 'old'")),
- ('old.upper()', _("Convert match to uppercase")),
- ('x * 2', _("Double all matched numbers")),
-)
-
-class Search(Minibuffer):
- "A minibuffer used to search for text."
- dir = 1
-
- def setup(self, window):
- self.window = window
- buffer = window.buffer
- s, e = window.get_selection_range()
- self.window.mini_entry.set_text(buffer.get_text(s, e, False))
- cursor = buffer.get_iter_at_mark(window.insert_mark)
- buffer.move_mark_by_name('search_base', cursor)
- self.dir = 1
- self.set_label()
-
- fwd = rox.ButtonMixed(g.STOCK_GO_DOWN, _('Find Next'))
- fwd.set_relief(g.RELIEF_NONE)
- fwd.unset_flags(g.CAN_FOCUS)
- fwd.connect('clicked', lambda e: self.set_dir(1))
-
- rev = rox.ButtonMixed(g.STOCK_GO_UP, _('Find Previous'))
- rev.set_relief(g.RELIEF_NONE)
- rev.unset_flags(g.CAN_FOCUS)
- rev.connect('clicked', lambda e: self.set_dir(-1))
-
- case = g.CheckButton(label=_('Match case'))
- case.set_relief(g.RELIEF_NONE)
- case.unset_flags(g.CAN_FOCUS)
-
- self.window.mini_hbox.pack_start(fwd, False, True, 0)
- self.window.mini_hbox.pack_start(rev, False, True, 0)
-# self.window.mini_hbox.pack_start(case, False, True, 10)
-
- self.items = [fwd, rev] #, case]
-
- def close(self):
- for x in self.items:
- self.window.mini_hbox.remove(x)
-
- info = _('Type a string to search for. The display will scroll to show the ' \
- 'next match as you type. Use the Up and Down cursor keys to move ' \
- 'to the next or previous match. Press Escape or Return to finish.')
-
- def set_label(self):
- self.window.set_mini_label(_(' Find: '))
-
- def set_dir(self, dir):
- assert dir == 1 or dir == -1
-
- buffer = self.window.buffer
- cursor = buffer.get_iter_at_mark(self.window.insert_mark)
- buffer.move_mark_by_name('search_base', cursor)
-
- if dir == self.dir:
- if dir == 1:
- cursor.forward_char()
- else:
- cursor.backward_char()
- if self.search(cursor):
- buffer.move_mark_by_name('search_base', cursor)
- else:
- g.gdk.beep()
- else:
- self.dir = dir
- self.set_label()
- self.changed()
-
- def activate(self):
- self.set_dir(self.dir)
-
- def key_press(self, kev):
- k = kev.keyval
- if k == g.keysyms.Up:
- self.set_dir(-1)
- elif k == g.keysyms.Down:
- self.set_dir(1)
- else:
- return 0
- return 1
-
- def search(self, start):
- "Search forwards or backwards for the pattern. Matches at 'start'"
- "are allowed in both directions. Returns (match_start, match_end) if"
- "found."
- iter = start.copy()
- pattern = self.window.mini_entry.get_text()
- if not pattern:
- return (iter, iter)
- if self.dir == 1:
- found = iter.forward_search(pattern, 0, None)
- else:
- iter.forward_chars(len(pattern))
- found = iter.backward_search(pattern, 0, None)
- return found
-
- def changed(self):
- buffer = self.window.buffer
- pos = buffer.get_iter_at_mark(self.window.search_base)
-
- found = self.search(pos)
- if found:
- buffer.move_mark_by_name('insert', found[0])
- buffer.move_mark_by_name('selection_bound', found[1])
- self.window.text.scroll_to_iter(found[0], 0.05, False)
- else:
- g.gdk.beep()
-
-class RegexHelp(g.ScrolledWindow):
- def __init__(self):
- g.ScrolledWindow.__init__(self)
- self.set_shadow_type(g.SHADOW_IN)
- self.set_policy(g.POLICY_NEVER, g.POLICY_AUTOMATIC)
-
- model = g.ListStore(str, str)
- view = g.TreeView(model)
- self.add(view)
- view.show()
-
- cell = g.CellRendererText()
- column = g.TreeViewColumn(_('Code'), cell, text = 0)
- view.append_column(column)
- column = g.TreeViewColumn(_('Meaning'), cell, text = 1)
- view.append_column(column)
-
- for c, m in regex_help:
- new = model.append()
- model.set(new, 0, c, 1, m)
-
- self.set_size_request(-1, 150)
-
- view.get_selection().set_mode(g.SELECTION_NONE)
-
-history = {} # Field name -> last value
-
-class Replace(rox.Dialog):
- def __init__(self, window):
- self.edit_window = window
- rox.Dialog.__init__(self, parent = window,
- flags = g.DIALOG_DESTROY_WITH_PARENT |
- g.DIALOG_NO_SEPARATOR)
- self.add_button(g.STOCK_CANCEL, g.RESPONSE_CANCEL)
- self.add_button(g.STOCK_FIND_AND_REPLACE, g.RESPONSE_OK)
- self.set_default_response(g.RESPONSE_OK)
-
- def response(dialog, resp):
- if resp == g.RESPONSE_OK:
- self.do_replace()
- else:
- self.destroy()
- self.connect('response', response)
-
- vbox = g.VBox(False, 5)
- self.vbox.pack_start(vbox, True, True, 0)
- vbox.set_border_width(5)
- self.sizegroup = g.SizeGroup(g.SIZE_GROUP_HORIZONTAL)
-
- def field(name):
- hbox = g.HBox(False, 2)
- vbox.pack_start(hbox, False, True, 0)
- entry = g.Entry()
- label = g.Label(name)
- self.sizegroup.add_widget(label)
- hbox.pack_start(label, False, True, 0)
- hbox.pack_start(entry, True, True, 0)
- entry.set_text(history.get(name, ''))
- def changed(entry):
- history[name] = entry.get_text()
- entry.connect('changed', changed)
- entry.set_activates_default(True)
-
- return entry
-
- self.replace_entry = field(_('Replace:'))
- self.with_entry = field(_('With:'))
-
-
- hbox = g.HBox(False)
- label = g.Label()
- self.sizegroup.add_widget(label)
- hbox.pack_start(label, False, False, 3)
- self.regex = g.CheckButton(_('Advanced search and replace'))
- hbox.pack_start(self.regex, False, False, 0)
- vbox.pack_start(hbox, False, True, 0)
- self.vbox.show_all()
-
- regex_help = RegexHelp()
- vbox.pack_start(regex_help, True, True, 0)
-
- self.python_with = g.CheckButton(_("Evaluate 'With' as Python expression"))
- def changed(toggle): history['Python'] = toggle.get_active()
- vbox.pack_start(self.python_with, False, True, 0)
- self.python_with.set_active(history.get('Python', False))
- self.python_with.connect('toggled', changed)
-
- def changed(toggle):
- history['Advanced'] = toggle.get_active()
- if toggle.get_active():
- regex_help.show()
- self.python_with.show()
- else:
- regex_help.hide()
- self.python_with.hide()
- self.resize(1, 1)
- self.regex.connect('toggled', changed)
- self.regex.set_active(history.get('Advanced', False))
-
- def do_replace(self, show_info = True):
- regex = self.regex.get_active()
-
- replace = self.replace_entry.get_text()
- if not replace:
- rox.alert(_('You need to specify something to search for...'))
- return
- with = self.with_entry.get_text()
-
- changes = [0]
- if regex:
- import re
- try:
- prog = re.compile(replace)
- except:
- rox.report_exception()
- return
- python = self.python_with.get_active()
- if python:
- try:
- code = compile(with, 'With', 'eval')
- def with(match):
- locals = {'old': match.group(0)}
- try:
- locals['x'] = float(locals['old'])
- except:
- locals['x'] = None
- return str(eval(code, locals))
- except:
- rox.report_exception()
- return
- def do_line(line):
- new, n = prog.subn(with, line)
- if n:
- changes[0] += 1
- return new
- else:
- def do_line(line):
- new = line.replace(replace, with)
- if new == line:
- return None
- changes[0] += 1
- return new
-
- try:
- self.edit_window.process_selected(do_line)
- except:
- rox.report_exception()
- return
- if not changes[0]:
- rox.alert(_('Search string not found'))
- return
- if show_info:
- if changes[0] == 1:
- rox.info(_('One line changed'))
- else:
- rox.info(_('%d lines changed') % changes[0])
- self.destroy()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/setup.py b/source/rox-extra/edit/edit-2.0/Edit/setup.py
deleted file mode 100644
index 64978b7..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/setup.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import findrox; findrox.version(1, 19, 14)
-
-import sys, os
-import rox
-from rox import g
-
-try:
- import setup
- import __main__
-
- __main__.__builtins__._ = rox.i18n.translation(os.path.join(rox.app_dir, 'Messages'))
-
- g.rc_parse_string('style "edit-text-area" { GtkWidget::cursor-color = "#e00"\n'
- 'GtkWidget::cursor-aspect-ratio = 0.1}\n'
- 'style "edit-scrolled" { GtkScrolledWindow::scrollbar-spacing = 0}\n'
- 'class "GtkScrolledWindow" style : gtk "edit-scrolled"\n'
- 'class "GtkTextView" style : gtk "edit-text-area"\n')
-
- # Load icons
- factory = g.IconFactory()
- for name in ['rox-diff']:
- path = os.path.join(rox.app_dir, "images", name + ".png")
- pixbuf = g.gdk.pixbuf_new_from_file(path)
- if not pixbuf:
- print >>sys.stderr, "Can't load stock icon '%s'" % name
- g.stock_add([(name, name, 0, 0, "")])
- factory.add(name, g.IconSet(pixbuf = pixbuf))
- factory.add_default()
-
- from rox import choices
- choices.migrate('Edit', 'rox.sourceforge.net')
- rox.setup_app_options('Edit', site='rox.sourceforge.net')
-
- # Register options...
- import EditWindow
- import diff
-
- # All options must be registered by the time we get here
- rox.app_options.notify()
-except:
- rox.report_exception()
diff --git a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Entries b/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Entries
deleted file mode 100644
index a8de955..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Entries
+++ /dev/null
@@ -1,2 +0,0 @@
-/testreplace.py/1.2/Sat Jan 29 11:38:11 2005//TRelease-2-0
-D
diff --git a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Repository b/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Repository
deleted file mode 100644
index 2fcfbfa..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-Edit/tests
diff --git a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Root b/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Root
deleted file mode 100644
index 01d4116..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-tal197 at cvs.sourceforge.net:/cvsroot/rox
diff --git a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Tag b/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Tag
deleted file mode 100644
index 8833b6e..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/tests/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-NRelease-2-0
diff --git a/source/rox-extra/edit/edit-2.0/Edit/tests/testreplace.py b/source/rox-extra/edit/edit-2.0/Edit/tests/testreplace.py
deleted file mode 100755
index c57c171..0000000
--- a/source/rox-extra/edit/edit-2.0/Edit/tests/testreplace.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python2.2
-import unittest
-import sys
-import os, time
-from os.path import dirname, abspath, join
-
-sys.path.insert(0, '..')
-sys.argv[0] = dirname(sys.argv[0])
-
-import setup
-from EditWindow import EditWindow
-import search
-
-class TestReplace(unittest.TestCase):
- def setUp(self):
- self.win = EditWindow(show = False)
- self.win.buffer.begin_user_action()
- self.win.buffer.insert_at_cursor("Hello\n")
- self.win.buffer.end_user_action()
- self.win.buffer.start_undo_history()
-
- def tearDown(self):
- self.win.destroy()
-
- def get_text(self):
- s = self.win.buffer.get_start_iter()
- e = self.win.buffer.get_end_iter()
- return self.win.buffer.get_text(s, e, True)
-
- def assertNow(self, expected):
- actual = self.get_text()
- if actual != expected:
- raise AssertionError("Incorrect final text.\n"
- "Expected:\n%s\nActual:\n%s" % (expected[:100], actual[:100]))
-
- def testSimple(self):
- self.win.process_selected(lambda x: "World")
- self.assertNow("World\n")
- self.win.undo()
- self.assertNow("Hello\n")
-
- def testReplace(self):
- self.win.undo()
- self.win.buffer.begin_user_action()
- self.win.buffer.insert_at_cursor("deà ça")
- self.win.buffer.end_user_action()
- replace = search.Replace(self.win)
- replace.replace_entry.set_text("a")
- replace.with_entry.set_text("b")
- replace.do_replace(show_info = False)
-
- self.assertNow("deà çb")
-
- self.win.undo()
- self.assertNow("deà ça")
-
-
-sys.argv.append('-v')
-unittest.main()
More information about the Frugalware-git
mailing list