Hello Keishi, thanks for the patch. This has pros and cons. Let's discuss it on web2py-developers and feel free to join.
Other windows users, what do you think? Massimo On Apr 24, 12:40 am, Keishi Ooshio <[email protected]> wrote: > 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 > clonehttps://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','clean > up','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 ----

