* Style cleanup
* warning * implement --help git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23523 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -42,6 +42,8 @@
|
|||||||
|
|
||||||
char words[MAX_CACHED_WORDS][MAX_LETTERS+1];
|
char words[MAX_CACHED_WORDS][MAX_LETTERS+1];
|
||||||
|
|
||||||
|
#ifndef __HAIKU__
|
||||||
|
|
||||||
/* design ripped off from http://www.latms.berkeley.k12.ca.us/perl/node30.html :) */
|
/* design ripped off from http://www.latms.berkeley.k12.ca.us/perl/node30.html :) */
|
||||||
static char hungman[] = \
|
static char hungman[] = \
|
||||||
" ____ \n" \
|
" ____ \n" \
|
||||||
@@ -50,6 +52,9 @@ static char hungman[] = \
|
|||||||
" | %c%c%c \n" \
|
" | %c%c%c \n" \
|
||||||
" | %c %c \n" \
|
" | %c %c \n" \
|
||||||
" | \n";
|
" | \n";
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
/* some colors */
|
/* some colors */
|
||||||
static char hungman_ansi[] = \
|
static char hungman_ansi[] = \
|
||||||
" ____ \n" \
|
" ____ \n" \
|
||||||
@@ -59,6 +64,8 @@ static char hungman_ansi[] = \
|
|||||||
" | \033[35m%c %c\033[0m \n" \
|
" | \033[35m%c %c\033[0m \n" \
|
||||||
" | \n";
|
" | \n";
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// for gets,
|
// for gets,
|
||||||
#define BIGBUFFSZ 128
|
#define BIGBUFFSZ 128
|
||||||
char bigbuffer[BIGBUFFSZ];
|
char bigbuffer[BIGBUFFSZ];
|
||||||
@@ -101,7 +108,9 @@ char *(*bsod_saved_kgets)(char *, char *, int);
|
|||||||
# define HUNGMAN hungman_ansi
|
# define HUNGMAN hungman_ansi
|
||||||
#endif /* !_KERNEL_MODE */
|
#endif /* !_KERNEL_MODE */
|
||||||
|
|
||||||
status_t init_words(char *from)
|
|
||||||
|
status_t
|
||||||
|
init_words(char *from)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
size_t sz, got;
|
size_t sz, got;
|
||||||
@@ -154,7 +163,9 @@ status_t init_words(char *from)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_hangman(int fails)
|
|
||||||
|
void
|
||||||
|
print_hangman(int fails)
|
||||||
{
|
{
|
||||||
PRINTF(HUNGMAN,
|
PRINTF(HUNGMAN,
|
||||||
(fails > 0)?'O':' ',
|
(fails > 0)?'O':' ',
|
||||||
@@ -165,7 +176,9 @@ void print_hangman(int fails)
|
|||||||
(fails > 5)?'\\':' ');
|
(fails > 5)?'\\':' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_word(int current, uint32 tried_letters)
|
|
||||||
|
void
|
||||||
|
display_word(int current, uint32 tried_letters)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
PRINTF("word> ");
|
PRINTF("word> ");
|
||||||
@@ -176,7 +189,8 @@ void display_word(int current, uint32 tried_letters)
|
|||||||
PRINTF("\n");
|
PRINTF("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int play_hangman(void)
|
int
|
||||||
|
play_hangman(void)
|
||||||
{
|
{
|
||||||
int current;
|
int current;
|
||||||
int score = 0;
|
int score = 0;
|
||||||
@@ -248,13 +262,15 @@ int play_hangman(void)
|
|||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef _KERNEL_MODE /* driver parts */
|
#ifdef _KERNEL_MODE /* driver parts */
|
||||||
|
|
||||||
|
|
||||||
#ifndef __HAIKU__ /* BeOS intimacy revealed */
|
#ifndef __HAIKU__ /* BeOS intimacy revealed */
|
||||||
//char *bsod_wrapper_gets(char *p, int len)
|
//char *bsod_wrapper_gets(char *p, int len)
|
||||||
//char *bsod_wrapper_gets(int len, char *p)
|
//char *bsod_wrapper_gets(int len, char *p)
|
||||||
char *bsod_wrapper_gets(char *prompt, char *p, int len)
|
char *
|
||||||
|
bsod_wrapper_gets(char *prompt, char *p, int len)
|
||||||
{
|
{
|
||||||
/* fall back to the normal gets() */
|
/* fall back to the normal gets() */
|
||||||
bsod_kgets = bsod_saved_kgets;
|
bsod_kgets = bsod_saved_kgets;
|
||||||
@@ -268,9 +284,17 @@ char *bsod_wrapper_gets(char *prompt, char *p, int len)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int kdlhangman(int argc, char **argv)
|
|
||||||
|
int
|
||||||
|
kdlhangman(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int score;
|
int score;
|
||||||
|
|
||||||
|
if (argc > 1 && strcmp(argv[1], "--help") == 0) {
|
||||||
|
PRINTF("%s\n", KCMD_HELP);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
score = play_hangman();
|
score = play_hangman();
|
||||||
PRINTF("score %d\n", score);
|
PRINTF("score %d\n", score);
|
||||||
if (score > (MAX_CACHED_WORDS - MAX_FAILS_BEFORE_BSOD)) {
|
if (score > (MAX_CACHED_WORDS - MAX_FAILS_BEFORE_BSOD)) {
|
||||||
@@ -290,6 +314,7 @@ PRINTF("score %d\n", score);
|
|||||||
return B_KDEBUG_QUIT;
|
return B_KDEBUG_QUIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ifdef AS_DRIVER
|
# ifdef AS_DRIVER
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -298,11 +323,16 @@ typedef struct {
|
|||||||
|
|
||||||
const char * device_names[]={DEV_ENTRY, NULL};
|
const char * device_names[]={DEV_ENTRY, NULL};
|
||||||
|
|
||||||
status_t init_hardware(void) {
|
|
||||||
|
status_t
|
||||||
|
init_hardware(void) {
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t init_driver(void) {
|
|
||||||
|
status_t
|
||||||
|
init_driver(void)
|
||||||
|
{
|
||||||
status_t err;
|
status_t err;
|
||||||
|
|
||||||
err = init_words(FORTUNE_FILE);
|
err = init_words(FORTUNE_FILE);
|
||||||
@@ -315,15 +345,24 @@ status_t init_driver(void) {
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void uninit_driver(void) {
|
|
||||||
|
void
|
||||||
|
uninit_driver(void)
|
||||||
|
{
|
||||||
remove_debugger_command("kdlhangman", kdlhangman);
|
remove_debugger_command("kdlhangman", kdlhangman);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char **publish_devices() {
|
|
||||||
|
const char **
|
||||||
|
publish_devices()
|
||||||
|
{
|
||||||
return device_names;
|
return device_names;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t khangman_open(const char *name, uint32 flags, cookie_t **cookie) {
|
|
||||||
|
status_t
|
||||||
|
khangman_open(const char *name, uint32 flags, cookie_t **cookie)
|
||||||
|
{
|
||||||
(void)name; (void)flags;
|
(void)name; (void)flags;
|
||||||
*cookie = (void*)malloc(sizeof(cookie_t));
|
*cookie = (void*)malloc(sizeof(cookie_t));
|
||||||
if (*cookie == NULL) {
|
if (*cookie == NULL) {
|
||||||
@@ -336,22 +375,34 @@ err0:
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t khangman_close(void *cookie) {
|
|
||||||
|
status_t
|
||||||
|
khangman_close(void *cookie)
|
||||||
|
{
|
||||||
(void)cookie;
|
(void)cookie;
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t khangman_free(cookie_t *cookie) {
|
|
||||||
|
status_t
|
||||||
|
khangman_free(cookie_t *cookie)
|
||||||
|
{
|
||||||
free(cookie);
|
free(cookie);
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t khangman_read(cookie_t *cookie, off_t position, void *data, size_t *numbytes) {
|
|
||||||
|
status_t
|
||||||
|
khangman_read(cookie_t *cookie, off_t position, void *data, size_t *numbytes)
|
||||||
|
{
|
||||||
*numbytes = 0;
|
*numbytes = 0;
|
||||||
return B_NOT_ALLOWED;
|
return B_NOT_ALLOWED;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t khangman_write(void *cookie, off_t position, const void *data, size_t *numbytes) {
|
|
||||||
|
status_t
|
||||||
|
khangman_write(void *cookie, off_t position, const void *data, size_t *numbytes)
|
||||||
|
{
|
||||||
(void)cookie; (void)position; (void)data; (void)numbytes;
|
(void)cookie; (void)position; (void)data; (void)numbytes;
|
||||||
//*numbytes = 0;
|
//*numbytes = 0;
|
||||||
/* here we get to kdlhangman */
|
/* here we get to kdlhangman */
|
||||||
@@ -363,6 +414,7 @@ status_t khangman_write(void *cookie, off_t position, const void *data, size_t *
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
device_hooks khangman_hooks={
|
device_hooks khangman_hooks={
|
||||||
(device_open_hook)khangman_open,
|
(device_open_hook)khangman_open,
|
||||||
khangman_close,
|
khangman_close,
|
||||||
@@ -376,14 +428,22 @@ device_hooks khangman_hooks={
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
device_hooks *find_device(const char *name) {
|
|
||||||
|
device_hooks *
|
||||||
|
find_device(const char *name)
|
||||||
|
{
|
||||||
(void)name;
|
(void)name;
|
||||||
return &khangman_hooks;
|
return &khangman_hooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# else /* as module */
|
# else /* as module */
|
||||||
|
|
||||||
|
|
||||||
status_t std_ops(int32 op, ...);
|
status_t std_ops(int32 op, ...);
|
||||||
status_t std_ops(int32 op, ...)
|
|
||||||
|
status_t
|
||||||
|
std_ops(int32 op, ...)
|
||||||
{
|
{
|
||||||
status_t err;
|
status_t err;
|
||||||
|
|
||||||
@@ -403,6 +463,7 @@ status_t std_ops(int32 op, ...)
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static module_info minfo = {
|
static module_info minfo = {
|
||||||
"debugger/hangman/v1",
|
"debugger/hangman/v1",
|
||||||
B_KEEP_LOADED,
|
B_KEEP_LOADED,
|
||||||
@@ -415,7 +476,8 @@ module_info *modules[] = { &minfo, NULL };
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
void kdl_trip(void)
|
void
|
||||||
|
kdl_trip(void)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
fd = open("/dev/misc/hangman", O_WRONLY);
|
fd = open("/dev/misc/hangman", O_WRONLY);
|
||||||
@@ -428,7 +490,9 @@ void kdl_trip(void)
|
|||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv)
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv)
|
||||||
{
|
{
|
||||||
int score; /* how many correct guesses ? */
|
int score; /* how many correct guesses ? */
|
||||||
/* init */
|
/* init */
|
||||||
@@ -437,7 +501,7 @@ int main(int argc, char *argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
score = play_hangman();
|
score = play_hangman();
|
||||||
PRINTF("score %d\n", score);
|
PRINTF("score %d\n", score);
|
||||||
if (score > (MAX_CACHED_WORDS - MAX_FAILS_BEFORE_BSOD)) {
|
if (score > (MAX_CACHED_WORDS - MAX_FAILS_BEFORE_BSOD)) {
|
||||||
PRINTF("Congrats !\n");
|
PRINTF("Congrats !\n");
|
||||||
}
|
}
|
||||||
@@ -449,5 +513,4 @@ PRINTF("score %d\n", score);
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user