123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import sys, os, re, difflib
- import pdb
- def write_w_fill(f1, col, text, leader = " ", fillcol = 76, cc=""):
- """
- Write text to f1 and increment column. If column > fillcol, wrap
- with leader
- """
- ln = len(text)
- if col + ln > fillcol:
- f1.write(cc + "\n" + leader)
- col = len(leader)
- f1.write(text)
- col = col + ln
- return col
- def replace_in_code(arg, fname, tag, rout):
- """
- Generate filename.new with lines between /* tag: beg */ and /* tag: end */
- replaced by lines generated by the function rout(arg, f) where arg is a
- user argument, and f is the file handle for writing.
- """
- f0 = open(fname, 'r')
- f1 = open(fname + ".new", 'w')
- tbeg = "/* %s: beg */" % (tag,)
- tend = "/* %s: end */" % (tag,)
-
- l0 = f0.readline()
- while l0:
- f1.write(l0)
- if l0.lstrip().startswith(tbeg):
- break
- l0 = f0.readline()
- if not l0:
-
- f0.close()
- f1.close()
- print("*** no beg tag found")
- return
-
- rout(arg, f1)
-
- l0 = f0.readline()
- while l0:
- if l0.lstrip().startswith(tend):
- f1.write(l0)
- break
- l0 = f0.readline()
- if not l0:
-
- f0.close()
- f1.close()
- return
- l0 = f0.readline()
- while l0:
- f1.write(l0)
- l0 = f0.readline()
- f0.close()
- f1.close()
- def move_if_changed(fname):
- """
- If fname.new is changed wrt fname, then rename fname to fname.old and
- fname.new to fname.
- """
- fname_old = fname + ".old"
- fname_new = fname + ".new"
- if os.system("cmp " + fname + " " + fname_new + ">/dev/null"):
- os.rename(fname, fname_old)
- os.rename(fname_new, fname)
- return True
- else:
- return False
|