<div dir="ltr">Hi Kristian,<div class="gmail_extra"><br><div class="gmail_quote">On Sun, May 12, 2013 at 8:54 AM, Kristian Høgsberg <span dir="ltr"><<a href="mailto:krh@bitplanet.net" target="_blank">krh@bitplanet.net</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I think we can change the interface to int open_config_file(const char<br>
*), which looks up and opens the config file and returns the fd.  We<br>
can keep that in weston_compositor instead of the config_file path.<br>
The parse function can then fseek on the fd to reset to the beginning<br>
of the file.  Going forward, we'll do something like this:<br>
<br>
  <a href="http://lists.freedesktop.org/archives/wayland-devel/2013-April/008333.html" target="_blank">http://lists.freedesktop.org/archives/wayland-devel/2013-April/008333.html</a></blockquote><div><br></div><div style>
Nice set of changes!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
and store the weston_config object in weston_compositor object.  The<br>
config path patch here is somewhat orthogonal to that though.<br>
<div><div class="h5"><br>
On Sun, May 12, 2013 at 2:20 AM, Othman, Ossama <<a href="mailto:ossama.othman@intel.com">ossama.othman@intel.com</a>> wrote:<br></div></div></blockquote><div>... </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div class="h5">
> + info.count = 0;<br>
> + info.paths = malloc(DEFAULT_DIR_COUNT * sizeof(char *));<br>
> + if (info.paths == NULL)<br>
> + return NULL;<br>
<br>
</div></div>I don't think this function should need any mallocs at all.</blockquote><div><br></div><div style>Agreed.  I was a bit too loose with the malloc()s.  :)</div><div style><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Basically<br>
we should be able to say something like<br>
<br>
  char path[PATHMAX];<br>
<div class="im"><br>
  snprintf(path, size, "%s%s%s", home_dir, dotconf, name);<br>
</div>  fd = open(path);<br>
  if (fd >= 0)<br>
    return fd;<br>
<br>
  /* same for XDG_CONFIG_DIR */<br>
<br>
as for XDG_CONFIG_PATHS, I'd just scan through the string manually<br>
with strchrnul instead of bothering with copying and strtok_r:<br>
<br>
  for (p = config_dirs, *p; p = next) {<br>
    next = strchrnul(p, ':');<br>
    snprintf(path, size, "%s/weston/%s", p next - p, name);<br>
    fd = open(path);</blockquote><div><br></div><div style>That is indeed much better.  Since your new parser is pending would you like me to hold off submitting a reworked patch that incorporates your suggestions?</div>
<div style><br></div><div style>Thanks to both you and Bill for the excellent feedback!</div><div style>-Ossama</div></div></div></div>