git-svn: eol_cp corner-case fixes

If we read the maximum size of our buffer into $buf, and the
last character is '\015', there's a chance that the character is
'\012', which means our regex won't work correctly.  At the
worst case, this could introduce an extra newline into the code.
We'll now read an extra character if we see '\015' is the last
character in $buf.

We also forgot to recalculate the length of $buf after doing the
newline substitution, causing some files to appeare truncated.
We'll do that now and force byte semantics in length() for good
measure.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
1 file changed
tree: ab843830869fea41829fec96a6e1d1505b229203
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. gitweb/
  6. mozilla-sha1/
  7. ppc/
  8. t/
  9. templates/
  10. xdiff/
  11. .gitignore
  12. base85.c
  13. blame.c
  14. blob.c
  15. blob.h
  16. builtin-add.c
  17. builtin-apply.c
  18. builtin-cat-file.c
  19. builtin-check-ref-format.c
  20. builtin-commit-tree.c
  21. builtin-count.c
  22. builtin-diff-files.c
  23. builtin-diff-index.c
  24. builtin-diff-stages.c
  25. builtin-diff-tree.c
  26. builtin-diff.c
  27. builtin-grep.c
  28. builtin-help.c
  29. builtin-init-db.c
  30. builtin-log.c
  31. builtin-ls-files.c
  32. builtin-ls-tree.c
  33. builtin-push.c
  34. builtin-read-tree.c
  35. builtin-rev-list.c
  36. builtin-rev-parse.c
  37. builtin-rm.c
  38. builtin-show-branch.c
  39. builtin-tar-tree.c
  40. builtin-upload-tar.c
  41. builtin.h
  42. cache-tree.c
  43. cache-tree.h
  44. cache.h
  45. checkout-index.c
  46. clone-pack.c
  47. combine-diff.c
  48. commit.c
  49. commit.h
  50. config.c
  51. connect.c
  52. convert-objects.c
  53. copy.c
  54. COPYING
  55. csum-file.c
  56. csum-file.h
  57. ctype.c
  58. daemon.c
  59. date.c
  60. delta.h
  61. describe.c
  62. diff-delta.c
  63. diff-lib.c
  64. diff.c
  65. diff.h
  66. diffcore-break.c
  67. diffcore-delta.c
  68. diffcore-order.c
  69. diffcore-pickaxe.c
  70. diffcore-rename.c
  71. diffcore.h
  72. dir.c
  73. dir.h
  74. dump-cache-tree.c
  75. entry.c
  76. environment.c
  77. exec_cmd.c
  78. exec_cmd.h
  79. fetch-clone.c
  80. fetch-pack.c
  81. fetch.c
  82. fetch.h
  83. fsck-objects.c
  84. generate-cmdlist.sh
  85. git-am.sh
  86. git-annotate.perl
  87. git-applymbox.sh
  88. git-applypatch.sh
  89. git-archimport.perl
  90. git-bisect.sh
  91. git-branch.sh
  92. git-checkout.sh
  93. git-cherry.sh
  94. git-clean.sh
  95. git-clone.sh
  96. git-commit.sh
  97. git-compat-util.h
  98. git-cvsexportcommit.perl
  99. git-cvsimport.perl
  100. git-cvsserver.perl
  101. git-fetch.sh
  102. git-fmt-merge-msg.perl
  103. git-lost-found.sh
  104. git-ls-remote.sh
  105. git-merge-octopus.sh
  106. git-merge-one-file.sh
  107. git-merge-ours.sh
  108. git-merge-recursive.py
  109. git-merge-resolve.sh
  110. git-merge-stupid.sh
  111. git-merge.sh
  112. git-mv.perl
  113. git-p4import.py
  114. git-parse-remote.sh
  115. git-prune.sh
  116. git-pull.sh
  117. git-push.sh
  118. git-quiltimport.sh
  119. git-rebase.sh
  120. git-relink.perl
  121. git-repack.sh
  122. git-request-pull.sh
  123. git-rerere.perl
  124. git-reset.sh
  125. git-resolve.sh
  126. git-revert.sh
  127. git-send-email.perl
  128. git-sh-setup.sh
  129. git-shortlog.perl
  130. git-svnimport.perl
  131. git-tag.sh
  132. git-verify-tag.sh
  133. GIT-VERSION-GEN
  134. git.c
  135. git.spec.in
  136. gitk
  137. gitMergeCommon.py
  138. hash-object.c
  139. http-fetch.c
  140. http-push.c
  141. http.c
  142. http.h
  143. ident.c
  144. imap-send.c
  145. index-pack.c
  146. INSTALL
  147. local-fetch.c
  148. lockfile.c
  149. log-tree.c
  150. log-tree.h
  151. mailinfo.c
  152. mailsplit.c
  153. Makefile
  154. merge-base.c
  155. merge-index.c
  156. merge-tree.c
  157. mktag.c
  158. mktree.c
  159. name-rev.c
  160. object.c
  161. object.h
  162. pack-check.c
  163. pack-objects.c
  164. pack-redundant.c
  165. pack.h
  166. pager.c
  167. patch-delta.c
  168. patch-id.c
  169. path.c
  170. peek-remote.c
  171. pkt-line.c
  172. pkt-line.h
  173. prune-packed.c
  174. quote.c
  175. quote.h
  176. read-cache.c
  177. README
  178. receive-pack.c
  179. refs.c
  180. refs.h
  181. repo-config.c
  182. revision.c
  183. revision.h
  184. rsh.c
  185. rsh.h
  186. run-command.c
  187. run-command.h
  188. send-pack.c
  189. server-info.c
  190. setup.c
  191. sha1_file.c
  192. sha1_name.c
  193. shell.c
  194. show-index.c
  195. ssh-fetch.c
  196. ssh-pull.c
  197. ssh-push.c
  198. ssh-upload.c
  199. strbuf.c
  200. strbuf.h
  201. stripspace.c
  202. symbolic-ref.c
  203. tag.c
  204. tag.h
  205. tar.h
  206. test-date.c
  207. test-delta.c
  208. tree-diff.c
  209. tree-walk.c
  210. tree-walk.h
  211. tree.c
  212. tree.h
  213. unpack-file.c
  214. unpack-objects.c
  215. update-index.c
  216. update-ref.c
  217. update-server-info.c
  218. upload-pack.c
  219. usage.c
  220. var.c
  221. verify-pack.c
  222. write-tree.c
  223. xdiff-interface.c
  224. xdiff-interface.h