1 | /* |
1 | /* |
2 | * static char *rcsid_login_c = |
2 | * static char *rcsid_login_c = |
3 | * "$Id: login.C,v 1.7 2006/08/30 06:06:27 root Exp $"; |
3 | * "$Id: login.C,v 1.8 2006/08/30 16:30:37 root Exp $"; |
4 | */ |
4 | */ |
5 | |
5 | |
6 | /* |
6 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
7 | CrossFire, A Multiplayer game for X-windows |
8 | |
8 | |
… | |
… | |
93 | void delete_character(const char *name, int newchar) { |
93 | void delete_character(const char *name, int newchar) { |
94 | char buf[MAX_BUF]; |
94 | char buf[MAX_BUF]; |
95 | |
95 | |
96 | sprintf(buf,"%s/%s/%s.pl",settings.localdir,settings.playerdir,name); |
96 | sprintf(buf,"%s/%s/%s.pl",settings.localdir,settings.playerdir,name); |
97 | if(unlink(buf)== -1) |
97 | if(unlink(buf)== -1) |
98 | LOG(llevDebug, "Cannot delete character file %s: %s\n", buf, strerror_local(errno)); |
98 | LOG(llevDebug, "Cannot delete character file %s: %s\n", buf, strerror(errno)); |
99 | if (newchar) { |
99 | if (newchar) { |
100 | sprintf(buf,"%s/%s/%s",settings.localdir,settings.playerdir,name); |
100 | sprintf(buf,"%s/%s/%s",settings.localdir,settings.playerdir,name); |
101 | /* this effectively does an rm -rf on the directory */ |
101 | /* this effectively does an rm -rf on the directory */ |
102 | remove_directory(buf); |
102 | remove_directory(buf); |
103 | } |
103 | } |
… | |
… | |
196 | } else { |
196 | } else { |
197 | stat(savedir, buf); |
197 | stat(savedir, buf); |
198 | if (!S_ISDIR(buf->st_mode)) |
198 | if (!S_ISDIR(buf->st_mode)) |
199 | if (mkdir(savedir, SAVE_DIR_MODE)) |
199 | if (mkdir(savedir, SAVE_DIR_MODE)) |
200 | { |
200 | { |
201 | LOG(llevError, "Unable to create player savedir %s: %s\n", savedir, strerror_local(errno)); |
201 | LOG(llevError, "Unable to create player savedir %s: %s\n", savedir, strerror(errno)); |
202 | return 0; |
202 | return 0; |
203 | } |
203 | } |
204 | free(buf); |
204 | free(buf); |
205 | } |
205 | } |
206 | return 1; |
206 | return 1; |