Benjamin Peterson
76aa1fb3b1
merge 3.4 ( #27774 )
2016-08-15 22:05:06 -07:00
Benjamin Peterson
10bc0f6edf
merge 3.3 ( #27774 )
2016-08-15 22:03:44 -07:00
Benjamin Peterson
3a27b0857e
do not decref value borrowed from list ( closes #27774 )
2016-08-15 22:01:41 -07:00
Serhiy Storchaka
2954f83999
- Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 18:20:03 +03:00
Serhiy Storchaka
1a2b24f02d
Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Serhiy Storchaka
977b3ac1c1
Issue #27177 : Match objects in the re module now support index-like objects
...
as group indices. Based on patches by Jeroen Demeyer and Xiang Zhang.
2016-06-18 16:48:07 +03:00
Serhiy Storchaka
f01e408c16
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:12:01 +03:00
Serhiy Storchaka
57a01d3a0e
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:05:40 +03:00
Serhiy Storchaka
ec39756960
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:50:03 +03:00
Serhiy Storchaka
48842714b9
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:45:48 +03:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Serhiy Storchaka
2d06e84455
Issue #25923 : Added the const qualifier to static constant arrays.
2015-12-25 19:53:18 +02:00
Serhiy Storchaka
f006940351
Issue #20440 : Massive replacing unsafe attribute setting code with special
...
macro Py_SETREF.
2015-12-24 10:39:57 +02:00
Serhiy Storchaka
5a57ade58e
Issue #20440 : Massive replacing unsafe attribute setting code with special
...
macro Py_SETREF.
2015-12-24 10:35:59 +02:00
Serhiy Storchaka
5bccb29de5
Issue #18684 : Fixed reading out of the buffer in the re module.
2015-07-06 14:23:04 +03:00
Serhiy Storchaka
02eae6b1f2
Issue #18684 : Fixed reading out of the buffer in the re module.
2015-07-06 14:03:01 +03:00
Serhiy Storchaka
03d6ee3823
Issue #18684 : Fixed reading out of the buffer in the re module.
2015-07-06 13:58:33 +03:00
Yury Selivanov
bb215e2300
Merge 3.5 (Issue #19235 )
2015-07-03 01:10:11 -04:00
Yury Selivanov
f488fb422a
Issue #19235 : Add new RecursionError exception. Patch by Georg Brandl.
2015-07-03 01:04:23 -04:00
Serhiy Storchaka
66dc4648fc
Issue #24426 : Fast searching optimization in regular expressions now works
...
for patterns that starts with capturing groups. Fast searching optimization
now can't be disabled at compile time.
2015-06-21 14:06:55 +03:00
Larry Hastings
2d0a69a456
Fix Windows build breakage from checkins on Issues #20148 and #20168 .
2015-05-03 14:49:19 -07:00
Serhiy Storchaka
a860aeaf98
Issue #20148 : Converted the _sre module to Argument Clinic.
2015-05-03 15:54:23 +03:00
Serhiy Storchaka
07360df481
Issue #14260 : The groupindex attribute of regular expression pattern object
...
now is non-modifiable mapping.
2015-03-30 01:01:48 +03:00
Serhiy Storchaka
632a77e6a3
Issue #22364 : Improved some re error messages using regex for hints.
2015-03-25 21:03:47 +02:00
Serhiy Storchaka
83e802796c
Issue #22818 : Splitting on a pattern that could match an empty string now
...
raises a warning. Patterns that can only match empty strings are now
rejected.
2015-02-03 11:04:19 +02:00
Serhiy Storchaka
4b8f8949b4
Issue #17381 : Fixed handling of case-insensitive ranges in regular expressions.
...
Added new opcode RANGE_IGNORE.
2014-10-31 12:36:56 +02:00
Serhiy Storchaka
5aa47443c6
Issue #22584 : Got rid of character tables in _sre.c and use standard macros
...
Py_TOLOWER, Py_ISSPACE, etc.
2014-10-10 11:10:46 +03:00
Serhiy Storchaka
9baa5b2de2
Issue #22437 : Number of capturing groups in regular expression is no longer
...
limited by 100.
2014-09-29 22:49:23 +03:00
Victor Stinner
706768c687
Issue #22156 : Fix some "comparison between signed and unsigned integers"
...
compiler warnings in the Modules/ subdirectory.
2014-08-16 01:03:39 +02:00
Serhiy Storchaka
429b59ec69
Issue #20998 : Fixed re.fullmatch() of repeated single character pattern
...
with ignore case. Original patch by Matthew Barnett.
2014-05-14 21:48:17 +03:00
Serhiy Storchaka
ccdf352370
Issue #20283 : RE pattern methods now accept the string keyword parameters
...
as documented. The pattern and source keyword parameters are left as
deprecated aliases.
2014-03-06 11:28:32 +02:00
Serhiy Storchaka
a537eb45fd
Issue #20283 : RE pattern methods now accept the string keyword parameters
...
as documented. The pattern and source keyword parameters are left as
deprecated aliases.
2014-03-06 11:36:15 +02:00
Larry Hastings
2623c8c23c
Issue #20530 : Argument Clinic's signature format has been revised again.
...
The new syntax is highly human readable while still preventing false
positives. The syntax also extends Python syntax to denote "self" and
positional-only parameters, allowing inspect.Signature objects to be
totally accurate for all supported builtins in Python 3.4.
2014-02-08 22:15:29 -08:00
Larry Hastings
581ee3618c
Issue #20326 : Argument Clinic now uses a simple, unique signature to
...
annotate text signatures in docstrings, resulting in fewer false
positives. "self" parameters are also explicitly marked, allowing
inspect.Signature() to authoritatively detect (and skip) said parameters.
Issue #20326 : Argument Clinic now generates separate checksums for the
input and output sections of the block, allowing external tools to verify
that the input has not changed (and thus the output is not out-of-date).
2014-01-28 05:00:08 -08:00
Larry Hastings
c20472640c
Issue #20390 : Small fixes and improvements for Argument Clinic.
2014-01-25 20:43:29 -08:00
Larry Hastings
5c66189e88
Issue #20189 : Four additional builtin types (PyTypeObject,
...
PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
have been modified to provide introspection information for builtins.
Also: many additional Lib, test suite, and Argument Clinic fixes.
2014-01-24 06:17:25 -08:00
Larry Hastings
df7c22b25b
Issue #19723 : Missed one conversion to the new Argument Clinic syntax.
2014-01-07 14:25:26 -08:00
Larry Hastings
16c5191ab3
Issue #20144 : Argument Clinic now supports simple constants as parameter
...
default values. inspect.Signature correspondingly supports them in
__text_signature__ fields for builtins.
2014-01-07 11:53:01 -08:00
Serhiy Storchaka
32eddc1bbc
Issue #16203 : Add re.fullmatch() function and regex.fullmatch() method,
...
which anchor the pattern at both ends of the string to match.
Original patch by Matthew Barnett.
2013-11-23 23:20:30 +02:00
Serhiy Storchaka
5c24d0e504
Issue #13592 : Improved the repr for regular expression pattern objects.
...
Based on patch by Hugo Lopes Tavares.
2013-11-23 22:42:43 +02:00
Victor Stinner
f558778f07
Fix compiler warning (especially on Windows 64-bit): don't truncate Py_ssize_t
...
to int
2013-11-15 23:21:11 +01:00
Serhiy Storchaka
efa5a39fa5
Issue #19405 : Fixed outdated comments in the _sre module.
2013-10-27 08:04:58 +02:00
Serhiy Storchaka
1985f7b133
Issue #19405 : Fixed outdated comments in the _sre module.
2013-10-27 08:07:46 +02:00
Serhiy Storchaka
8444ebbd72
Issue #18685 : Extract template part of _sre.c into separated sre_lib.h file.
2013-10-26 11:18:42 +03:00
Serhiy Storchaka
9eabac68a3
Issue #18685 : Restore re performance to pre-PEP 393 levels.
2013-10-26 10:45:48 +03:00
Serhiy Storchaka
8b150ecfc9
Issue #19327 : Fixed the working of regular expressions with too big charset.
2013-10-24 22:04:37 +03:00
Serhiy Storchaka
be80fc9a84
Issue #19327 : Fixed the working of regular expressions with too big charset.
2013-10-24 22:02:58 +03:00
Serhiy Storchaka
36af10c1f7
Issue #17087 : Improved the repr for regular expression match objects.
2013-10-20 13:13:31 +03:00
Brett Cannon
baced5668a
Fix a refleak in _sre
2013-10-18 14:03:16 -04:00
Serhiy Storchaka
25324971fb
Issue #18468 : The re.split, re.findall, and re.sub functions and the group()
...
and groups() methods of match object now always return a string or a bytes
object.
2013-10-16 12:46:28 +03:00
Georg Brandl
daa1fa991c
Back out accidentally pushed changeset b51218966201.
2013-10-13 09:32:59 +02:00
Georg Brandl
4300019e1a
Add re.fullmatch() function and regex.fullmatch() method, which anchor the
...
pattern at both ends of the string to match.
Patch by Matthew Barnett.
Closes #16203 .
2013-10-13 09:18:45 +02:00
Serhiy Storchaka
a83a022f9a
Issue #18672 : Fixed format specifiers for Py_ssize_t in debugging output in
...
the _sre moduel.
2013-09-05 18:02:31 +03:00
Serhiy Storchaka
134f0de66d
Issue #18672 : Fixed format specifiers for Py_ssize_t in debugging output in
...
the _sre moduel.
2013-09-05 18:01:15 +03:00
Victor Stinner
1fa174a418
Get rid of signed/unsigned comparaison in _sre.c
...
Fix compilation warnings on Windows (Visual C++) like: "_sre.c(3121): warning
C4018: '>' : signed/unsigned mismatch".
_validate_outer() ensures that groups >= 0, so _validate_inner() can cast
groups to size_t.
2013-08-28 02:06:21 +02:00
Serhiy Storchaka
8fa8ee3970
Issue #18701 : Remove support of old CPython versions (<3.0) from C code.
2013-08-17 00:48:02 +03:00
Serhiy Storchaka
b94f61b6fb
Issue #17998 : Fix an internal error in regular expression engine.
2013-08-03 19:22:28 +03:00
Serhiy Storchaka
1f35ae0a3c
Issue #17998 : Fix an internal error in regular expression engine.
2013-08-03 19:18:38 +03:00
Serhiy Storchaka
6d80046628
Issue #17016 : Get rid of possible pointer wraparounds and integer overflows
...
in the re module. Patch by Nickolai Zeldovich.
2013-04-13 21:16:40 +03:00
Serhiy Storchaka
4bb17348f5
Issue #17016 : Get rid of possible pointer wraparounds and integer overflows
...
in the re module. Patch by Nickolai Zeldovich.
2013-04-13 21:15:47 +03:00
Serhiy Storchaka
e924ddb23e
Issue #9669 : Protect re against infinite loops on zero-width matching in
...
non-greedy repeat. Patch by Matthew Barnett.
2013-02-16 21:25:40 +02:00
Serhiy Storchaka
b0c75a7dec
Issue #9669 : Protect re against infinite loops on zero-width matching in
...
non-greedy repeat. Patch by Matthew Barnett.
2013-02-16 21:25:05 +02:00
Serhiy Storchaka
fa46816915
Issue #9669 : Protect re against infinite loops on zero-width matching in
...
non-greedy repeat. Patch by Matthew Barnett.
2013-02-16 21:23:53 +02:00
Serhiy Storchaka
165ee9645b
Issue #13169 : The maximal repetition number in a regular expression has been
...
increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on
64-bit).
2013-02-16 16:55:54 +02:00
Serhiy Storchaka
a0eb809995
Issue #13169 : The maximal repetition number in a regular expression has been
...
increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on
64-bit).
2013-02-16 16:54:33 +02:00
Serhiy Storchaka
70ca0210e8
Issue #13169 : The maximal repetition number in a regular expression has been
...
increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on
64-bit).
2013-02-16 16:47:47 +02:00
Serhiy Storchaka
ac1069387e
Issue #16688 : Fix backreferences did make case-insensitive regex fail on non-ASCII strings.
...
Patch by Matthew Barnett.
2012-12-29 23:41:08 +02:00
Serhiy Storchaka
c1b59d4552
Issue #16688 : Fix backreferences did make case-insensitive regex fail on non-ASCII strings.
...
Patch by Matthew Barnett.
2012-12-29 23:38:48 +02:00
Andrew Svetlov
6d469ebbc8
rename MathcObject to match object in doctrings for re module ( #16760 )
2012-12-25 18:49:24 +02:00
Andrew Svetlov
41dc9f3cd1
rename MathcObject to match object in doctrings for re module ( #16760 )
2012-12-25 18:49:08 +02:00
Andrew Svetlov
0b64c1415e
rename MathcObject to match object in doctrings for re module ( #16760 )
2012-12-25 18:48:54 +02:00
Andrew Svetlov
77377574dc
Issue #16443 : Add docstrings to regular expression match objects.
...
Patch by Anton Kasyanov.
2012-12-23 20:00:58 +02:00
Andrew Svetlov
70dcef4789
Issue #16443 : Add docstrings to regular expression match objects.
...
Patch by Anton Kasyanov.
2012-12-23 19:59:27 +02:00
Andrew Svetlov
56ad5ed5ad
Issue #16443 : Add docstrings to regular expression match objects.
...
Patch by Anton Kasyanov.
2012-12-23 19:23:07 +02:00
Gregory P. Smith
60112ae319
1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
...
Found by Clang trunk's Undefined-Behavior Sanitizer. [more to come]
2012-12-10 17:45:16 -08:00
Gregory P. Smith
c0dd80e439
1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
...
Found by Clang trunk's Undefined-Behavior Sanitizer. [more to come]
2012-12-10 17:45:03 -08:00
Gregory P. Smith
90555d0f0d
1 << 31 is invalid for signed integers, fix it by making 1 unsigned.
...
Found by Clang trunk's Undefined-Behavior Sanitizer. [more to come]
2012-12-10 17:44:44 -08:00
Antoine Pitrou
d8d1a0ab78
Issue #10182 : The re module doesn't truncate indices to 32 bits anymore.
...
Patch by Serhiy Storchaka.
2012-12-02 12:55:12 +01:00
Antoine Pitrou
9a2b26748b
Issue #10182 : The re module doesn't truncate indices to 32 bits anymore.
...
Patch by Serhiy Storchaka.
2012-12-02 12:54:28 +01:00
Antoine Pitrou
43fb54cd4f
Issue #10182 : The re module doesn't truncate indices to 32 bits anymore.
...
Patch by Serhiy Storchaka.
2012-12-02 12:52:36 +01:00
Antoine Pitrou
39bdad813a
Issue #1160 : Fix compiling large regular expressions on UCS2 builds.
...
Patch by Serhiy Storchaka.
2012-11-20 22:30:42 +01:00
Victor Stinner
7a6d7cf3db
Issue #9566 : Use the right type to fix a compiler warnings on Win64
2012-10-31 00:37:41 +01:00
Sean Reifschneider
7b3c975aaf
closes #14259 re.finditer() now takes keyword arguments: pos, endpos.
...
Contrary to the documentation, finditer() did not take pos and endpos
keyword arguments.
2012-03-12 18:22:38 -06:00
Benjamin Peterson
33d21a24fa
merge 3.2 ( #14212 )
2012-03-07 14:59:13 -06:00
Benjamin Peterson
e48944b69c
keep the buffer object around while we're using it ( closes #14212 )
2012-03-07 14:50:25 -06:00
Ross Lagerwall
88748d7bfe
Issue #10951 : Fix compiler warnings in _sre.c
2012-03-06 21:48:57 +02:00
Victor Stinner
63ab875cfe
Remove "#ifdef Py_UNICODE_WIDE": Python is now always wide
2011-11-22 03:31:20 +01:00
Senthil Kumaran
c6b4ef105e
default - Fix closes Issue 12604 - Use a proper no-op macro expansion for VTRACE macro in _sre.c
...
Patch by Petri Lehtinen and Josh Triplett.
2011-10-20 02:16:59 +08:00
Senthil Kumaran
202a3c422b
3.2 - Fix Issue 12604 - Use a proper no-op macro expansion for VTRACE macro in _sre.c
2011-10-20 02:15:36 +08:00
Martin v. Löwis
c47adb04b3
Change PyUnicode_KIND to 1,2,4. Drop _KIND_SIZE and _CHARACTER_SIZE.
2011-10-07 20:55:35 +02:00
Victor Stinner
0058b8603f
_sre: don't use Py_UNICODE anymore
...
* Downcasting from Py_UCS4 to Py_UNICODE is wrong is Py_UNICODE is 16-bit
wchar_t
* Remove old special case in getstring(), unicode is now handled separetely
2011-09-29 03:27:47 +02:00
Ezio Melotti
7c8c1ea3ec
Fix whitespace.
2011-09-29 01:00:19 +03:00
Ezio Melotti
2aa2b3b4d5
Clean up a few tabs that went in with PEP393.
2011-09-29 00:58:57 +03:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Daniel Stutzbach
a606faa491
Issue 5553: Improved Py_LOCAL_INLINE to actually inline under compilers other than MSC
2010-08-31 19:51:07 +00:00
Benjamin Peterson
08bf91c041
Merged revisions 79307,79408,79430,79533,79542,79579-79580,79585-79587,79607-79608,79622,79717,79820,79822,79828,79862,79875,79923-79924,79941-79943,79945,79947,79951-79952 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79307 | florent.xicluna | 2010-03-22 17:45:50 -0500 (Mon, 22 Mar 2010) | 2 lines
#7667 : Fix doctest failures with non-ASCII paths.
........
r79408 | victor.stinner | 2010-03-24 20:18:38 -0500 (Wed, 24 Mar 2010) | 2 lines
Fix a gcc warning introduced by r79397.
........
r79430 | brian.curtin | 2010-03-25 18:48:54 -0500 (Thu, 25 Mar 2010) | 2 lines
Fix #6538 . Markup RegexObject and MatchObject as classes. Patch by Ryan Arana.
........
r79533 | barry.warsaw | 2010-03-31 16:07:16 -0500 (Wed, 31 Mar 2010) | 6 lines
- Issue #8233 : When run as a script, py_compile.py optionally takes a single
argument `-` which tells it to read files to compile from stdin. Each line
is read on demand and the named file is compiled immediately. (Original
patch by Piotr O?\197?\188arowski).
........
r79542 | r.david.murray | 2010-03-31 20:28:39 -0500 (Wed, 31 Mar 2010) | 3 lines
A couple small grammar fixes in test.rst, and rewrite the
check_warnings docs to be clearer.
........
r79579 | georg.brandl | 2010-04-02 03:34:41 -0500 (Fri, 02 Apr 2010) | 1 line
Add 2.6.5.
........
r79580 | georg.brandl | 2010-04-02 03:39:09 -0500 (Fri, 02 Apr 2010) | 1 line
#2768 : add a note on how to get a file descriptor.
........
r79585 | georg.brandl | 2010-04-02 04:03:18 -0500 (Fri, 02 Apr 2010) | 1 line
Remove col-spanning cells in logging docs.
........
r79586 | georg.brandl | 2010-04-02 04:07:42 -0500 (Fri, 02 Apr 2010) | 1 line
Document PyImport_ExecCodeModuleEx().
........
r79587 | georg.brandl | 2010-04-02 04:11:49 -0500 (Fri, 02 Apr 2010) | 1 line
#8012 : clarification in generator glossary entry.
........
r79607 | andrew.kuchling | 2010-04-02 12:48:23 -0500 (Fri, 02 Apr 2010) | 1 line
#6647 : document that catch_warnings is not thread-safe
........
r79608 | andrew.kuchling | 2010-04-02 12:54:26 -0500 (Fri, 02 Apr 2010) | 1 line
#6647 : add note to two examples
........
r79622 | tarek.ziade | 2010-04-02 16:34:19 -0500 (Fri, 02 Apr 2010) | 1 line
removed documentation on code that was reverted and pushed into distutils2
........
r79717 | antoine.pitrou | 2010-04-03 16:22:38 -0500 (Sat, 03 Apr 2010) | 4 lines
Fix wording / typography, and a slightly misleading statement
(memoryviews don't support complex structures right now)
........
r79820 | benjamin.peterson | 2010-04-05 22:34:09 -0500 (Mon, 05 Apr 2010) | 1 line
ready _sre types
........
r79822 | georg.brandl | 2010-04-06 03:18:15 -0500 (Tue, 06 Apr 2010) | 1 line
#8320 : document return value of recv_into().
........
r79828 | georg.brandl | 2010-04-06 09:33:44 -0500 (Tue, 06 Apr 2010) | 1 line
Add JP.
........
r79862 | georg.brandl | 2010-04-06 15:27:59 -0500 (Tue, 06 Apr 2010) | 1 line
Fix syntax.
........
r79875 | mark.dickinson | 2010-04-06 17:18:23 -0500 (Tue, 06 Apr 2010) | 1 line
More NaN consistency doc fixes.
........
r79923 | georg.brandl | 2010-04-10 06:15:24 -0500 (Sat, 10 Apr 2010) | 1 line
#8360 : skipTest was added in 2.7.
........
r79924 | georg.brandl | 2010-04-10 06:16:59 -0500 (Sat, 10 Apr 2010) | 1 line
#8346 : update version.
........
r79941 | andrew.kuchling | 2010-04-10 20:39:36 -0500 (Sat, 10 Apr 2010) | 1 line
Two grammar fixes
........
r79942 | andrew.kuchling | 2010-04-10 20:40:06 -0500 (Sat, 10 Apr 2010) | 1 line
Punctuation fix
........
r79943 | andrew.kuchling | 2010-04-10 20:40:30 -0500 (Sat, 10 Apr 2010) | 1 line
Add various items
........
r79945 | andrew.kuchling | 2010-04-10 20:40:49 -0500 (Sat, 10 Apr 2010) | 1 line
name correct
........
r79947 | andrew.kuchling | 2010-04-10 20:44:13 -0500 (Sat, 10 Apr 2010) | 1 line
Remove distutils section
........
r79951 | andrew.kuchling | 2010-04-11 07:48:08 -0500 (Sun, 11 Apr 2010) | 1 line
Two typo fixes
........
r79952 | andrew.kuchling | 2010-04-11 07:49:37 -0500 (Sun, 11 Apr 2010) | 1 line
Add two items
........
2010-04-11 16:12:57 +00:00
Victor Stinner
5abeafbb0f
Issue #3299 : replace PyObject_DEL() by Py_DECREF() in _sre module to fix a
...
crash in pydebug mode.
2010-03-04 21:59:53 +00:00
Antoine Pitrou
82feb1f360
Merged revisions 77499 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77499 | antoine.pitrou | 2010-01-14 18:25:24 +0100 (jeu., 14 janv. 2010) | 4 lines
Issue #3299 : Fix possible crash in the _sre module when given bad
argument values in debug mode. Patch by Victor Stinner.
........
2010-01-14 17:34:48 +00:00
Mark Dickinson
1f268285ff
Issue #6561 : '\d' in a regular expression should match only Unicode
...
character category [Nd], not [No].
2009-07-28 17:22:36 +00:00
Mark Dickinson
e94c679df0
Issue #1717 : rename tp_compare to tp_reserved. I'll change the
...
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00