protocol: declare transport protocol name
We add an attribute to the HTTP and SSH protocol implementations
identifying the transport so future patches can conditionally
expose capabilities on a per-transport basis.
test 'a\nc\n\n\n\n' 'a\nb\n\n\n'
test 'a\nb\nc\n' 'a\nc\n'
test '' ''
test 'a\nb\nc' 'a\nb\nc'
test 'a\nb\nc\nd\n' 'a\nd\n'
test 'a\nb\nc\nd\n' 'a\nc\ne\n'
test 'a\nb\nc\n' 'a\nc\n'
test 'a\n' 'c\na\nb\n'
test 'a\n' ''
test 'a\n' 'b\nc\n'
test 'a\n' 'c\na\n'
test '' 'adjfkjdjksdhfksj'
test '' 'ab'
test '' 'abc'
test 'a' 'a'
test 'ab' 'ab'
test 'abc' 'abc'
test 'a\n' 'a\n'
test 'a\nb' 'a\nb'
showdiff(
'x\n\nx\n\nx\n\nx\n\nz\n',
'x\n\nx\n\ny\n\nx\n\nx\n\nz\n'):
'x\n\nx\n\n'
6 6 '' -> 'y\n\n'
'x\n\nx\n\nz\n'
showdiff(
'x\n\nx\n\nx\n\nx\n\nz\n',
'x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n'):
'x\n\nx\n\n'
6 6 '' -> 'y\n\n'
'x\n\n'
9 9 '' -> 'y\n\n'
'x\n\nz\n'
showdiff(
'a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n',
'a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n'):
'a\nb\nb\n'
6 6 '' -> 'a\nb\nb\nb\nc\n.\n'
'b\nc\n.\nd\ne\n'
16 18 '.\n' -> ''
'f\n'
done
done
Nice diff for a trivial change:
showdiff(
'<0\n-\n<1\n-\n<2\n-\n<3\n-\n<4\n-\n',
'>0\n-\n>1\n-\n>2\n-\n>3\n-\n>4\n-\n'):
0 3 '<0\n' -> '>0\n'
'-\n'
5 8 '<1\n' -> '>1\n'
'-\n'
10 13 '<2\n' -> '>2\n'
'-\n'
15 18 '<3\n' -> '>3\n'
'-\n'
20 23 '<4\n' -> '>4\n'
'-\n'
Diff 1 to 3 lines - preference for appending:
showdiff(
'a\n',
'a\na\na\n'):
'a\n'
2 2 '' -> 'a\na\n'
Diff 1 to 5 lines - preference for appending:
showdiff(
'a\n',
'a\na\na\na\na\n'):
'a\n'
2 2 '' -> 'a\na\na\na\n'
Diff 3 to 1 lines - preference for removing trailing lines:
showdiff(
'a\na\na\n',
'a\n'):
'a\n'
2 6 'a\na\n' -> ''
Diff 5 to 1 lines - preference for removing trailing lines:
showdiff(
'a\na\na\na\na\n',
'a\n'):
'a\n'
2 10 'a\na\na\na\n' -> ''