Issue Details (XML | Word | Printable)

Key: MODPYTHON-168
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Jim Gallacher
Reporter: Jim Gallacher
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
mod_python

psp_parser fails when CR is used as a line terminator

Created: 30/Apr/06 01:48 AM   Updated: 17/Apr/07 10:45 AM
Return to search
Component/s: core
Affects Version/s: 3.3.x
Fix Version/s: 3.3.1

Time Tracking:
Not Specified

Environment: Mac OS X using older GoLive editor

Resolution Date: 29/Jul/06 11:49 AM


 Description  « Hide
As reported by Jeff Zelt:

"""
On Mac OS X, make sure that your HTML files are terminated by :

   a line feed (ascii 10) and NOT a carriage return (ascii 13).

PSP does *not* like lines terminated by only a carriage return.

The problem was that I was using Adobe GoLive to edit my web pages and to insert the python code in the page (I am talking about the source view, not the WYSIWYG/Layout view). My version of GoLive is a little old and still prefers to write files with carriage return line endings. This was the default for the Mac OS before Mac OS X. Everything *looks* OK in the GoLive editor and it also looked OK in the other editors I chose to check the code (other editors would have tipped me off, but I did not use one of those).

However, it seems that the PSP engine, or whatever you want to call it, does not treat carriage returns as line endings, and therefore chokes badly when encountering code written this way.

GoLive has a menu item where you can select the desired line terminator. I selected "Unix (LF)". This made no visible change to the document when viewed in GoLive, but then suddenly the <% ... %> PSP parts of the document worked perfectly.

"""

I've confirmed that psp_parser.l expects lines of python code to be terminated with: "\r\n | \n | %>" so the fix should be a one liner.

Index: src/psp_parser.l
===================================================================
--- src/psp_parser.l (revision 398185)
+++ src/psp_parser.l (working copy)
@@ -119,7 +119,7 @@
     }
 }
 
-<PYCODE>\r\n|\n {
+<PYCODE>\r\n|\n|\r {
     psp_string_appendc(&PSP_PG(pycode), '\n');
         
     PSP_PG(seen_newline) = 1;







 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Jim Gallacher made changes - 29/Jul/06 11:49 AM
Field Original Value New Value
Status Open [ 1 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
Fix Version/s 3.3 [ 12310101 ]
Graham Dumpleton made changes - 17/Apr/07 10:45 AM
Status Resolved [ 5 ] Closed [ 6 ]