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

[PATCH v2 0/4] getcwd without PATH_MAX

From
René Scharfe <l.s.r@web.de>
Date
Jul 20, 2014, 16:46 UTC
Message-ID
<53CBF277.3090101@web.de>

Paths longer than PATH_MAX can be created and used on at least on some file systems. Currently we use getcwd() generally with a PATH_MAX- sized buffer. This series adds two functions, strbuf_getcwd() and xgetcwd(), then uses them to reduce the number of fixed-sized buffers and to allow us to handle longer working directory paths.

Not all getcwd() calls are replaced, however. I hope that at least some of the remaining ones can be avoided altogether. If that turns out to be too optimistic then we can use the added function to convert the rest.

Changes in v2:
  * strbuf_getcwd() instead of strbuf_add_cwd(), because the former is
    simpler and sufficient for now; based on a suggestion by Duy
  * added patch 2 as an example for strbuf_getcwd() usage, suggested
    by Duy
  * made sure strbuf_getcwd() leaves the strbuf intact, no matter
    what getcwd() does
  * converted an easy getcwd() call in setup.c
René Scharfe (4):
  strbuf: add strbuf_getcwd()
  use strbuf_getcwd() to get the current working directory without
    fixed-sized buffers
  wrapper: add xgetcwd()
  use xgetcwd() get the current directory or die
 Documentation/technical/api-strbuf.txt |  4 ++++
 builtin/init-db.c                      | 25 ++++++++++++-------------
 builtin/rev-parse.c                    |  6 +++---
 dir.c                                  | 12 ++++++++----
 git-compat-util.h                      |  1 +
 git.c                                  |  6 ++++--
 setup.c                                |  6 +++---
 strbuf.c                               | 21 +++++++++++++++++++++
 strbuf.h                               |  1 +
 trace.c                                |  7 ++++---
 wrapper.c                              |  8 ++++++++
 11 files changed, 69 insertions(+), 28 deletions(-)
-- 
2.0.2
Next: René Scharfe
Message 1 of 9 in “getcwd without PATH_MAX”
  1. 0/4 getcwd without PATH_MAXRené Scharfe, Jul 20, 2014
  2. 1/4 strbuf: add strbuf_getcwd()René Scharfe, Jul 20, 2014
  3. 2/4 use strbuf_getcwd() to get the current working directory without fixed-sized buffersRené Scharfe, Jul 20, 2014
  4. Jeff KingJul 21, 2014
  5. René ScharfeJul 21, 2014
  6. Jeff KingJul 22, 2014
  7. Junio C HamanoJul 21, 2014
  8. 3/4 wrapper: add xgetcwd()René Scharfe, Jul 20, 2014
  9. 4/4 use xgetcwd() get the current directory or dieRené Scharfe, Jul 20, 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.