Skip to content

Commit

Permalink
Assorted fixes and enhancements...
Browse files Browse the repository at this point in the history
  • Loading branch information
neilbrown committed May 21, 2006
1 parent 8b539d0 commit 0a8ebda
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 13 deletions.
2 changes: 2 additions & 0 deletions bestmatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,8 @@ void remap(struct best *best, int cnt,
int pa,pb;
pa=pb=0;

if (a1.elcnt == 0 && a2.elcnt == 0) return;

for (b=1; b<cnt; b++) {
#if 0
printf("best %d,%d %d,%d\n",
Expand Down
9 changes: 9 additions & 0 deletions merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,15 @@ static int advance(struct csl *c1, struct csl *c2, struct point *p)
if (c1[p->c1].len == 0 ||
a < c1[p->c1].a + c1[p->c1].len) {
p->in_a = 0;
/*
* if we've slid, make sure not to skip over
* the stuff in c2.
*/
if(slid && p->c2 != -1 && c2[p->c2].a == b &&
c2[p->c2].b > c2[p->c2].a) {
c -= c2[p->c2].b - c2[p->c2].a;
}

p->pos = c;
slid = 1;
goto retry;
Expand Down
49 changes: 36 additions & 13 deletions p
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ diff_one()
else
echo
echo "diff ./$1~current~ ./$1"
diff --show-c-function -u ./$1~current~ ./$1
diff -N --show-c-function -u ./$1~current~ ./$1
fi
}

Expand Down Expand Up @@ -190,14 +190,19 @@ swap_one()
mv "$1.tmp" "$1~current~"
}

CERT='Signed-off-by: Neil Brown <[email protected]>'
make_diff()
{
{
[ -s .patches/status ] && echo "Status: `cat .patches/status`"
[ -s .patches/notes ] && { echo; cat .patches/notes ; }
if grep -F "$CERT" .patches/notes > /dev/null 2>&1
then :
else echo "$CERT"
fi
echo
[ -s .patches/notes ] && { cat .patches/notes ; echo; }
all_files diff_one > .patches/tmp
echo " ----------- Diffstat output ------------"
echo "### Diffstat output"
diffstat -p0 2> /dev/null < .patches/tmp
cat .patches/tmp
[ -s .patches/tmp ] || rm .patches/patch
Expand Down Expand Up @@ -227,7 +232,7 @@ find_prefix()
file=`lsdiff $1 | head -1`
orig=$file
prefix=0
while [ -n "$file" -a ! -f "$file" ]
while [ \( -n "$file" -a ! -f "$file" \) -o " $file" != " ${file#/}" ]
do
file=`expr "$file" : '[^/]*/\(.*\)'`
prefix=`expr $prefix + 1`
Expand All @@ -253,6 +258,7 @@ extract_notes()
{ head = 0; }
$0 == "" { blanks++; next; }
$0 ~ /^ *---/ { exit }
$0 ~ /^###/ { exit }
{ while (blanks > 0) {
blanks--; print "";
}
Expand Down Expand Up @@ -481,7 +487,7 @@ case $cmd in
echo "Using $pfile..."

# make sure patch applies in reverse
if patch -s --fuzz=0 --dry-run -f -p0 -R < "$pfile"
if patch -s --fuzz=0 -l --dry-run -f -p0 -R < "$pfile"
then echo "Yep, that seems to be included"
elif [ -n "$force" ]
then echo "It doesn't apply reverse-out cleanly, but you asked for it..."
Expand Down Expand Up @@ -568,7 +574,7 @@ case $cmd in
;;

publish )
name=`date -u +%Y-%m-%d:%H`
name=`date -u +%Y-%m-%d-%H`
if [ -d .patches/dest ]
then : good
else echo >&2 No destination specified at .patches/dest ; exit 1;
Expand Down Expand Up @@ -714,33 +720,47 @@ case $cmd in
exit 1;
fi
messid="<`date +'%Y%m%d%H%M%S'`.$$.patches@`uname -n`>"
cnt=$(ls .patches/applied/???${1}* | wc -l)
cnt=$(echo $cnt) # discard spaces
cnt=0
for patch in .patches/applied/???${1}*
do
n=${patch##*/}
n=${n:0:3}
if [ -n "$2" ] && [ $2 -gt $n ] ; then continue; fi
if [ -n "$3" ] && [ $3 -lt $n ] ; then continue; fi
cnt=$(expr $cnt + 1 )
done
this=1
if [ $cnt -gt 1 ]
then
{
cat .patches/owner
echo "To: `cat .patches/maintainer`"
if [ -s .patches/cc ] ; then
while read word prefix addr
do if [ " $word" = " $1" ] ; then
echo "Cc: $addr"
sprefix="$prefix - "
sprefix="$prefix "
fi
done < .patches/cc
fi
if [ $cnt = 1 ]
then
echo "Subject: [PATCH] $sprefix Intro"
else
echo "Subject: [PATCH] ${sprefix}0 of $cnt - Introduction"
echo "Subject: [PATCH ${sprefix}0 of $cnt] Introduction"
fi
echo "Message-ID: $messid"
echo
echo PUT COMMENTS HERE
} > .patches/mail/000Intro
fi

for patch in .patches/applied/???${1}*
do
n=${patch##*/}
n=${n:0:3}
if [ -n "$2" ] && [ $2 -gt $n ] ; then continue; fi
if [ -n "$3" ] && [ $3 -lt $n ] ; then continue; fi
{
sprefix=
cat .patches/owner
Expand All @@ -749,19 +769,22 @@ case $cmd in
while read word prefix addr
do if [ " $word" = " $1" ] ; then
echo "Cc: $addr"
sprefix="$prefix - "
sprefix="$prefix "
fi
done < .patches/cc
fi
head=`sed -e '/^Status/d' -e '/^$/d' -e q $patch`
if [ $cnt = 1 ]
then
echo "Subject: [PATCH] $sprefix $head"
echo "Subject: [PATCH $sprefix] $head"
else
echo "Subject: [PATCH] $sprefix$this of $cnt - $head"
echo "Subject: [PATCH $sprefix$this of $cnt] $head"
fi
echo "References: $messid"
echo
if [ $cnt = 1 ] ; then
echo "### Comments for Changeset"
fi
sed -e '1,3d' $patch
} > .patches/mail/${patch#.patches/applied/}
this=$(expr $this + 1)
Expand Down

0 comments on commit 0a8ebda

Please sign in to comment.