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 <
keishi...@gmail.com>
# 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 ----