Commit graph

2228 commits

Author SHA1 Message Date
mathieui
069283e349 Don’t escape backslashes unless we are inside a quoted string and the next char is a quote
Sadly, we can’t doctest stuff with backslashes because it drives doctest
crazy.
2014-04-28 00:20:57 +02:00
mathieui
31716565a7 Provide our own wrapper for checking the host category (ref #2511?)
xmpp.plugin['xep_0030'].has_identity appears to be unreliable at best,
so we provide our own.

Might help the case of carbons not displayed.
2014-04-27 22:38:24 +02:00
mathieui
3fb3d8db3d Fix memleaks in pooptmodule.cut_text (ref #1914)
- we need to decrement the refcount after giving the tuple to the
  retlist in order to transfer ownership

The example script below will quickly take gigabytes of ram with the
old module, while the new will not take noticeably more memory.

The leak is not very visible on launch, because we “only” leaked each
tuple returned, and (int, int) is not heavy. However, after weeks of
use and many messages, the memory still isn’t freed and it shows.

import poopt
import gc

a = 'coucouco ' * 1000
for i in range(100000):
    if not (i % 10000):
        print(i)
    poopt.cut_text(a, 50)
2014-04-27 21:38:29 +02:00
mathieui
5999b71c41 Fix #2106 (implement message delivery receipts)
- two options request/ack_message_receipts
- two new theme parameters : CHAR_ACK_RECEIVED and COLOR_CHAR_ACK
- if a message has a receipt, the character is displayed between the
  timestamp and the nick, using the color
2014-04-27 16:32:03 +02:00
mathieui
60224bb76a Fix weird behavior while using the input in the muclisttab 2014-04-27 02:17:00 +02:00
mathieui
3cb2c8351a Fix a resize issue when vertical tab list options are set from the roster 2014-04-27 01:59:02 +02:00
mathieui
fea4f95de9 80-columns wrap for MucTab and fix some completions
- fix the /version completion with spaces
- fix the /unignore completion with spaces
2014-04-26 23:49:52 +02:00
mathieui
0d5d36465c Document /recolor random with /help too 2014-04-26 14:41:19 +02:00
mathieui
4172a79117 Fix #2514 (add a /toggle command) 2014-04-26 14:27:02 +02:00
mathieui
1f0ff4f0c3 Fix #2444 (implement room destroy)
- destroy the current room if no parameter
- destroy the room given as a parameter if any
- no reason or alt room because it would be ambiguous in a command
  (implementation ideas welcome)
2014-04-26 14:05:28 +02:00
mathieui
4c4e2083a6 Fix the nickname of server-generated messages 2014-04-26 11:50:00 +02:00
mathieui
947cd13107 Disable 0198 for now because we will properly implement it later 2014-04-26 11:49:11 +02:00
mathieui
4a26dea66d Fix #2516 (display error with carbons)
- fix the bug where messages from our own jid were incorrectly displayed
- the nick is now fixed for the whole conversation
2014-04-25 20:48:40 +02:00
mathieui
b85a3d1c8e Update CHANGELOG 2014-04-25 20:13:43 +02:00
mathieui
98914b8b0a Fix a traceback when sorting a listwin 2014-04-24 23:39:12 +02:00
mathieui
1bd9f78fe6 Improve src/theming.py (print the colors and do not pollute the terminal) 2014-04-24 21:26:13 +02:00
mathieui
828f60fcb8 Update the themes dir during execution, and not at module level 2014-04-24 21:25:31 +02:00
mathieui
5012611bd7 Make keyboard.py a bit nicer to use 2014-04-24 21:13:31 +02:00
mathieui
4de2dfc72b Fix a bug in the config._parse_file function (traceback when parsing empty files) 2014-04-24 21:12:48 +02:00
mathieui
1349f297f5 Documentation update
remove a duplicate section, typos & stuff
2014-04-24 21:12:26 +02:00
mathieui
4fec08879e Documentation update
- add some formatting and links (also, typos)
- link the Theme class from the theming page
2014-04-23 21:34:05 +02:00
mathieui
3bfe93824c Wrap yet another curses operation with a lock 2014-04-23 20:05:51 +02:00
mathieui
efa6b4254d Fix #2450 (redraw top-scrolled tabs properly after resize) 2014-04-23 20:05:02 +02:00
mathieui
2b63e76ef9 Update the alias plugin
- use the new PluginConfig.remove method to remove aliases
- do not do weird stuff when no args are provided
- do not flood when re-creating stored aliases
2014-04-22 20:21:00 +02:00
mathieui
e6ce1ce7b6 Map Config.remove_and_save to PluginConfig.remove 2014-04-22 20:17:19 +02:00
mathieui
b01d94294a Add a way to remove options from the config file
(still surgically, without touching comments or anything else)
2014-04-22 20:16:27 +02:00
mathieui
3415619895 80-columns wrapping and some docstrings
also bump version, and add some gettext wraps
2014-04-22 20:02:07 +02:00
mathieui
b14aceaa4f Close the file descriptor of the fifo on closing
(also, it indeed needs to be a thread because opening
a fifo for reading is a blocking operation)
2014-04-22 19:57:25 +02:00
mathieui
266ab8e10d Split the config.write_in_file method to be more modular and cleaner
Will also allow a remove_in_file or whatever to remove options instead
of blanking them.
2014-04-21 23:46:12 +02:00
mathieui
d66aa8cf66 Log exit from signals to the error log
(SIGTERM, SIGHUP, and SIGPIPE for now)
2014-04-20 17:47:16 +02:00
mathieui
93594b8453 Do not reload unaliased aliases
TODO: implement the remove_option method from configparser
2014-04-20 17:35:16 +02:00
mathieui
3622443631 Keep a file descriptor reading the fifo instead of just opening and closing it
should take care of the sigpipe when no one is reading it anymore due to
broken connection
2014-04-19 06:36:10 +02:00
mathieui
0401029854 Same formatting changes in core.commands 2014-04-18 23:10:12 +02:00
mathieui
2879d3c694 Mostly line-wrap at 80 chars and add docstrings
- also fix some erroneous comment(s)
- remove self.background which wasn’t set to something other than false
- fix the chatroom address (and the doc) in the first help message
2014-04-18 19:41:20 +02:00
mathieui
28d928999d Fix #2297 (crash after resize)
wrap some curses calls with try/except block
2014-04-18 19:18:48 +02:00
mathieui
dc08adf605 Do not lock on the “composing” chat state with otr
might send too many stanzas when send_chat_states is false, but I don’t
care.
2014-04-17 20:39:01 +02:00
mathieui
71ae73ca7b Log part messages and show a leave message on /cycle 2014-04-17 00:02:19 +02:00
mathieui
214904f199 Change the formatting of join/part messages
also remove some hardcoded stuff
2014-04-16 23:07:00 +02:00
mathieui
a511d5a84d Document the create_gaps option
and sets the default value to false, to keep coherent with the code.
2014-04-15 23:05:33 +02:00
mathieui
a784216196 Fix #2440 (highlight composing tabs)
- add a show_composing_tabs option, default value: "direct"
- todo: find a nice different color for this
2014-04-15 22:57:44 +02:00
mathieui
80ebe9edc0 Fix the color of the message with /part
(it now uses the theme)
2014-04-14 22:59:40 +02:00
mathieui
3221534b0f Implement XEP-0249 (Direct MUC Invitations)
- fallback to mediated invitations if only the bare jid is given to the
  command or if the jid does not advertise support

TODO: provide a way to send passwords
2014-04-14 22:32:34 +02:00
mathieui
245f5f050c Fix #2422 (traceback in input) (also #2431)
now the scroll is made with 1/3 of the input size every time instead of
fixed offsets
2014-04-14 20:56:05 +02:00
mathieui
b884e6d6e2 Fix #2339 (put the more “important” users at the bottom in the userlist when configured)
(one-line fix, and the others are for reformatting imports to be consistent)
2014-04-14 19:51:56 +02:00
mathieui
e3859c2862 Do not load a plugin if its init() traceback
and show a somehow helpful error message in this case
2014-04-13 23:13:18 +02:00
mathieui
9c2203e7e3 Do not show the plugin unload on exit 2014-04-13 22:39:49 +02:00
mathieui
f809dffd8e Remove module-level code from the plugin manager as well 2014-04-13 22:38:25 +02:00
mathieui
165ee9ee1a Fix #2503/4 (use “.” as an alias for the current tab in /move_tab) 2014-04-12 02:59:49 +02:00
mathieui
f58dfe26af Only highlight the nick if it is not inside a word
thanks gio
2014-04-12 00:34:25 +02:00
mathieui
04aa6c8914 Fix #2428 (complete fulljids on /version in MUCs)
also clean up some newlines mess
2014-04-11 01:25:00 +02:00