[issue10563] Spurious newline in time.ctime
Georg Brandl ge...@python.org added the comment: This has now been superseded by the changes made for issue #8013. -- nosy: +georg.brandl resolution: - out of date status: open - closed superseder: - time.asctime segfaults when given a time in the far future ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
New submission from Gerrit Holl topjakl...@gmail.com: When the time passed to time.ctime is large, it adds a newline: import time time.ctime(236) 'Wed Apr 8 17:04:32 6325' time.ctime(237) 'Wed Jul 14 08:09:04 10680\n' -- components: Library (Lib) messages: 122665 nosy: Gerrit.Holl priority: normal severity: normal status: open title: Spurious newline in time.ctime versions: Python 2.6, Python 2.7, Python 3.1 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Eric Smith e...@trueblade.com added the comment: There's an error in time_ctime where it expects the length of the string to be fixed: if (p[24] == '\n') p[24] = '\0'; It doesn't count on the year having 5 digits. It should probably say (untested): l = len(p); if (l 0 p[l-1] == '\n') p[l-1] = '\0'; I'll whip up a patch and some tests. I'm not sure if the tests will work on platforms other than Linux. I'll see what I can find out about ctime and large values. -- nosy: +eric.smith ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Eric Smith e...@trueblade.com added the comment: That should be strlen(), of course. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Eric Smith e...@trueblade.com added the comment: What platform are you running this on? My Fedora 32 bit system won't support a time_t that large. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Gerrit Holl topjakl...@gmail.com added the comment: I'm on a 64bit system (kubuntu lucid lynx) $ uname -a Linux sjisjka 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU/Linux -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Eric Smith e...@trueblade.com added the comment: Can you try this diff and see if it solves the problem: Index: Modules/timemodule.c === --- Modules/timemodule.c(revision 86848) +++ Modules/timemodule.c(working copy) @@ -639,6 +639,7 @@ PyObject *ot = NULL; time_t tt; char *p; +Py_ssize_t len; if (!PyArg_UnpackTuple(args, ctime, 0, 1, ot)) return NULL; @@ -657,8 +658,10 @@ PyErr_SetString(PyExc_ValueError, unconvertible time); return NULL; } -if (p[24] == '\n') -p[24] = '\0'; +len = strlen(p); +if (len 0 p[len-1] == '\n') +/* Remove the trailing newline, if present. */ +p[len-1] = '\0'; return PyUnicode_FromString(p); } -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Gerrit Holl topjakl...@gmail.com added the comment: Yes, this solves the issue: $ ./python Python 3.1.3 (r313:86834, Nov 28 2010, 17:34:23) [GCC 4.4.3] on linux2 Type help, copyright, credits or license for more information. import time time.ctime(240) 'Fri Apr 10 03:12:32 71654' -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Changes by Eric Smith e...@trueblade.com: -- components: +Extension Modules -Library (Lib) keywords: +easy, patch stage: - unit test needed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Alexander Belopolsky belopol...@users.sourceforge.net added the comment: This looks like a bug in the underlying platform. POSIX requires [1] that the output of ctime() fits in a 26-character buffer. Note that a change has been recently made to time.asctime() to reject year . See r85137 and issue6608. I think for consistency, we should reject huge timestamps in time ctime() as well. [1] http://www.opengroup.org/onlinepubs/009695399/functions/ctime.html -- nosy: +belopolsky ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10563] Spurious newline in time.ctime
Changes by Alexander Belopolsky belopol...@users.sourceforge.net: -- assignee: - belopolsky stage: unit test needed - needs patch type: - feature request versions: +Python 3.2 -Python 2.6, Python 2.7, Python 3.1 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue10563 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com