I use web2py-1.94.6 at WindowsXp sp3.
I make application "foo" with "New simple application" on "http://
127.0.0.1:8000/admin/default/site".
I clicked "edit" under "foo" and "edit" under "Controllers".
Doing nothing,I pushed save button.Then, End_Of_Line is changed from
LF(\n) to CRLF(\r\n).

---- print out with od -c(cygwin) ----
keishi@kotori /cygdrive/c/web2py/web2py-1.94.6/applications/foo/
controllers
$ head -n 1 default.py|od -c
0000000   #       -   *   -       c   o   d   i   n   g   :       u
t
0000020   f   -   8       -   *   -  \r  \n
0000031

---- end ----

I think this makes confusion between Windows user and Liunx user.
So I propose that we use open([file],"wb") in opening file for writing
on all platform because "b" is ignored

except Windows and in reading no ploblem is found.
There is a patch with "hg export" below.(Repository is cloned with "hg
clone https://web2py.googlecode.com/hg/

web2py" on April 20 2011.)

---- start  ----

# HG changeset patch
# User Keishi Ooshio <[email protected]>
# Date 1303271041 -32400
# Node ID 4eb4d5ed36842c0cfde337c43709c970bfb99418
# Parent  9c0bfc66640443cb58db7854b3e9f1eaa0d0c23e
In Editting on Windows ,Make End_Of_Line LF

diff -r 9c0bfc666404 -r 4eb4d5ed3684 applications/admin/controllers/
default.py
--- a/applications/admin/controllers/default.py Wed Apr 20 11:51:41
2011 +0900
+++ b/applications/admin/controllers/default.py Wed Apr 20 12:44:01
2011 +0900
@@ -5,6 +5,7 @@
 from glob import glob
 import shutil
 import platform
+import re

 if DEMO_MODE and request.function in

['change_password','pack','pack_plugin','upgrade_web2py','uninstall','cleanup','compile_app','remove_compiled_app

','delete','delete_plugin','create_file','upload_file','update_languages','reload_routes']:
     session.flash = T('disabled in demo mode')
@@ -23,6 +24,8 @@
         class tmp:
             def write(self,data): pass
         return tmp()
+    if platform.system() == 'Windows':
+        b = re.sub(r"wb?","wb",b)
     return open(a,b)

 def get_app(name=None):
diff -r 9c0bfc666404 -r 4eb4d5ed3684 applications/admin/controllers/
gae.py
--- a/applications/admin/controllers/gae.py     Wed Apr 20 11:51:41 2011
+0900
+++ b/applications/admin/controllers/gae.py     Wed Apr 20 12:44:01 2011
+0900
@@ -55,7 +55,7 @@
         data=open(yaml,'r').read()
         data = re.sub('application:.*','application: %s' %
form.vars.google_application_id,data)
         data = regex.sub('(applications/(%s)/.*)|' %
'|'.join(ignore_apps),data)
-        open(yaml,'w').write(data)
+        open(yaml,'wb').write(data)

         path = request.env.applications_parent
         cmd = '%s --email=%s --passin update %s' % \
diff -r 9c0bfc666404 -r 4eb4d5ed3684 applications/admin/controllers/
mercurial.py
--- a/applications/admin/controllers/mercurial.py       Wed Apr 20 11:51:41
2011 +0900
+++ b/applications/admin/controllers/mercurial.py       Wed Apr 20 12:44:01
2011 +0900
@@ -29,7 +29,7 @@
         repo = hg.repository(ui=uio, path=path, create=True)
     hgignore = os.path.join(path, '.hgignore')
     if not os.path.exists(hgignore):
-        open(hgignore, 'w').write(_hgignore_content)
+        open(hgignore, 'wb').write(_hgignore_content)
     return repo

 def commit():

----  end  ----

Reply via email to