DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T g

⟦0fe9dda75⟧ TextFile

    Length: 1712 (0x6b0)
    Types: TextFile
    Names: »gen.c«

Derivation

└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
    └─⟦653021b30⟧ »EurOpenD3/utils/downtime.tar.Z« 
        └─⟦946c717da⟧ 
            └─⟦this⟧ »libgen/gen.c« 

TextFile

#ifndef lint
static char *RCSid = "$Header: gen.c,v 1.1 88/04/12 10:34:22 mcooper Exp $";
#endif

/*
 * $Log:	gen.c,v $
 * Revision 1.1  88/04/12  10:34:22  mcooper
 * Initial revision
 * 
 */


#include <stdio.h>
#include <ctype.h>

char *xmalloc(), *newstr(), *argv_zero();

/*
 * newstr - Return new copy of "str".
 */
char *
newstr(p)
char *p;
{
  char *s;

  s = (char *) xmalloc(strlen(p)+1);
  strcpy(s, p);

  return(s);
}

/*
 * upstr - Make "str" all upper case.
 */
upstr(str)
char *str;
{
  for (; *str; str++)
    if (islower(*str)) *str = toupper(*str);
}

/* 
 * lowerstr - Make "str" all lower case.
 */
lowerstr(str)
char *str;
{
  for (; *str; str++)
    if (isupper(*str)) *str = tolower(*str);
}

/*
 * xmalloc - Do a malloc with error checking.
 */
char *
xmalloc(size)
int size;
{
  char *p;

  if ((p = (char *) malloc(size)) == NULL) {
    perror("malloc");
    exit(1);
  }

  return(p);
}

/*
 * istrncmp - Do a strncmp ignoring case
 */
istrncmp(s1, s2, len)
char *s1, *s2;
int len;
{
  char p1[BUFSIZ], p2[BUFSIZ];
  int s;

  strcpy(p1, s1);
  strcpy(p2, s2);

  lowerstr(p1);
  lowerstr(p2);

  s = strncmp(p1, p2, len);

  return(s);
}

/*
 * istrncmp - Do a strncmp ignoring case
 */
istrcmp(s1, s2)
char *s1, *s2;
{
  char p1[BUFSIZ], p2[BUFSIZ];
  int s, len1, len2;

  strcpy(p1, s1);
  strcpy(p2, s2);

  lowerstr(p1);
  lowerstr(p2);

  len1 = strlen(p1);
  len2 = strlen(p2);

  s = strncmp(p1, p2, (len1 > len2) ? len1 : len2);

  return(s);
}

/*
 * argv_zero - Return the an appropriate argv[0] from "str".
 */
char *
argv_zero(str)
char *str;
{
  char *p;

  p = (char *)rindex(str, '/');
  if (p == NULL) {
    p = str;
  } else {
    *p++;
  }

  return(newstr(p));
}