view src/util.h @ 271:3477050e8d10 noffle

[svn] * src/client.c,src/fetch.c,src/lock.c.src/protocol.c,src/util.h,src/util.c: Define our own SignalHandler type rather than use the rather Linux-specific (and potentially glibc version specific) sig_t. * src/client.c,src/database.h,src/database.c,src/over.h,src/over.c, src/pseudo.c,src/server.c: Ensure format string specifiers and passed data types match. As part of this, change some uses of size_t as a general data type to an appropriate base C type. Database status changes from int to unsigned.
author bears
date Sun, 10 Nov 2002 11:32:17 +0000
parents b660fadc1814
children 95697d7c97a1
line wrap: on
line source

/*
  util.h

  Miscellaneous helper functions.

  $Id: util.h 403 2002-11-10 11:32:17Z bears $
*/

#ifndef UTL_H
#define UTL_H

#if HAVE_CONFIG_H
#include <config.h>
#endif

#include <signal.h>

#if TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#else
#if HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#include <time.h>
#endif
#endif

#include "common.h"

typedef void (*SignalHandler)( int );

/*
  Find first non-whitespace character after <token> tokens in string <line>.
  Return pointer to end of string, if parsing failed.
*/
const char *
Utl_restOfLn( const char *line, unsigned int token );

void
Utl_toLower( Str line );

/*
  Read a line from string.
  Return NULL if pos == NULL or no more line to read
*/
const char *
Utl_getLn( Str result, const char *p );

/*
  Go back to last line.
*/
const char *
Utl_ungetLn( const char *str, const char *p );

/*
  Read a header line from string. Reads continuation lines if
  necessary. Line is returned as formatted, including '\n's.
  Return NULL if pos == NULL or no more line to read.
*/
const char *
Utl_getHeaderLn( Str result, const char *p );

/*
  Strip white spaces from left and right side.
  Return pointer to new start. This is within line.
*/
char *
Utl_stripWhiteSpace( char *line );

/* Strip comment from a line. Comments start with '#'. */
void
Utl_stripComment( char *line );

/* Write timestamp into <file>. */
void
Utl_stamp( Str file );

/* Get time stamp from <file> */
Bool
Utl_getStamp( time_t *result, Str file );

/* Like mktime, but GMT */
time_t
Utl_mktimeGMT( struct tm *t );

/* Put SonOfRFC1036 compliant date string into res. */
void
Utl_newsDate( time_t t, Str res );

/* Attempt to parse a SonOfRFC1036 compliant date string. Return -1 on fail. */
time_t
Utl_parseNewsDate( const char *s );

void
Utl_cpyStr( Str dst, const char *src );

void
Utl_cpyStrN( Str dst, const char *src, int n );

void
Utl_catStr( Str dst, const char *src );

void
Utl_catStrN( Str dst, const char *src, int n );

/* String allocation and copying. */
void
Utl_allocAndCpy( char **dst, const char *src );

/* Install signal handler. */
SignalHandler
Utl_installSignalHandler( int sig, SignalHandler handler );

/* Obtain this system FQDN. */
Bool
Utl_getFQDN( Str result );

#endif