Files @ 92659c5651ef
Branch filter:

Location: DistRen/src/common/misc.c

binki
Reformed buildsystem.
- replace malloc.h with stdlib.h
- use AC_CONFIG_HEADERS for cleaner compile output
- clean out some useless AC_* macros and add useful AC_TYPE_UINT* macros
/*
  Copyright 2010 Nathan Phillip Brink <ohnobinki@ohnopublishing.net>

  This file is a part of DistRen.

  DistRen is free software: you can redistribute it and/or modify
  it under the terms of the GNU Affero General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  DistRen is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU Affero General Public License for more details.

  You should have received a copy of the GNU Affero General Public License
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "common/config.h"

#include "common/misc.h"

#include <errno.h>
#include <unistd.h>
#include <stddef.h>
#include <stdlib.h>

char *distren_getcwd()
{
  char *mycwd;
  size_t counter;
  
  /**
     This is completely wrong, feel free to rewrite with
     pathconf() in mind.
   */
  for(counter = 128; ; counter +=32)
    {
      mycwd = malloc(counter);

      errno = 0;
      if(getcwd(mycwd, counter))
	return mycwd;

      /** ERANGE means that counter is too small */
      if(errno != ERANGE)
	return (char *)NULL;

      free(mycwd);
    }
  return (char *)NULL;
}