Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Thanks.
I'm not sure this is a correct change. And in fact, I would say that the
current quoting of | is also incorrect.
and | (and ^ and perhaps several others) have special meaning to cmd.exe.
list2cmdline is documented
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
components: +Library (Lib)
stage: unit test needed -
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8972
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
http://www.autohotkey.net/~deleyd/parameters/parameters.htm#WINCRULES is a
helpful reference, by the way.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8972
New submission from Jean-Paul Calderone exar...@twistedmatrix.com:
Packages loaded from zip files have a __path__ sort of like any other package.
The zipimport tests don't verify that this attribute has the correct value,
though.
--
components: Tests
messages: 107327
nosy: exarkun
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
About the doc patch: I like the word Resolves more than Translate.
Resolves implies possible network activity to me. Translate sounds like
it's just a change in representation. Of course, things like `AI_NUMERICHOST
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
If the user issues the 'save' command a commit is done. When they quit the
application, I'd like to be able to prompt them with a 'save or discard' if
and only if they have made changes since the last save.
Isn't
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Backported to release26-maint in r81488.
--
nosy: +exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1628205
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Sorry I don't like this as much. I believe following the RFC for TLS SNI
should be implicit and not something the programmer need to put effort into
achieving. I acknowledge this approach does go against some explicit
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Nope, I checked before making the suggestion. There's an SSL_CTX_ version of
this API (in addition to the SSL_ version).
Sorry, I just checked again, and it seems you're right. Perhaps I saw
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Here's another possible approach:
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
ctx.set_tlsext_host_name(foo.bar)
skt = ctx.wrap_socket(socket.socket())
skt.connect(bar.baz)
This makes it obvious what the SNI hostname is and what
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Have you looked at the number of TIME_WAIT sockets you have on the system when
your benchmark gets to the 16000 request mark?
This looks exactly like a regular TCP limitation to me. You'll find the limit
on any platform
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
status: closed - open
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue3051
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
In addition to skipping the tests, would it also make sense to document these
known limitations of Python threading on OpenBSD somewhere that end users might
see it?
--
___
Python
New submission from Jean-Paul Calderone exar...@twistedmatrix.com:
The item How do I prepare a new branch for merging? is unclear about which
branch needs to be prepared. It could be the source branch or the destination
branch. In #python-dev, I learned that it's probably the destination
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Should be resolved in, oh, let's see, r81007, r81011, r81016, and r81018.
Thanks to everyone who helped out.
--
resolution: - fixed
status: open - closed
versions: +Python 3.1
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
keywords: +needs review
status: open - languishing
versions: +Python 3.2 -Python 2.6
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2574
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
I agree that this should be landed (for 2.6 and 2.7). I think I can do it. I
made some changes to the tests, though. It would be nice for someone to look
those over and make sure the change still looks good.
I checked
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Major buildbot failures caused by this change, eg:
ERROR: test_file (test.test_urllib2net.OtherNetworkTests)
--
Traceback (most recent call last):
File
/home
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
I think this is ready for a first review. See
http://codereview.appspot.com/1132041. If everyone agrees this is
inappropriate for 2.7, then I'll port the changes to 3.x. I don't expect there
to be much difference in the 3.x
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
You mean that socket.create_connection(), httplib (issue 3972) and ftplib
(issue 8594) should have used a different API to implement their
source_address option?
I'm not sure what you mean. The problem here is that you
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
One of the tests in test_socket is checking that an attempt to connect to a
port with no server running gives socket.error. For that, we need a port
that's guaranteed to have no server present.
A good way to do
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
stage: unit test needed - patch review
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5727
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
I'm not sure if I agree that find_unused_port() should be removed though; it
does serve a purpose in very rare corner cases.
It can serve a purpose in any number of cases. My point is that it's *always*
unreliable, though
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Considering that it's extremely difficult to implement this correctly and in a
cross-platform way, I think it makes sense as a stdlib addition (though I'd add
it as a method of a `path` type rather than to the shell utilities
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
One open question regarding interaction with threading. sigprocmask's behavior
in a multithreaded program is unspecified. pthread_sigmask should be used
instead. I could either expose both of these and let the caller choose
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
nosy: +gps
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8407
___
___
Python-bugs
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
find_unused_port is the wrong approach altogether. Uses of it should be
replaced by bind_port and then find_unused_port should be removed.
--
___
Python tracker rep...@bugs.python.org
Changes by Jean-Paul Calderone exar...@twistedmatrix.com:
--
nosy: -exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue665761
___
___
Python
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
http://www.openssl.org/news/secadv_20100324.txt
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
New Windows builds of any versions of CPython which are still receiving
security updates should be released
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
For reference:
http://pyopenssl.sourceforge.net/pyOpenSSL.html/openssl-context.html
http://www.heikkitoivonen.net/m2crypto/api/M2Crypto.SSL.Context%27.Context-class.html
and `man -k SSL_CTX_`
--
nosy: +exarkun
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
What is the mnemonic corresponding to errno 35 under OS X?
EAGAIN
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8493
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
But as I said, it's not reliable.
I don't see any evidence in support of this statement. Did you notice that the
FreeBSD thread you referenced is:
* 6 years old
* about UDP
It's not obvious to me that it's actually
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
None of that has much relevance when the socket is in *non-blocking* mode.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8493
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
If there's something else that would be useful and I can provide it, I'd be
glad to.
A minimal example which reproduces the behavior. :)
--
___
Python tracker rep...@bugs.python.org
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
But if someone can get me access to an FTP server on the other end of a slow
link, I'd be glad to do what I can half-wink.
It's easy to get a slow FTP server. Twisted's FTP support lets you do all
kinds of customization
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
getpeername() sometimes failing soon after a socket is created is a
semi-well-known Windows socket... feature. For whatever that's worth.
--
___
Python tracker rep...@bugs.python.org
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
It'd be nice to have a unit test that passes a small enough value to listen()
to trigger the check. Since there's no way to reliably determine what the
system backlog really is, there's probably no reason to actually try
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Well, at the risk of stating the obvious, perhaps the dup() thing should be
eliminated. The justification for it seems less than clear, and apparently it
causes some problems.
That might be a direction to consider in the long
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Furthermore, python's socket documentation makes it clear:
Why does CPython go out of its way to make it impossible to pass 0 to the
platform listen() API? The part of the specification you quoted makes it very
clear that 0
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
SMTP (RFC 2821) doesn't support non-ASCII envelope addresses. A better
behavior here would be for connection.login to raise a ValueError or a
TypeError whenever a non-str is passed in.
RFC 5336, though, adds the UTF8SMTP
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
The one big difference I can see is that set_wakeup_fd() doesn't transmit the
signal number, but this could be fixed if desired (instead of sending '\0',
send a byte containing the signal number).
There's a lot more
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Will the modified test fail on platforms that don't define HAVE_SIGACTION?
Only if they also have siginterrupt, which seems unlikely (as neologix
explained). The implemented behavior on such platforms is unmodified from
New submission from Jean-Paul Calderone exar...@divmod.com:
There are two tests for the way inspect.classify_class_attrs handles various
sorts of attributes. The tests are identical, except one uses a classic class
and one a new-style class. The tests sources have actually begun to diverge
Changes by Jean-Paul Calderone exar...@divmod.com:
Added file: http://bugs.python.org/file16856/test_inspect.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8363
Jean-Paul Calderone exar...@divmod.com added the comment:
Okay.
I shouldn't commit until after trunk is unfrozen though, right?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8363
Jean-Paul Calderone exar...@twistedmatrix.com added the comment:
Committed in r79935
--
resolution: - fixed
stage: - committed/rejected
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8363
Jean-Paul Calderone exar...@divmod.com added the comment:
The name suggests a different behavior to me - I assumed it would set the
reference count to a specific value. Maybe this is the kind of thing Raymond
had in mind when he said The mnemonic doesn't work for me.
--
nosy
Jean-Paul Calderone exar...@divmod.com added the comment:
Just a couple comments:
* If MSG_WAITALL is defined and a signal interrupts recv, will a string
shorter than requested will be returned by sock_recvall?
* Since MSG_WAITALL is already exposed to Python (when the underlying
platform
Jean-Paul Calderone exar...@divmod.com added the comment:
What kind of signals can be received in real-life?
There are lots of possible answers. Here's one. You launch a child process
with os.fork() (and perhaps os.exec*() as well). Eventually you'll get a
SIGCHLD in the parent when
Jean-Paul Calderone exar...@divmod.com added the comment:
Why is the Microsoft CRT argument error handler no longer disabled?
--
nosy: +exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue8036
Jean-Paul Calderone exar...@divmod.com added the comment:
I think it's likely that the test program does drastically different things on
Linux than it does on OS X:
Python 2.6.4 (r264:75706, Dec 7 2009, 18:45:15)
[GCC 4.4.1] on linux2
Type help, copyright, credits or license for more
Jean-Paul Calderone exar...@divmod.com added the comment:
So is it reasonable / unavoidable that UCS4 builds should be 1200 times
slower at regex handling?
No, but it's probably reasonable / unavoidable that a more complex regex should
be some number of times slower than a simpler regex
Jean-Paul Calderone exar...@divmod.com added the comment:
With paramterized tests *all* the tests are run and *all* failures reported.
With testing in a loop the tests stop at the first failure.
+1 to this justification. Parameterized tests are a big win over a simple for
loop in a test
Jean-Paul Calderone exar...@divmod.com added the comment:
Your output looks fishy. Anyway, the behavior of += isn't a bug:
a = b = (1, 2)
a += (1, 2, 3)
a
(1, 2, 1, 2, 3)
a is b
False
It's confusing, to be sure, but no mutation is going on. += is only in-place
if applied to something
Jean-Paul Calderone exar...@divmod.com added the comment:
Something else I think it would be nice to consider is what the id() (and
shortDescription(), heh) of the resulting tests will be.
It would be great if the id were sufficient to identify a particular test *and*
data combination
Jean-Paul Calderone exar...@divmod.com added the comment:
Sounds like one.
As far as the trial behavior goes, trial foo.test_suite won't work, but
trial foo will call foo.test_suite, if one is defined.
--
nosy: +exarkun
___
Python tracker rep
Jean-Paul Calderone exar...@divmod.com added the comment:
I agree that changing the result object is a better way to implement this
feature: if the results object wants to report things by *name*, not
*description*, then it should get the test's *name*, not rely on changing the
meaning
New submission from Jean-Paul Calderone exar...@divmod.com:
From python-dev:
On Fri, Jan 29, 2010 at 15:04, exar...@twistedmatrix.com wrote:
On 10:47 pm, tjre...@udel.edu wrote:
On 1/29/2010 4:19 PM, Collin Winter wrote:
On Fri, Jan 29, 2010 at 7:22 AM, Nick Coghlanncogh...@gmail.com
Changes by Jean-Paul Calderone exar...@divmod.com:
--
nosy: -exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7092
___
___
Python-bugs-list
Jean-Paul Calderone exar...@divmod.com added the comment:
There's no bug here. You've misunderstood how the literal \0 syntax works.
Perhaps this will clarify things:
list('\0123')
['\n', '3']
list('\x00123')
['\x00', '1', '2', '3']
--
nosy: +exarkun
Jean-Paul Calderone exar...@divmod.com added the comment:
It doesn't matter whether \0 or \x00 is used. They mean the same thing. Maybe
this is the example I should have given:
list('\0%s' % ('12',))
['\x00', '1', '2']
list('\x00%s' % ('12',))
['\x00', '1', '2
Jean-Paul Calderone exar...@divmod.com added the comment:
Loosely related to issue4221.
--
nosy: +exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7710
New submission from Jean-Paul Calderone exar...@divmod.com:
pystack tries to detect C frames which it can extract Python frame info from.
However, it still references the old, now (supposedly) unused PyEval_EvalFrame
function. This leads it to never find any frames, since PyEval_EvalFrameEx
New submission from Jean-Paul Calderone exar...@divmod.com:
This issue may extend beyond just unicode.upper() and unicode.lower(), but it's
very clear with these two methods, at least.
For example, consider DESERET SMALL LETTER EW. On a UTF-16 build, calling
upper on a string containing
Jean-Paul Calderone exar...@divmod.com added the comment:
Any hope of this being fixed?
--
nosy: +exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1379416
Jean-Paul Calderone exar...@divmod.com added the comment:
I think this warning is both annoying (cPickle is a legitimate module to use
in 2.x, since pickle is much slower) and useless (2to3 should be able to do
the module rename -- Benjamin, does it?). Therefore I suggest to remove
New submission from Jean-Paul Calderone exar...@divmod.com:
Sometime between Python 2.6 and 2.7a1, the
unittest.TestCase.shortDescription method changed from returning just
the test method name to the test method name, in parentheses, the fully
qualified Python name of the test case
Jean-Paul Calderone exar...@divmod.com added the comment:
I don't like the suggestion to lower the timeout to select(). Lots of
the rest of the world is pushing towards removing this kind of periodic
polling (generally with the goal of improving power consumption).
Python should be going
Jean-Paul Calderone exar...@divmod.com added the comment:
http://docs.python.org/library/signal.html
I would argue it is not broken.
If it's not broken, then the docs are at least confusing. They should
make clear whether they are talking about the underlying signal or the
Python signal
Jean-Paul Calderone exar...@divmod.com added the comment:
Or an interaction between TestCase and DocTestCase. TestCase.__eq__ and
TestCase.__hash__ are both implemented in terms of the _testMethodName
attribute. It looks like this is *always* runTest for a DocTestCase
instance. It probably
New submission from Jean-Paul Calderone exar...@divmod.com:
Here's an example of a metaclass with a __cmp__ special:
exar...@boson:/tmp$ cat metacmp.py
class X(type):
def __cmp__(self, other):
return -1
class Y:
__metaclass__ = X
print Y Y
exar
Jean-Paul Calderone exar...@divmod.com added the comment:
Apparently type has __lt__ and the other rich cmp specials in Python
2.6, but lacked them in Python 2.5. I suppose these are probably being
given precedence over the overridden __cmp__
New submission from Jean-Paul Calderone exar...@divmod.com:
Consider this example, based on two doctests from Twisted:
from doctest import DocTestSuite
import twisted.web2.stream
docTestOne = DocTestSuite(twisted.web2.stream)._tests[0]
import twisted.web2.test.test_stream
docTestTwo
Jean-Paul Calderone exar...@divmod.com added the comment:
Will this be fixed for Python 2.7 final?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue6071
Jean-Paul Calderone exar...@divmod.com added the comment:
New version attached which makes the os.rst docs the same as the
docstring. Also fixes a conflict since introduced in trunk in configure.in.
--
Added file: http://bugs.python.org/file15440/initgroups-5.patch
Jean-Paul Calderone exar...@divmod.com added the comment:
`Popen` is the wrong place to implement this functionality. It may be
reasonable to introduce a higher-level wrapper API which does this sort
of thing. Consider that if `Popen` itself does it, though, then there
is no way to launch
New submission from Jean-Paul Calderone exar...@divmod.com:
Passing NUL as the separator to isoformat drops the time part of the
result entirely:
import datetime
datetime.datetime.today().isoformat()
'2009-11-30T20:57:37.918750'
datetime.datetime.today().isoformat('x')
'2009-11-30x20:57
New submission from Jean-Paul Calderone exar...@divmod.com:
$ python -m pstats
Welcome to the profile statistics browser.
% help
Documented commands (type help topic):
EOF add callees callers quit read reverse sort stats strip
Undocumented
Jean-Paul Calderone exar...@divmod.com added the comment:
Python 2.6, Linux.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7348
___
___
Python
New submission from Jean-Paul Calderone exar...@divmod.com:
cStringIO and file both accept -1 to readline to mean the same thing as
not passing any argument at all. StringIO, on the other hand, gets
totally confused:
from StringIO import StringIO
StringIO('a\nb\nfoo').readline(-1
New submission from Jean-Paul Calderone exar...@divmod.com:
The actual file type rejects None in places like as the argument to read
or readlines. StringIO.StringIO, io.BytesIO, and io.StringIO all accept
None to mean the same as passing no argument at all.
This makes it tricky to write code
Jean-Paul Calderone exar...@divmod.com added the comment:
Alright. Updated patch attached.
--
Added file: http://bugs.python.org/file15353/initgroups-3.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7333
Jean-Paul Calderone exar...@divmod.com added the comment:
pyflakes told me I didn't import errno in test_posix.py. Updated patch
attached.
--
Added file: http://bugs.python.org/file15354/initgroups-4.patch
___
Python tracker rep...@bugs.python.org
Jean-Paul Calderone exar...@divmod.com added the comment:
How about bringing callable back since there is no obvious replacement
for it? It's valuable as a LYBL check in circumstances where an object
submitted far away from the place where it's invoked. Such uses can't
easily be replaced
New submission from Jean-Paul Calderone exar...@divmod.com:
initgroups(2) is a function for initializing the aux group id list from
site-specific configuration (typically /etc/groups, but not necessarily).
Attached is a patch based on some code from Zope, expanded to have a
test and some docs
Jean-Paul Calderone exar...@divmod.com added the comment:
In case anyone is concerned about licensing issues, please see
https://mail.zope.org/pipermail/zope-dev/2009-November/038289.html
--
___
Python tracker rep...@bugs.python.org
http
Jean-Paul Calderone exar...@divmod.com added the comment:
Good point. Updated patch attached.
--
Added file: http://bugs.python.org/file15347/initgroups-2.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7333
Jean-Paul Calderone exar...@divmod.com added the comment:
Antoine asked me to give my opinion on the non-blocking SSL API. I can
say that the current behavior of SSLSocket.recv is certainly not very
good and probably makes SSLSocket useless for any non-blocking
application. Letting
New submission from Jean-Paul Calderone exar...@divmod.com:
If the test suite is run with -3, many deprecation warnings are
reported. Quite a few are generated by code in the tests themselves,
but many are from constructs in the stdlib which are different or no
longer supported in 3.x.
Even
Jean-Paul Calderone exar...@divmod.com added the comment:
It would be useful to have the surrogateescape error handler backported
to 2.7 to make it easier to start handling the kind of data it is needed
for.
--
nosy: +exarkun
___
Python tracker rep
Jean-Paul Calderone exar...@divmod.com added the comment:
How about putting this into the logging module instead? Instead of
python logging options program program options, making it
python -m logging logging options program program options.
This:
* involves no changes to the core
Jean-Paul Calderone exar...@divmod.com added the comment:
Wouldn't it be nice to add a test for this case, to demonstrate that
non-blocking reads really are possible?
--
nosy: +exarkun
___
Python tracker rep...@bugs.python.org
http://bugs.python.org
Jean-Paul Calderone exar...@divmod.com added the comment:
I'm not sure I'll be able to work on this again for a while after this
morning, so here's a patch. I don't really understand how the exception
structs are involved here, so I don't really know why the patch works,
but it seems
Jean-Paul Calderone exar...@divmod.com added the comment:
prctl is not portable. I always thought that the premise of stdlib is to
provide portable interfaces. BSD, for example, uses setprocname instead
of prctl. Also, prctl does not modify the process name shown in ps
uxww. Here's how
Jean-Paul Calderone exar...@divmod.com added the comment:
Perhaps also worth noting is that in Python 2.4 as well, str(exception)
and unicode(exception) returned the same thing. Unlike some other
exception changes in 2.6, this doesn't seem to be a return to older
behavior, but just a new
Jean-Paul Calderone exar...@divmod.com added the comment:
FWIW, I'm waiting to hear about the acceptability of adding fields to
the exception structure(s) before I work on this patch.
--
___
Python tracker rep...@bugs.python.org
http
Jean-Paul Calderone exar...@divmod.com added the comment:
Can this ticket be marked as a release blocker so it's not forgotten
about for 2.7?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue6071
Jean-Paul Calderone exar...@divmod.com added the comment:
Can I add a field to the PyBaseExceptionObject struct?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue6844
Jean-Paul Calderone exar...@divmod.com added the comment:
After looking at this more carefully, I find myself wondering what
exactly is being deprecated at all.
Brett said:
it's needed for anyone who came to rely on the feature in their 2.5
code from Python.
Can someone help me understand
Jean-Paul Calderone exar...@divmod.com added the comment:
Hm. That PEP is marked as rejected, though. I guess it was partially
implemented, those changes included in the Python 2.5 release, and then
it was decided that it was a bad idea, rejected, and the changes undone
for 3.x (what about 2.7
101 - 200 of 379 matches
Mail list logo