# Re: \[PATCH v4\] \[GSOC\] commit: add --trailer option

- From: ZheNing Hu \<hidden\>
- Date: 2021-03-15 05:25:49 
- List: git
- Page: https://ratatoskr.run/git/2021/03/7879922
- Thread: https://ratatoskr.run/git/2021/03/7879920/t.md

```text
Junio C Hamano [ref] 于2021年3月15日周一 下午12:42写道：
>
> ZheNing Hu [ref] writes:
>
> > Junio C Hamano [ref] 于2021年3月15日周一 上午7:52写道：
> >> IOW this part would become ...
> >>
> >>         if (trailer_args.nr) {
> >>                 strvec_pushl(&run_trailer.args, "interpret-trailers",
> >>                              "--in-place", ...);
> >>                 strvec_pushv(&run_trailer.args, trailer_args.v);
> >>                 run_trailer.git_cmd = 1;
> >>                 run_command(&run_trailer);
> >>         }
> >>
> >> > +     } else
> >> > +             strvec_clear(&run_trailer.args);
> >>
> >> ... and there is no need to have "else" that won't need to do
> >> anything.
> >
> > Yes, but we also should clear "trailer_args" in "else" here, and check the
> > return value of the "run_command()" for clear "run_trailer.args".
>
> No.  If you introduce the separate strvec, the "else" clause runs
> only when trailer_args haven't got anything, so there is nothing to
> clear.
>
I admit I was wrong before. But this may be the right thing to do.
+       if (trailer_args.nr) {
+               strvec_pushl(&run_trailer.args, "interpret-trailers",
+                            "--in-place", "--where=end",
git_path_commit_editmsg(), NULL);
+               strvec_pushv(&run_trailer.args, trailer_args.v);
+               run_trailer.git_cmd = 1;
+               if (run_command(&run_trailer))
+                       strvec_clear(&run_trailer.args);
+               strvec_clear(&trailer_args);
+       }
```
