mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* See LICENSE.dwm file for copyright and license details. */
 | 
						|
#include <fcntl.h>
 | 
						|
#include <stdarg.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
#include "util.h"
 | 
						|
 | 
						|
void die(const char *fmt, ...) {
 | 
						|
  va_list ap;
 | 
						|
 | 
						|
  va_start(ap, fmt);
 | 
						|
  vfprintf(stderr, fmt, ap);
 | 
						|
  va_end(ap);
 | 
						|
 | 
						|
  if (fmt[0] && fmt[strlen(fmt) - 1] == ':') {
 | 
						|
    fputc(' ', stderr);
 | 
						|
    perror(NULL);
 | 
						|
  } else {
 | 
						|
    fputc('\n', stderr);
 | 
						|
  }
 | 
						|
 | 
						|
  exit(1);
 | 
						|
}
 | 
						|
 | 
						|
void *ecalloc(size_t nmemb, size_t size) {
 | 
						|
  void *p;
 | 
						|
 | 
						|
  if (!(p = calloc(nmemb, size)))
 | 
						|
    die("calloc:");
 | 
						|
  return p;
 | 
						|
}
 | 
						|
 | 
						|
int fd_set_nonblock(int fd) {
 | 
						|
  int flags = fcntl(fd, F_GETFL);
 | 
						|
  if (flags < 0) {
 | 
						|
    perror("fcntl(F_GETFL):");
 | 
						|
    return -1;
 | 
						|
  }
 | 
						|
  if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) < 0) {
 | 
						|
    perror("fcntl(F_SETFL):");
 | 
						|
    return -1;
 | 
						|
  }
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 |