Andy Wingo <wi...@igalia.com> skribis: > On Mon 04 Apr 2016 12:20, iyzs...@member.fsf.org (宋文武) writes: > >> How to fix this? >> >> The procedure is ‘update-package-source’ in (guix upstream). >> it find the file, then use ‘substitute’ to replace the version and >> hash. ‘substitute’ works line-by-line, it can’t match mutiple lines. >> >> I try: >> - use ‘package-location’ and ‘read’ to get the package object, >> but it lost all format and comments. > > One option: > > 1. open the source file for the package > 2. Call (read) until port-line / port-column are beyond the > package-location of the package > 3. At that point you have the ending location of the package.
Right. ‘package-field-location’ does something along these lines. > Then limit your substitute* to work within those lines. A simpler yet less elegant trick used in ‘report-formatting-issues’ in (guix scripts lint) is to have a maximum number of lines assumed to be part of the ‘package’ form following its starting line. Thanks, Ludo’.