mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	 9ece4a5057
			
		
	
	
		9ece4a5057
		
	
	
	
	
		
			
			There are plenty of legitimate scripts in the tree that begin with a
`#!`, but also a few that seem to be marked executable by mistake.
Found them with this command -- it gets executable files known to Git,
filters to the ones that don't start with a `#!`, and then unmarks
them as executable:
    $ git ls-files --stage \
      | perl -lane 'print $F[3] if (!/^100644/)' \
      | while read f; do
          head -c2 "$f" | grep -qxF '#!' \
          || chmod a-x "$f"; \
        done
Looking at the list by hand confirms that we didn't sweep up any
files that should have the executable bit after all.  In particular
 * The `.psd` files are images from Photoshop.
 * The `.bat` files sure look like things that can be run.
   But we have lots of other `.bat` files, and they don't have
   this bit set, so it must not be needed for them.
Automerge-Triggered-By: @benjaminp
		
	
			
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """turtledemo.two_canvases
 | |
| 
 | |
| Use TurtleScreen and RawTurtle to draw on two
 | |
| distinct canvases in a separate windows. The
 | |
| new window must be separately closed in
 | |
| addition to pressing the STOP button.
 | |
| """
 | |
| 
 | |
| from turtle import TurtleScreen, RawTurtle, TK
 | |
| 
 | |
| def main():
 | |
|     root = TK.Tk()
 | |
|     cv1 = TK.Canvas(root, width=300, height=200, bg="#ddffff")
 | |
|     cv2 = TK.Canvas(root, width=300, height=200, bg="#ffeeee")
 | |
|     cv1.pack()
 | |
|     cv2.pack()
 | |
| 
 | |
|     s1 = TurtleScreen(cv1)
 | |
|     s1.bgcolor(0.85, 0.85, 1)
 | |
|     s2 = TurtleScreen(cv2)
 | |
|     s2.bgcolor(1, 0.85, 0.85)
 | |
| 
 | |
|     p = RawTurtle(s1)
 | |
|     q = RawTurtle(s2)
 | |
| 
 | |
|     p.color("red", (1, 0.85, 0.85))
 | |
|     p.width(3)
 | |
|     q.color("blue", (0.85, 0.85, 1))
 | |
|     q.width(3)
 | |
| 
 | |
|     for t in p,q:
 | |
|         t.shape("turtle")
 | |
|         t.lt(36)
 | |
| 
 | |
|     q.lt(180)
 | |
| 
 | |
|     for t in p, q:
 | |
|         t.begin_fill()
 | |
|     for i in range(5):
 | |
|         for t in p, q:
 | |
|             t.fd(50)
 | |
|             t.lt(72)
 | |
|     for t in p,q:
 | |
|         t.end_fill()
 | |
|         t.lt(54)
 | |
|         t.pu()
 | |
|         t.bk(50)
 | |
| 
 | |
|     return "EVENTLOOP"
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 | |
|     TK.mainloop()  # keep window open until user closes it
 |