Commit Graph

2768 Commits

Author SHA1 Message Date
James Vega ef8bd817e8 Make registry.Regexp.error mimic registry.Value.error
Regexp.error can't directly call Value.error because it's providing extra
information, so it needs to build the InvalidRegistryValue exception itself
and raise it.

Closes: Sf#2985241

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-04-11 10:15:39 -04:00
James Vega 4a9596608a Include hostmasks in JOIN, PART, QUIT logs.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-02-28 21:17:35 -05:00
James Vega 0540513387 Decode/encode as 'string_escape' when (de)serializing the registry.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-30 23:03:35 -05:00
James Vega 288d7c6e02 Update plugins to ignore all non-ACTION CTCP messages.
Also update commands.urlSnarfer to do the same, which allows us to revert
"Don't bother snarfing URLs from non-Action CTCP messages."

This reverts commit 3282e3407e.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-28 08:14:44 -05:00
Jeremy Fincher 5f9d2bc4ce We had an issue with a command flooder, so we've tightened command flood detection to detect things on a per-host basis, rather than a per-user@host basis. 2009-12-28 12:26:33 -06:00
Jeremy Fincher b774268498 Added network to debug "Incoming message" log. 2009-12-28 12:17:27 -06:00
James Vega 07e283f450 Default to strict RFC compliance.
It's better to force people to use an RFC nick and change it after they
connect than to let non-RFC nicks get used and not be able to connect to the
network.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-18 20:02:53 -05:00
James Vega 8a98653d3b Allow Banmask.makeBanmask to work when dynamic.channel is None.
This gives back the ability to generate a banmask based on the global banmask
settings instead of per-channel settings.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-01 10:26:08 -05:00
James Vega 56ba12aa4b Add support for UltimateIRCd's ! (protected) user mode.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-10-23 19:20:02 -04:00
James Vega 035a9f2459 Add registry.TemplatedString for config variables which use string.Template 2009-10-15 22:17:36 -04:00
James Vega 25fc2de643 utils.web: Provide access to the raw httpUrlRe/urlRe strings
Using the compiled regexps for a PluginRegexp method's __doc__ doesn't work.

Closes Sourceforge #2879862

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-10-15 22:16:38 -04:00
James Vega f7cedae9ad Update ircutils.standardSubstitute to use string.Template
In the process, deprecate utils.str.perlVariableSubstitute.

Since string.Template doesn't support callable values though, we also
sub-class IrcDict and override __getitem__ to call the value if it is
callable.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-10-15 22:16:29 -04:00
James Vega c5896ff6cb utils.web: Import urllib's urlencode into our namespace.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-29 19:54:07 -04:00
James Vega 56fbbe9f36 commands.py: Explain the odd userHostmask check in getOtherUser
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-23 18:29:49 -04:00
James Vega de79e679f4 Add a data kwarg to getUrl(Fd) a la urllib2.Request.
This allows plugins to easily make POST requests using our getUrl(Fd)
functions.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-16 01:17:33 -04:00
James Vega e9a896c736 Clarify databases.types.cdb.maximumModifications' help and use a proper type.
The code expects a float between 0 and 1 inclusive but was simply using
registry.Float.  registry.Probability matches the behavior we want.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-11 18:09:38 -04:00
James Vega 459bc616b1 Reply with an error when getBanmask doesn't have a valid channel.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-02 07:40:33 -04:00
James Vega 260570bd4f Ensure getBanmask has a channel variable as per makeBanmask's requirement
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-01 23:29:42 -04:00
James Vega eff20402ac Change canonize => normalize
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-27 16:41:34 -04:00
Štěpán Němec a66034f852 Fix some typos/wordings.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-26 16:34:12 -04:00
Štěpán Němec 53cac5b078 callbacks.py: Remove duplicated getRealIrc() definition
NestedCommandsIrcProxy inherits the method from ReplyIrcProxy.
(Also fix some typos.)

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-20 11:23:12 -04:00
Štěpán Němec 2fa0f6dedc commands.py: Sort the items of the wrappers dictionary
(just to make it readable)

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-20 11:20:48 -04:00
Ricky Zhou aa2337791a Account for negative times in timeElapsed.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-07-20 16:07:51 -04:00
Jeremy Fincher 43129239d6 Added Seen.since, which lets a user see messages which were sent since the last time he parted a channel. 2009-07-01 15:40:58 -05:00
Jeremy Fincher b9d6277e30 Added supybot.abuse.flood.command.invalid.notify, a configuration variable determining whether the bot will notify infractors of their ignoring. 2009-06-09 10:40:05 -05:00
James Vega 332a614eef Updated to 0.83.4.1+git.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-25 13:38:22 -04:00
James Vega 27a4ef0ed3 Updated to 0.83.4.1.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-25 13:38:12 -04:00
James Vega 54dda880d4 Add a pluginCommands kwarg to Commands.listCommands.
Plugins which implement their own listCommands method should pass their
non-typically discoverable commands to Commands.listCommands via this
mechanism.  This means that the de-duplication of commands is performed in one
spot instead of having each plugin implement it on their on in their
listCommands method.

