Changeset - b69cba4364ed
[Not reviewed]
default
0 0 2
Nathan Brink (binki) - 16 years ago 2010-02-17 12:24:07
ohnobinki@ohnopublishing.net
added missing misc files
2 files changed with 81 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/common/misc.c
Show inline comments
 
new file 100644
 
/*
 
  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/misc.h"
 

	
 
#include <errno.h>
 
#include <unistd.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;
 
}
src/common/misc.h
Show inline comments
 
new file 100644
 
/*
 
  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/>.
 
*/
 

	
 
#ifndef _DISTREN_COMMON_MISC_H
 
#define _DISTREN_COMMON_MISC_H
 

	
 
/**
 
   Grabs the current working directory, allocates memory
 
   to store it, and returns it.
 
   
 
   @return A pointer allocated with malloc() which must be
 
   free()ed with free().
 
 */
 
char *distren_getcwd();
 

	
 
#endif
0 comments (0 inline, 0 general)