… | |
… | |
21 | The authors can be reached via e-mail at <crossfire@schmorp.de> |
21 | The authors can be reached via e-mail at <crossfire@schmorp.de> |
22 | */ |
22 | */ |
23 | |
23 | |
24 | #include <global.h> |
24 | #include <global.h> |
25 | #include <loader.h> |
25 | #include <loader.h> |
26 | #ifndef __CEXTRACT__ |
|
|
27 | # include <sproto.h> |
26 | #include <sproto.h> |
28 | #endif |
27 | |
|
|
28 | #include <dirent.h> |
29 | |
29 | |
30 | extern weathermap_t **weathermap; |
30 | extern weathermap_t **weathermap; |
31 | |
31 | |
32 | /* Handles misc. input request - things like hash table, malloc, maps, |
32 | /* Handles misc. input request - things like hash table, malloc, maps, |
33 | * who, etc. |
33 | * who, etc. |
… | |
… | |
36 | void |
36 | void |
37 | map_info (object *op, char *search) |
37 | map_info (object *op, char *search) |
38 | { |
38 | { |
39 | maptile *m; |
39 | maptile *m; |
40 | char buf[MAX_BUF], map_path[MAX_BUF]; |
40 | char buf[MAX_BUF], map_path[MAX_BUF]; |
41 | long sec = seconds (); |
41 | long sec = time (0); |
42 | |
42 | |
43 | new_draw_info_format (NDI_UNIQUE, 0, op, "Current time is: %02ld:%02ld:%02ld.", (sec % 86400) / 3600, (sec % 3600) / 60, sec % 60); |
43 | new_draw_info_format (NDI_UNIQUE, 0, op, "Current time is: %02ld:%02ld:%02ld.", (sec % 86400) / 3600, (sec % 3600) / 60, sec % 60); |
44 | new_draw_info (NDI_UNIQUE, 0, op, "Path Pl PlM IM TO Dif Reset"); |
44 | new_draw_info (NDI_UNIQUE, 0, op, "Path Pl PlM IM TO Dif Reset"); |
45 | for (m = first_map; m != NULL; m = m->next) |
45 | for (m = first_map; m != NULL; m = m->next) |
46 | { |
46 | { |
… | |
… | |
627 | t = buf + strlen (buf); |
627 | t = buf + strlen (buf); |
628 | if ((Dir = opendir (buf)) != NULL) |
628 | if ((Dir = opendir (buf)) != NULL) |
629 | { |
629 | { |
630 | const struct dirent *Entry; |
630 | const struct dirent *Entry; |
631 | |
631 | |
632 | while ((Entry = readdir (Dir)) != NULL) |
632 | while ((Entry = readdir (Dir))) |
633 | { |
633 | { |
634 | /* skip '.' , '..' */ |
634 | /* skip '.' , '..' */ |
635 | if (!((Entry->d_name[0] == '.' && Entry->d_name[1] == '\0') || |
635 | if (!((Entry->d_name[0] == '.' && Entry->d_name[1] == '\0') || |
636 | (Entry->d_name[0] == '.' && Entry->d_name[1] == '.' && Entry->d_name[2] == '\0'))) |
636 | (Entry->d_name[0] == '.' && Entry->d_name[1] == '.' && Entry->d_name[2] == '\0'))) |
637 | { |
637 | { |
… | |
… | |
902 | char filename[MAX_BUF], line[80]; |
902 | char filename[MAX_BUF], line[80]; |
903 | int namelen, linelen = 0; |
903 | int namelen, linelen = 0; |
904 | |
904 | |
905 | switch (what) |
905 | switch (what) |
906 | { |
906 | { |
907 | case 1: |
907 | case 1: |
908 | sprintf (filename, "%s/wizhelp", settings.datadir); |
908 | sprintf (filename, "%s/wizhelp", settings.datadir); |
909 | new_draw_info (NDI_UNIQUE, 0, op, " Wiz commands:"); |
909 | new_draw_info (NDI_UNIQUE, 0, op, " Wiz commands:"); |
910 | break; |
910 | break; |
911 | case 3: |
911 | case 3: |
912 | sprintf (filename, "%s/mischelp", settings.datadir); |
912 | sprintf (filename, "%s/mischelp", settings.datadir); |
913 | new_draw_info (NDI_UNIQUE, 0, op, " Misc help:"); |
913 | new_draw_info (NDI_UNIQUE, 0, op, " Misc help:"); |
914 | break; |
914 | break; |
915 | default: |
915 | default: |
916 | sprintf (filename, "%s/help", settings.datadir); |
916 | sprintf (filename, "%s/help", settings.datadir); |
917 | new_draw_info (NDI_UNIQUE, 0, op, " Commands:"); |
917 | new_draw_info (NDI_UNIQUE, 0, op, " Commands:"); |
918 | break; |
918 | break; |
919 | } |
919 | } |
|
|
920 | |
920 | if (!(dirp = opendir (filename))) |
921 | if (!(dirp = opendir (filename))) |
921 | return; |
922 | return; |
922 | |
923 | |
923 | line[0] = '\0'; |
924 | line[0] = '\0'; |
924 | for (de = readdir (dirp); de; de = readdir (dirp)) |
925 | while (de = readdir (dirp)) |
925 | { |
926 | { |
926 | namelen = NAMLEN (de); |
927 | namelen = strlen (de->d_name); |
927 | if (namelen <= 2 && *de->d_name == '.' && (namelen == 1 || de->d_name[1] == '.')) |
928 | if (namelen <= 2 && *de->d_name == '.' && (namelen == 1 || de->d_name[1] == '.')) |
928 | continue; |
929 | continue; |
929 | linelen += namelen + 1; |
930 | linelen += namelen + 1; |
930 | if (linelen > 42) |
931 | if (linelen > 42) |
931 | { |
932 | { |