mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Updates for THINK C 6.0. Moved the necessary UNIX emulation routines here.
This commit is contained in:
parent
e89bc75048
commit
d4d7728440
16 changed files with 618 additions and 51 deletions
|
@ -1,5 +1,9 @@
|
|||
#! /usr/local/bin/python
|
||||
|
||||
# Replace \r by \n -- useful after transferring files from the Mac...
|
||||
# Run this on UNIX.
|
||||
# Usage: crlf.py file ...
|
||||
|
||||
import sys
|
||||
import os
|
||||
import string
|
||||
|
@ -7,8 +11,8 @@ import string
|
|||
def main():
|
||||
args = sys.argv[1:]
|
||||
if not args:
|
||||
print 'no files'
|
||||
sys.exit(1)
|
||||
print 'usage:', sys.argv[0], 'file ...'
|
||||
sys.exit(2)
|
||||
for file in args:
|
||||
print file, '...'
|
||||
data = open(file, 'r').read()
|
||||
|
|
71
Mac/scripts/unshar.py
Normal file
71
Mac/scripts/unshar.py
Normal file
|
@ -0,0 +1,71 @@
|
|||
# Extract files from a SHAR archive.
|
||||
# Run this on the Mac.
|
||||
# Usage:
|
||||
# >>> import unshar
|
||||
# >>> f = open('SHAR')
|
||||
# >>> unshar.unshar(f)
|
||||
|
||||
import string
|
||||
|
||||
def unshar(fp, verbose=0, overwrite=0):
|
||||
ofp = None
|
||||
file = None
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if verbose > 3: print 'Got:', `line`
|
||||
if line[:1] == 'X':
|
||||
# Most common case first
|
||||
if ofp: ofp.write(line[1:])
|
||||
continue
|
||||
if not line:
|
||||
if verbose: print 'EOF'
|
||||
if ofp:
|
||||
print 'Unterminated file -- closing'
|
||||
ofp.close()
|
||||
ofp = None
|
||||
break
|
||||
if line[0] == '#':
|
||||
if verbose: print line,
|
||||
continue
|
||||
if line[:14] == 'sed "s/^X//" >':
|
||||
if verbose: print "!!!", `line`
|
||||
i = string.find(line, "'")
|
||||
j = string.find(line, "'", i+1)
|
||||
if i >= 0 and j > i:
|
||||
file = line[i+1:j]
|
||||
if '/' in file:
|
||||
words = string.splitfields(file, '/')
|
||||
for funny in '', '.':
|
||||
while funny in words: words.remove(funny)
|
||||
for i in range(len(words)):
|
||||
if words[i] == '..': words[i] = ''
|
||||
words.insert(0, '')
|
||||
file = string.joinfields(words, ':')
|
||||
try:
|
||||
ofp = open(file, 'r')
|
||||
ofp.close()
|
||||
ofp = None
|
||||
over = 1
|
||||
except IOError:
|
||||
over = 0
|
||||
if over and not overwrite:
|
||||
print 'Skipping', file, '(already exists) ...'
|
||||
continue
|
||||
ofp = open(file, 'w')
|
||||
if over:
|
||||
print 'Overwriting', file, '...'
|
||||
else:
|
||||
print 'Writing', file, '...'
|
||||
continue
|
||||
if line == 'END_OF_FILE\n':
|
||||
if not file:
|
||||
print 'Unexpected END_OF_FILE marker'
|
||||
if ofp:
|
||||
print 'done'
|
||||
ofp.close()
|
||||
ofp = None
|
||||
else:
|
||||
print 'done skipping'
|
||||
file = None
|
||||
continue
|
||||
if verbose: print "...", `line`
|
Loading…
Add table
Add a link
Reference in a new issue