f354f53435
Including config.h is necessary to get e.g. the _GNU_SOURCE define and any other definitions that autoconf declares. Hence, config.h needs to be included as the first header in each file. This is done either via: 1. Including "common.h" (i3bar) 2. Including "libi3.h" 3. Including "all.h" (i3) 4. Including <config.h> directly Also remove now-unused I3__FILE__, add copyright/license statement where missing and switch include/all.h to #pragma once.
35 lines
640 B
C
35 lines
640 B
C
/*
|
|
* vim:ts=4:sw=4:expandtab
|
|
*
|
|
* i3 - an improved dynamic tiling window manager
|
|
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
|
|
*
|
|
*/
|
|
#include "libi3.h"
|
|
|
|
#include <sys/types.h>
|
|
#include <string.h>
|
|
|
|
#if defined(__APPLE__)
|
|
|
|
/*
|
|
* Taken from FreeBSD
|
|
* Returns a pointer to a new string which is a duplicate of the
|
|
* string, but only copies at most n characters.
|
|
*
|
|
*/
|
|
char *strndup(const char *str, size_t n) {
|
|
size_t len;
|
|
char *copy;
|
|
|
|
for (len = 0; len < n && str[len]; len++)
|
|
continue;
|
|
|
|
copy = smalloc(len + 1);
|
|
memcpy(copy, str, len);
|
|
copy[len] = '\0';
|
|
return (copy);
|
|
}
|
|
|
|
#endif
|