[Geany-devel] "Ensure new line on file end" inserts new line when file is empty
Eugene Arshinov
earshinov at xxxxx
Sat Oct 16 11:11:36 UTC 2010
On Sat, 16 Oct 2010 22:04:33 +1100%
Lex Trotman <elextr at gmail.com> wrote:
> On 16 October 2010 21:39, Eugene Arshinov <earshinov at gmail.com> wrote:
> > On Sat, 16 Oct 2010 21:06:12 +1100%
> > Lex Trotman <elextr at gmail.com> wrote:
> >
> >> On 16 October 2010 19:52, Eugene Arshinov <earshinov at gmail.com>
> >> wrote:
> >> > On Sat, 16 Oct 2010 17:49:27 +1100%
> >> > Lex Trotman <elextr at gmail.com> wrote:
> >> >
> >> >> Hi Eugene,
> >> >>
> >> >> I'm not sure it is a bug, the pref setting is there is to ensure
> >> >> that the file ends in a newline, so an empty file will become
> >> >> just a new line (see od below). Thats working correctly AFAICT.
> >> >>
> >> >> lex at fred5 ~ $ od untitled
> >> >> 0000000 000012
> >> >> 0000001
> >> >>
> >> >> Cheers
> >> >> Lex
> >> >>
> >> >
> >> > Hi.
> >> >
> >> > Yes, of course it's logical that newline is always added, even
> >> > for empty files. But it becomes that for non-empty files you
> >> > get one empty line at the end, for empty files -- two empty
> >> > lines. It's not quite useful and (IMHO) bad.
> >>
> >> Well, if the file ends in a newline it will always appear as an
> >> empty line at the end even though there is nothing after the
> >> newline, the only way to avoid it is to not end in newline. If
> >> you don't like the blank line, delete the newline ... and turn off
> >> the preference so Geany won't add it back again ;-)
> >
> > No, I like a new line, but not two of them :D
> >
> >>
> >> But there are some things that REQUIRE the file to end in newline,
> >> and IIUC that is what the "ensure newline at file end" preference
> >> is for, it has to add the newline. So it isn't a bug if the
> >> preference is selected.
> >>
> >
> > We may consider `wc -l' as an example. It (at least, the version I
> > have) accounts the last line only if it ends with \n. With the
> > option turned on, if a user creates an empty file with Geany and
> > saves it, wc of course says it contains 1 line. I would prefer the
> > file staying really empty and wc returning 0 lines. Note that I
> > have to keep the option turned on to keep wc working properly in
> > "usual" cases.
> >
>
> I'm a bit confused, why turn on the preference in that case?
If I turn it off and write some text, for example
int main(int argc, char **argv){
return 0;
}
, and do not manually insert a newline, wc -l will return 2 which (I
believe) would be incorrect as there are 3 lines of code here.
> What I
> don't see is your patch checking the preference?
The function is called only when the preference is turned on. See
document_save_file() where editor_ensure_final_newline() is called.
Best regards,
Eugene.
More information about the Devel
mailing list