This reverts commits 0ce829af6215b97e725f4d6d580d1151950be869 and
09fb0e6fc974445a3414fb03a94625f8538d4570.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-22 18:52:15 -04:00
Ricky Zhou fa3a2dd23b Allow nItems to take longs as well.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-19 00:58:07 -04:00
James Vega 3535f6a702 Updated to 0.83.4+git.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-18 03:49:52 -04:00
James Vega f32c886692 Updated to 0.83.4.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-18 03:49:42 -04:00
James Vega 0d98118247 Allow getCommandHelp to be told whether to use simpleSyntax.
Use this to force Misc.help to ignore simpleSyntax since the user has
explicitly asked for the help.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-18 03:12:54 -04:00
James Vega 0615846ab3 Fix getCommandHelp's use of dynamic.msg
Default chan to None so we can still retrieve a config value if dynamic.msg
isn't valid (e.g., when running supybot-plugin-doc).

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-28 08:14:46 -04:00
James Vega b3d97ea03e callbacks: Only use dynamic.msg if it's not None in getCommandHelp
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-28 00:33:03 -04:00
James Vega 84ca6f2ae3 callbacks: Update PluginRegexp docstring to reference (un)addressedRegexps
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-09 10:53:02 -04:00
James Vega bb759259b8 Remove useless comments and fix a SyntaxError
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-03 10:04:39 -04:00
Jeremy Fincher dd4bc64e32 Changed a few caches to use CacheDict to ensure no without-bound growth on caches. 2009-04-02 11:45:00 -05:00
Jeremy Fincher 757991afc9 Added basic CacheDict with simple test. 2009-04-02 11:28:57 -05:00
James Vega 6b6861f884 Don't specify globals as a kwarg; only in 2.5+
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-22 13:47:42 -04:00
James Vega 58d308b54d Fix perlReToReplacer when \ is used in the replacement
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-12 17:17:20 -04:00
James Vega e00e161a73 Comments can't follow line continuations
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-12 17:16:56 -04:00
Jeremy Fincher 278da67295 Merge branch 'master' of ssh://jemfinch@supybot.git.sourceforge.net/gitroot/supybot 2009-03-12 14:05:36 -05:00
Jeremy Fincher fa9a9cb04d Ensured logging of error messages with unrecognized numeric codes. Fixes SR #1859821, but nothing can rectify freenode's idiocy completely. 2009-03-12 14:04:55 -05:00
James Vega 7c8d85ac8e Merge branch 'master' of git+ssh://supybot.git.sourceforge.net/gitroot/supybot 2009-03-12 15:01:46 -04:00
Jeremy Fincher bc70ab8aad Fixes SR #2233215. 2009-03-12 13:54:05 -05:00
James Vega 6986fc7abe Do not store the install directory in directories.plugins
We automatically determine the directory anyway, so there's no need to clutter
the config file with it.  Instead, simply include the directory when we
perform the search for the plugin.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-12 14:50:46 -04:00
James Vega ecd2c63650 Make universalImport support 'from ModuleA import ModuleB'
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-11 15:55:08 -04:00
Jeremy Fincher a86b4694d7 Added utils.python.universalImport to make the previous idiom cleaner. 2009-03-11 14:05:53 -04:00
James Vega 46a4076988 Add .gitignore
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-02-27 14:17:31 -05:00
James Vega 0c42ea111a Fix our RE parsing to handle multiple backslashes before the separator
This also adds support for using brace pairs ({}, [], (), <>) as the
separators for m//.
2009-03-11 13:37:27 -04:00
James Vega 0d4ff7f3dc ircdb.py: Use a more concise return statement 2009-03-11 13:37:27 -04:00
James Vega db615f2c40 callbacks: Actually obey the to argument of reply() 2009-03-11 13:37:27 -04:00
James Vega 10342acd11 Re-fix IrcDriver, which actually does need the args to __init__ 2009-03-11 13:37:27 -04:00
James Vega abb83d4863 Make getBanmask use protocols.irc.banmask.makeBanmask 2009-03-11 13:37:27 -04:00
James Vega 775fe6fd4c Move plugins.Channel.banmask to protocols.irc.banmask
Also add protocols.irc.banmask.makeBanmask as a common function for
getting a banmask from a hostmask.
2009-03-11 13:37:27 -04:00
James Vega a84a0423ad Only import cdb if it's needed 2009-03-11 13:37:27 -04:00
James Vega 5fabe8f747 Do not pass arguments to object.__init__ in IrcDriver.__init__ 2009-03-11 13:37:27 -04:00
James Vega c23c84a725 Twisted.py: Remove useless code 2009-03-11 13:37:27 -04:00
James Vega 0d5462f446 Remove "Twisted is used if detected" from supybot.drivers.module
This description is no longer accurate as the autodetection code has
been disabled for almost 3 years.
2009-03-11 13:37:27 -04:00
James Vega 768119d258 Directly call isCommandMethod from listCommands. 2009-03-11 13:37:27 -04:00
James Vega 0b6926826a Make sure getCommandMethod only returns a valid command method
In situations like an alias, simply using getattr(self, command[0]) may
return a class method instead of the alias (think "Alias add die ...").
2009-03-11 13:37:26 -04:00
James Vega e787c7aa49 Clarify comment about timestamp() override 2009-03-11 13:37:26 -04:00
James Vega eb6117da4f Embed formatArgumentError in Commands._callCommand.
This allows it to utilize getCommandHelp which means that plugins which define
their own getCommandHelp will no longer have broken help responses when
ArgumentError exceptions are raised.
2009-03-11 13:37:26 -04:00
James Vega 338a899782 Make getCommandHelp respect supybot.reply.showSimpleSyntax 2009-03-11 13:37:26 -04:00
James Vega 026a683dec Update cachingGetHelp to match callbacks.getHelp's prototype 2009-03-11 13:37:26 -04:00
James Vega c936897488 Allow doc to be specified for getSyntax, similar to getHelp 2009-03-11 13:37:26 -04:00
James Vega 3d5c877f80 Finally fix the XXX we had for httpUrlRe and urlRe 2009-03-11 13:37:26 -04:00
James Vega 828d41e37d Add utils/crypt.py as a Python version-agnostic crypt module 2009-03-11 13:37:26 -04:00
James Vega d72b696739 Do not pass arguments to object's __init__ 2009-03-11 13:37:26 -04:00
James Vega 73fb339b04 Only disable prefixNick if action is actually True 2009-03-11 13:37:26 -04:00
James Vega a9d1830303 Do not prefixNick for actions 2009-03-11 13:37:26 -04:00
Jeremy Fincher 9f3bc9d355 IrcCallback's super() doesn't take any args. 2009-03-11 13:37:25 -04:00
Jeremy Fincher d08eee8f13 Made httpUrl arg wrapper add http:// if that produces a valid http url. 2009-03-11 13:37:25 -04:00
Jeremy Fincher 526e71e104 Added test for firewall, fixed implementation so it actually works. 2009-03-11 13:37:25 -04:00
James Vega 2f15eb2418 getHaveOp needs to call getChannel if state.channel isn't set 2009-03-11 13:37:25 -04:00
James Vega e31d352e57 Correct the logic in _handleSocketError 2009-03-11 13:37:25 -04:00
Jeremy Fincher 64d34792ca Added additional help for supybot.log.level. 2009-03-11 13:37:24 -04:00
James Vega 0278318ed9 Add +svn to the version 2009-03-11 13:37:24 -04:00
James Vega 7bb3b1ec60 Merge the changes from the python25compat branch into the trunk 2009-03-11 13:37:24 -04:00
James Vega 29778f5ada Fix the registry type for supybot.replies.possibleBug. 2007-05-09 01:03:28 +00:00
James Vega 680473b015 If we're using python2.5, import re in place of sre. 2007-04-25 16:12:21 +00:00
James Vega 2bf838f109 Include the proper string in assertAction's error message. 2006-11-13 20:32:45 +00:00
James Vega 6c13f55ab4 src/log.py: Seriously simplify the handling of different logging levels for log and log.stdout by setting the level on the different handlers ranther than the logging object itself. 2006-10-05 18:54:37 +00:00
James Vega 664f56a92f src/log.py: Collapse MultiLogger's methods into using __getattr__ to detect what's being called and return the proper function. 2006-10-05 18:06:12 +00:00
James Vega 2636a35b84 src/log.py: Support different logging levels for stdout and the logfile. 2006-10-05 13:35:45 +00:00
James Vega f91318e8f1 src/conf.py: Don't use a NormalizedString for supybot.replies.possibleBug since it breaks up the URL. 2006-10-05 13:35:09 +00:00
James Vega ea6000b407 src/callbacks.py: Methods whose name != their canonical name should not be considered command methods (and therefore won't be listed in the output from Misc.list). 2006-08-28 13:15:21 +00:00
James Vega cd2b58a7d5 src/callbacks.py: Allow the docstring to be passed to getHelp() 2006-08-28 13:13:43 +00:00
James Vega 99630bc3f5 Bump versions to 0.83.2+darcs 2006-07-27 14:53:34 +00:00
James Vega c3cacbce76 Munge Author's email in __str__ instead of relying on munging the results of Author.__str__ 2006-07-14 20:54:31 +00:00
James Vega 07be8cd2c0 src/ircutils.py: A nasty hack around mIRC's broken color code rules. Must specify a foreground color if a background color is being specified, so we'll default it to white. 2006-05-25 19:52:16 +00:00
James Vega 514ddbc74f src/log.py: Fix a NameError in a Windows specific section of the code. 2006-05-05 02:13:41 +00:00
James Vega dc6ae3c7cc src/test.py: Update some documentation. 2006-05-03 17:34:35 +00:00
James Vega 48120bfdd2 src/callbacks.py: Update a debug statement so it prints the proper method name. 2006-05-01 17:08:44 +00:00
James Vega 67697d8245 src/registry.py: Update StringWithSpaceOnRight to accept the empty string as a valid value (instead of padding a space). 2006-05-01 16:50:02 +00:00
James Vega adc53b11df src/registry.py: Update StringSurroundedBySpaces to only be one space if an empty value is set. 2006-05-01 16:49:23 +00:00
James Vega 9b79f112a0 src/drivers/__init__.py: Make Socket the default driver since Twisted has been causing so many problems lately. 2006-04-13 14:26:06 +00:00
James Vega 880cce5505 src/utils/str.format: Recognize digits before the '.' in %f formatting. 2006-04-06 04:01:11 +00:00
Ali Afshar 26c0adf768 added support for Twisted2.0 by preventing the twisted reactor from spawning threads for dns queries. 2006-02-14 23:45:51 +00:00
James Vega a3e4fc5b1d Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
James Vega 5b3ca9bd2d src/registry.py, test/test_registry.py: Better handling of backslashes in config values. 2006-01-18 00:19:31 +00:00
James Vega 84b1c7b59a src/conf.py: Update the help string for supybot.drivers.module. It no longer refers to asyncore and specifies that Twisted is used by default if detected. 2006-01-16 13:44:59 +00:00
Jeremy Fincher 6d45897278 Moved the disable method closer to its call site. 2006-01-12 19:17:09 +00:00
Jeremy Fincher dca3a3c099 Minor style tweak. 2006-01-12 03:57:10 +00:00
James Vega 0af83d2e24 src/conf, plugins/Owner, plugins/Network: Add support for specifying an ssl connection via Network.connect. 2005-12-14 04:20:04 +00:00
James Vega 0b83f017d9 src/irclib.py: Document the protected/channel owner patch 2005-11-30 16:02:09 +00:00
Marius Rieder cbb5b7aaa2 protect_and_chanowner_in_unrealircd
Add protectet users (&) und the channelowner (~) used in unrealircd to the ops list.
2005-11-01 04:49:23 +00:00
James Vega 9cb1669b5f src/utils/web: Add another "UNKNOWN_HOST" code to catch. 2005-10-14 12:59:47 +00:00
James Vega 9c34b231aa src/ircdb: checkPassword should return false when password is None instead of trying to continue with the check. 2005-10-14 12:58:41 +00:00
James Vega fe72d703df +darcs 2005-09-02 02:23:49 +00:00
James Vega 0974d70ca4 Version 0.83.1 2005-09-02 02:13:51 +00:00
James Vega 92b7925fb0 +darcs 2005-08-31 00:04:54 +00:00
James Vega b701d0f436 UNDO: +darcs 2005-08-30 23:43:51 +00:00
James Vega b74c0e6200 +darcs 2005-08-30 23:43:51 +00:00
James Vega 2e38b5ed06 Version 0.83.0 2005-08-30 23:39:46 +00:00
James Vega ef3e002db3 src/utils/net: Fix our method of determining whether an IPV6 or IP socket is needed. 2005-08-22 18:52:37 +00:00
Jeremy Fincher 603cab6b0a Loaded plugins during __init__ rather than do001. 2005-08-15 05:37:05 +00:00
Jeremy Fincher 27656e5fef Added a few more asserts and clarified an already existing one. 2005-08-15 05:36:23 +00:00
James Vega a3149f0ec0 src/irclib: If the post-inFilter message differs from the pre-inFilter message, log it for debugging purposes. 2005-08-04 21:19:41 +00:00
Jeremy Fincher cede4a4a97 Fixed bug in ircutils.isNick, which allowed nicks to start with dashes. 2005-08-02 02:47:42 +00:00
Jeremy Fincher 14acfcafe4 Forgot a .split() that was causing the channel-database parsing to fail on bans. 2005-08-01 21:08:21 +00:00
Jeremy Fincher 5582e69268 Fixed ircdb.py to give full exception traces when unexpected exceptions occur. 2005-08-01 21:01:46 +00:00
Jeremy Fincher f8156cc9cc Removed TupleSubclass, which wasn't being used. 2005-07-21 18:32:41 +00:00
James Vega 17afef9c30 src/commands: Change the rest context so that it raises an IndexError when no arguments are available.
This fixes the problem in Dunno (and any other plugin that uses plugins.ChannelIdDatabasePlugin) where calling the search command using only the getopts and no additional arguments will cause the command to fail and the help to be displayed.
2005-07-27 21:57:17 +00:00
Jeremy Fincher 1aa73acd8d Removed Acquire, which I won't be using anymore. 2005-07-21 05:04:31 +00:00
Jeremy Fincher 77330d496a Moved an XXX and added a skeleton method. 2005-07-18 04:55:12 +00:00
Jeremy Fincher fc87901a89 Added some more XXXes for dangerfan. 2005-07-18 04:46:41 +00:00
Jeremy Fincher 27ac845628 Moved some XXXes around, added some methods (so naming them isn't hard) and a new XXX about methods that return file objects. 2005-07-18 04:37:32 +00:00
Jeremy Fincher 91874dba2c Added some XXXes to transaction.py. 2005-07-16 05:09:49 +00:00
Jeremy Fincher 5b8400e158 Removed utils.iter.one, which was dumb, because iterators have a .next() method that does the same thing. 2005-07-08 09:14:45 +00:00
James Vega 6f8e3d37aa src/irclib: Let's not override the name for the set type. 2005-07-10 18:27:40 +00:00
Jeremy Fincher a88f52bc7f Forgot to change the exception name in one of the spots it was raised in. 2005-07-06 03:59:46 +00:00
Jeremy Fincher e9c52f6a5f Prefixed some non-public method names with an underscore. 2005-07-06 03:59:16 +00:00
Jeremy Fincher 612a8e1183 Added utils.{transaction,error} 2005-07-05 17:48:00 +00:00
Jeremy Fincher b369039507 Added utils.iter.one, to grab one value from an iterable. 2005-06-12 04:54:15 +00:00
Jeremy Fincher 1a5e05ee8e NestedCommandsIrcProxy should set self.repliedTo if self.error is called. 2005-06-30 22:10:04 +00:00
Jeremy Fincher 830a5c5084 Commented out an overly verbose (even for DEBUG level) log message. 2005-06-30 22:04:59 +00:00
James Vega bd31b7f596 src/irclib: Handle IRCds which use a MAXLIST-style value for the MAXBANS 005 key. 2005-06-29 14:20:54 +00:00
James Vega 464c1e3cb9 src/callbacks: Remove a duplicate except statement. 2005-06-28 20:57:32 +00:00
James Vega e4c9381f7b src/commands: Update first so that state.errored will not prevent the bot from responding when the first converter fails. 2005-06-13 17:27:15 +00:00
Jeremy Fincher 3d66bc88e5 Let's ensure that self.repliedTo is False before calling invalidCommands. 2005-06-08 17:49:54 +00:00
Jeremy Fincher dff2862bb1 Fixed jamessan's multiple-invalidCommand bug. 2005-06-08 17:45:58 +00:00
Jeremy Fincher 0d83dde909 Moved a comment to the appropriate place. 2005-06-08 16:24:54 +00:00
Jeremy Fincher cc4c143176 Log the name of each spawned thread at the DEBUG level. 2005-06-08 03:53:00 +00:00
Jeremy Fincher 490fb0b140 Changed prefixName to prefixNick, which is more appropriate, and has always bothered me. Better now than later. 2005-06-01 21:08:30 +00:00
Jeremy Fincher 4da1f38235 Fixed the security issue nicktastic reported, and made sure that if, for some reason, an error doesn't raise an exception, it still stops the calling of the command function. 2005-06-01 20:13:33 +00:00
Jeremy Fincher c1dcb47e3f Added another elucidating comment. 2005-05-30 19:20:17 +00:00
Jeremy Fincher 5815b3b348 Added some elucidating comments. 2005-05-30 19:19:43 +00:00
Jeremy Fincher b5f1e2a3e7 Added utils.iter.limited, an iterable that limits the number of elements that can be taken from another iterable. 2005-05-30 19:19:11 +00:00
James Vega c268aab9bd +darcs 2005-05-30 04:36:01 +00:00