git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Improve function dir.c:trim_trailing_spaces()

From
Jeff King <peff@peff.net>
Date
May 29, 2014, 20:13 UTC
Message-ID
<20140529201334.GA17355@sigill.intra.peff.net>
In-Reply-To
<1401320757-9360-1-git-send-email-pasha.bolokhov@gmail.com>
On Wed, May 28, 2014 at 04:45:57PM -0700, Pasha Bolokhov wrote:
> Move backwards from the end of the string (more efficient for
> lines which do not have trailing spaces or have just a couple).

The original code reads the string from left to right. In theory, that means we could get away with not calling strlen() at all, over a right-to-left that must start with a call to strlen().

That being said, I think we already have the length in the calling function, so you could probably avoid the strlen() altogether, which makes a right-to-left function more efficient.

However, I doubt it makes that much of a difference in practice, so unless it's measurable, I would certainly go with the version that is more readable (and correct, of course).

> Slightly more rare occurrences of 'text  \    ' with a backslash
> in between spaces are handled correctly.
Can you add a test for this?

Also, if you are refactoring this function, I think it makes sense to check that:

  "foo\\ "
and
  "foo\\\ "

match "foo\" and "foo\ ", respectively (I think they do with your patch, but it is a tricky case that is not immediately obvious).

-Peff
Previous: Pasha BolokhovNext: Pasha Bolokhov
Message 2 of 5 in “Improve function dir.c:trim_trailing_spaces()”
  1. Improve function dir.c:trim_trailing_spaces()Pasha Bolokhov, May 28, 2014
  2. Jeff KingMay 29, 2014
  3. Pasha BolokhovMay 29, 2014
  4. Jeff KingMay 30, 2014
  5. Junio C HamanoMay 30, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.