/ circle3.1 / src / util / listrent.c
listrent.c
 1  /* ************************************************************************
 2  *  file: listrent.c                                  Part of CircleMUD *
 3  *  Usage: list player rent files                                          *
 4  *  Written by Jeremy Elson                                                *
 5  *  All Rights Reserved                                                    *
 6  *  Copyright (C) 1993 The Trustees of The Johns Hopkins University        *
 7  ************************************************************************* */
 8  
 9  #include "conf.h"
10  #include "sysdep.h"
11  
12  #include "structs.h"
13  
14  void Crash_listrent(char *fname);
15  
16  int main(int argc, char **argv)
17  {
18    int x;
19  
20    for (x = 1; x < argc; x++)
21      Crash_listrent(argv[x]);
22  
23    return (0);
24  }
25  
26  
27  void Crash_listrent(char *fname)
28  {
29    FILE *fl;
30    char buf[MAX_STRING_LENGTH];
31    struct obj_file_elem object;
32    struct rent_info rent;
33  
34    if (!(fl = fopen(fname, "rb"))) {
35      sprintf(buf, "%s has no rent file.\r\n", fname);
36      printf("%s", buf);
37      return;
38    }
39    sprintf(buf, "%s\r\n", fname);
40    if (!feof(fl))
41      fread(&rent, sizeof(struct rent_info), 1, fl);
42    switch (rent.rentcode) {
43    case RENT_RENTED:
44      strcat(buf, "Rent\r\n");
45      break;
46    case RENT_CRASH:
47      strcat(buf, "Crash\r\n");
48      break;
49    case RENT_CRYO:
50      strcat(buf, "Cryo\r\n");
51      break;
52    case RENT_TIMEDOUT:
53    case RENT_FORCED:
54      strcat(buf, "TimedOut\r\n");
55      break;
56    default:
57      strcat(buf, "Undef\r\n");
58      break;
59    }
60    while (!feof(fl)) {
61      fread(&object, sizeof(struct obj_file_elem), 1, fl);
62      if (ferror(fl)) {
63        fclose(fl);
64        return;
65      }
66      if (!feof(fl))
67        sprintf(buf, "%s[%5d] %s\n", buf, object.item_number, fname);
68    }
69    printf("%s", buf);
70    fclose(fl);
71  }