diff -uNr a/v/manifest b/v/manifest --- a/v/manifest 704243bd533c148424d908c9ab1aa75dc6e98e352dcc0dc5a15dbd5f7dc9a616383478fed5c7488a0521b9cb6726382290fa2389851f87eda66c08d29d7bb43c +++ b/v/manifest bf7afc66778d7ca3fed3f76c922621047a149ea92172c8739e046ff924adf6bd4e104ce7858a6f20b298a04de44fded6619746966439f27617af280b7524659a @@ -1,2 +1,5 @@ -549967 v_keccak_vtools.vpatch diana_coman Changed V to use vtools with Keccak hashes (ksum, vpatch). Version number changed to 99992. -600670 v_fixes_vpatch_sync.vpatch spyked Limit recursion depth of wget to 1 for init command (sync_all_vpatches). Also, record changes in manifest rather than v.pl itself. Version number changed to 99991. +549967 v_mod6_genesis mod6 Version 99994 from 2014-2017. +549967 v_mod6_99993 mod6 Version 99993 from 2018, changing press logic to omit non-required patches, adding the press-path (pp) command, and adding a preflight check for external programs. +549967 v_keccak_vtools diana_coman Changed V to use vtools with Keccak hashes (ksum, vpatch). Version number changed to 99992. +600670 v_fixes_vpatch_sync spyked Limit recursion depth of wget to 1 for init command (sync_all_vpatches). Also, record changes in manifest rather than v.pl itself. Version number changed to 99991. +623999 v_strict_headers jfw Prevent false patch header matches by requiring a preceding "diff" line, as seen in phf's vpatch and bvt's vfilter. Also expand manifest to cover all patches and remove file extension from the titles as indicated by the manifest spec. Version 99990. diff -uNr a/v/v.pl b/v/v.pl --- a/v/v.pl 7adcf4625e65ea4b016fcc7fff8d1767f787dec8ffdfda72a1ba50430f111d330351a26769e55fdfae7d33eafb84af121f753c8c7dcf18c768b994a7d2bcc2a8 +++ b/v/v.pl 5083784b62d8aa9d0e59cdb64b5ff66ffb09c40018253963af3dbb1cba64e468db8987ae9ca7cf77e5469bc5da5f9b8ef425a531f66a009b3e27eb7b50030c58 @@ -10,7 +10,7 @@ use strict; -my $version = "99991 K "; +my $version = "99990 K "; my $tdir = ""; @@ -142,15 +142,21 @@ foreach my $pfile (@pfiles) { $map{$pfile} = $pfile; my @patch = `cat $pdir/$pfile`; + my $in_header = 0; my $src_file = "", my $ante_hash = "", my $desc_hash = ""; foreach my $p (@patch) { - $src_file = $1, $ante_hash = $2 if $p =~ /^--- (.*) (.*)/; - $desc_hash = $1 if $p =~ /^\+\+\+ .* (.*)/; + if($in_header) { + $src_file = $1, $ante_hash = $2 if $p =~ /^--- (.*) (.*)/; + $desc_hash = $1 if $p =~ /^\+\+\+ .* (.*)/; + } else { + $in_header = 1 if $p =~ /^diff /; + } if($src_file && $ante_hash && $desc_hash) { death("$pfile is an invalid vpatch!\n") if $ante_hash eq $desc_hash; $vpdata{$src_file} = { a => $ante_hash, b => $desc_hash }; $map{$pfile} = {%vpdata}; $src_file = "", $ante_hash = "", $desc_hash = ""; + $in_header = 0; } } death("Error! $pfile is an invalid vpatch file.\n") if !%vpdata;