From mboxrd@z Thu Jan 1 00:00:00 1970 From: aq Subject: Re: [PATCH] replace tabs with spaces of Python code Date: Thu, 19 May 2005 20:49:12 +0900 Message-ID: <9cde8bff05051904496f35283c@mail.gmail.com> References: <9cde8bff05051819402d7b80e@mail.gmail.com> <3d8eece205051902171282fa2e@mail.gmail.com> Reply-To: aq Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <3d8eece205051902171282fa2e@mail.gmail.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Christian.Limpach@cl.cam.ac.uk Cc: Ian Pratt , xen-devel List-Id: xen-devel@lists.xenproject.org On 5/19/05, Christian Limpach wrote: > On 5/19/05, aq wrote: > > > The script from python.org that Anthony posted seems to fit the bill. > > > > no, that script doesnt work very well, because: > > 1. almost all the code indented by 4 spaces, but his script convert > > tab to 8 spaces > > 2. some code consider tab as 4 and 8 spaces in the same file, so it is > > hard to use this script. > > 3. that script doesnt see how python deal with the code. for example, > > lines the python code is aligned with the previous line, but the > > script doesnt take that into account. that is a problem. > > > > a small example: file tools/python/xen/xm/main.py has few tabs inside, > > and here is how Anthony's script converts the code, and it does it > > wrongly. i have 3 files to compare here, so you can make a conclusion: > > the main.org.py (copy from original main.py), main-t2s.py (converted > > with Anthony's script, with tabsize=3D4) and main-aq.py (my script, > > coverted manually) > > > > now to see the problem, here is a hunk taken from the diffs. see the > > commented i put next to the broken line: >=20 > That's because you broke the script by changing tabsize to 4. As > Anthony wrote, the python manual describes the algorithm used to > expand tabs and how tabs get expanded has nothing to with how you have > indented your program. Whether your indention levels are 4 character > wide or 8 doesn't matter, a tab always means go to the next 8 > character column. The original main.py looks visually incorrect at > the args.append line (it's indented by 8 characters instead of 4) but > that's not a bug. Yes, I agree. Actually Anthony's script (with tabsize=3D8) can be used to convert all related Python files, and the result code would work like before.But since all the code originally indented with 4 spaces, then we should still readjust some code a little bit. If you want to play safely, I would rather use that script to remove tabs completely, than leave them as they are now (not buggy but *evil*). regards, aq