Fix git-stripspace to process correctly long lines and spaces.

Now the implementation gets more memory to store completely
each line before removing trailing spaces, and does it right
when the last line of the file ends with spaces and no newline
at the end.

Function stripspace needs again to be non-static in order to call
it from "builtin-tag.c" and the upcoming "builtin-commit.c".
A new parameter skip_comments was also added to the stripspace
function to optionally strips every shell #comment from the input,
needed for doing this task on those programs.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 files changed
tree: 1e397058df155e284541aec42a79f82afc23af18
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. git-gui/
  6. gitweb/
  7. mozilla-sha1/
  8. perl/
  9. ppc/
  10. t/
  11. templates/
  12. xdiff/
  13. .gitignore
  14. .mailmap
  15. alloc.c
  16. archive-tar.c
  17. archive-zip.c
  18. archive.h
  19. attr.c
  20. attr.h
  21. base85.c
  22. blob.c
  23. blob.h
  24. builtin-add.c
  25. builtin-annotate.c
  26. builtin-apply.c
  27. builtin-archive.c
  28. builtin-blame.c
  29. builtin-branch.c
  30. builtin-bundle.c
  31. builtin-cat-file.c
  32. builtin-check-attr.c
  33. builtin-check-ref-format.c
  34. builtin-checkout-index.c
  35. builtin-commit-tree.c
  36. builtin-config.c
  37. builtin-count-objects.c
  38. builtin-describe.c
  39. builtin-diff-files.c
  40. builtin-diff-index.c
  41. builtin-diff-tree.c
  42. builtin-diff.c
  43. builtin-fetch--tool.c
  44. builtin-fmt-merge-msg.c
  45. builtin-for-each-ref.c
  46. builtin-fsck.c
  47. builtin-gc.c
  48. builtin-grep.c
  49. builtin-init-db.c
  50. builtin-log.c
  51. builtin-ls-files.c
  52. builtin-ls-tree.c
  53. builtin-mailinfo.c
  54. builtin-mailsplit.c
  55. builtin-merge-base.c
  56. builtin-merge-file.c
  57. builtin-mv.c
  58. builtin-name-rev.c
  59. builtin-pack-objects.c
  60. builtin-pack-refs.c
  61. builtin-prune-packed.c
  62. builtin-prune.c
  63. builtin-push.c
  64. builtin-read-tree.c
  65. builtin-reflog.c
  66. builtin-rerere.c
  67. builtin-rev-list.c
  68. builtin-rev-parse.c
  69. builtin-revert.c
  70. builtin-rm.c
  71. builtin-runstatus.c
  72. builtin-shortlog.c
  73. builtin-show-branch.c
  74. builtin-show-ref.c
  75. builtin-stripspace.c
  76. builtin-symbolic-ref.c
  77. builtin-tar-tree.c
  78. builtin-unpack-objects.c
  79. builtin-update-index.c
  80. builtin-update-ref.c
  81. builtin-upload-archive.c
  82. builtin-verify-pack.c
  83. builtin-write-tree.c
  84. builtin.h
  85. cache-tree.c
  86. cache-tree.h
  87. cache.h
  88. check-builtins.sh
  89. check-racy.c
  90. color.c
  91. color.h
  92. combine-diff.c
  93. commit.c
  94. commit.h
  95. config.c
  96. config.mak.in
  97. configure.ac
  98. connect.c
  99. convert-objects.c
  100. convert.c
  101. copy.c
  102. COPYING
  103. csum-file.c
  104. csum-file.h
  105. ctype.c
  106. daemon.c
  107. date.c
  108. decorate.c
  109. decorate.h
  110. delta.h
  111. diff-delta.c
  112. diff-lib.c
  113. diff.c
  114. diff.h
  115. diffcore-break.c
  116. diffcore-delta.c
  117. diffcore-order.c
  118. diffcore-pickaxe.c
  119. diffcore-rename.c
  120. diffcore.h
  121. dir.c
  122. dir.h
  123. dump-cache-tree.c
  124. entry.c
  125. environment.c
  126. exec_cmd.c
  127. exec_cmd.h
  128. fast-import.c
  129. fetch-pack.c
  130. fetch.c
  131. fetch.h
  132. generate-cmdlist.sh
  133. git-add--interactive.perl
  134. git-am.sh
  135. git-archimport.perl
  136. git-bisect.sh
  137. git-checkout.sh
  138. git-clean.sh
  139. git-clone.sh
  140. git-commit.sh
  141. git-compat-util.h
  142. git-cvsexportcommit.perl
  143. git-cvsimport.perl
  144. git-cvsserver.perl
  145. git-fetch.sh
  146. git-filter-branch.sh
  147. git-instaweb.sh
  148. git-lost-found.sh
  149. git-ls-remote.sh
  150. git-merge-octopus.sh
  151. git-merge-one-file.sh
  152. git-merge-ours.sh
  153. git-merge-resolve.sh
  154. git-merge-stupid.sh
  155. git-merge.sh
  156. git-mergetool.sh
  157. git-p4import.py
  158. git-parse-remote.sh
  159. git-pull.sh
  160. git-quiltimport.sh
  161. git-rebase.sh
  162. git-relink.perl
  163. git-remote.perl
  164. git-repack.sh
  165. git-request-pull.sh
  166. git-reset.sh
  167. git-send-email.perl
  168. git-sh-setup.sh
  169. git-submodule.sh
  170. git-svn.perl
  171. git-svnimport.perl
  172. git-tag.sh
  173. git-verify-tag.sh
  174. GIT-VERSION-GEN
  175. git.c
  176. git.spec.in
  177. gitk
  178. grep.c
  179. grep.h
  180. hash-object.c
  181. help.c
  182. http-fetch.c
  183. http-push.c
  184. http.c
  185. http.h
  186. ident.c
  187. imap-send.c
  188. index-pack.c
  189. INSTALL
  190. interpolate.c
  191. interpolate.h
  192. list-objects.c
  193. list-objects.h
  194. local-fetch.c
  195. lockfile.c
  196. log-tree.c
  197. log-tree.h
  198. mailmap.c
  199. mailmap.h
  200. Makefile
  201. match-trees.c
  202. merge-file.c
  203. merge-index.c
  204. merge-recursive.c
  205. merge-tree.c
  206. mktag.c
  207. mktree.c
  208. object-refs.c
  209. object.c
  210. object.h
  211. pack-check.c
  212. pack-redundant.c
  213. pack-write.c
  214. pack.h
  215. pager.c
  216. patch-delta.c
  217. patch-id.c
  218. patch-ids.c
  219. patch-ids.h
  220. path-list.c
  221. path-list.h
  222. path.c
  223. peek-remote.c
  224. pkt-line.c
  225. pkt-line.h
  226. progress.c
  227. progress.h
  228. quote.c
  229. quote.h
  230. reachable.c
  231. reachable.h
  232. read-cache.c
  233. README
  234. receive-pack.c
  235. reflog-walk.c
  236. reflog-walk.h
  237. refs.c
  238. refs.h
  239. remote.c
  240. remote.h
  241. revision.c
  242. revision.h
  243. rsh.c
  244. rsh.h
  245. run-command.c
  246. run-command.h
  247. send-pack.c
  248. server-info.c
  249. setup.c
  250. sha1_file.c
  251. sha1_name.c
  252. shallow.c
  253. shell.c
  254. show-index.c
  255. sideband.c
  256. sideband.h
  257. ssh-fetch.c
  258. ssh-pull.c
  259. ssh-push.c
  260. ssh-upload.c
  261. strbuf.c
  262. strbuf.h
  263. symlinks.c
  264. tag.c
  265. tag.h
  266. tar.h
  267. test-chmtime.c
  268. test-date.c
  269. test-delta.c
  270. test-genrandom.c
  271. test-match-trees.c
  272. test-sha1.c
  273. test-sha1.sh
  274. trace.c
  275. tree-diff.c
  276. tree-walk.c
  277. tree-walk.h
  278. tree.c
  279. tree.h
  280. unpack-file.c
  281. unpack-trees.c
  282. unpack-trees.h
  283. update-server-info.c
  284. upload-pack.c
  285. usage.c
  286. utf8.c
  287. utf8.h
  288. var.c
  289. write_or_die.c
  290. wt-status.c
  291. wt-status.h
  292. xdiff-interface.c
  293. xdiff-interface.h