diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c index c545477e2f092b6fd8fe36fbb1eebcdc765463e7..a0528467e488b3e06c2007abc1b9cc09cf3a98f6 100644 --- a/src/conio/ciolib.c +++ b/src/conio/ciolib.c @@ -138,6 +138,7 @@ int try_sdl_init(int mode) cio_api.getcliptext=sdl_getcliptext; #endif cio_api.setfont=sdl_setfont; + cio_api.getfont=sdl_getfont; return(1); } return(0); @@ -170,6 +171,7 @@ int try_x_init(int mode) cio_api.copytext=x_copytext; cio_api.getcliptext=x_getcliptext; cio_api.setfont=x_setfont; + cio_api.getfont=x_getfont; return(1); } return(0); @@ -967,3 +969,13 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_setfont(int font, int force) else return(-1); } + +CIOLIBEXPORT int CIOLIBCALL ciolib_getfont(void) +{ + CIOLIB_INIT(); + + if(cio_api.getfont!=NULL) + return(cio_api.getfont()); + else + return(-1); +} diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h index e4736d74635c36723af308514b7eb3ab8012d59e..222ff21acf55b2cf4d785fe52dfb3d251116ac11 100644 --- a/src/conio/ciolib.h +++ b/src/conio/ciolib.h @@ -242,6 +242,7 @@ typedef struct { void (*suspend) (void); void (*resume) (void); int (*setfont) (int font, int force); + int (*getfont) (void); } cioapi_t; CIOLIBEXPORTVAR cioapi_t cio_api; @@ -296,6 +297,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_hidemouse(void); CIOLIBEXPORT void CIOLIBCALL ciolib_copytext(const char *text, size_t buflen); CIOLIBEXPORT char * CIOLIBCALL ciolib_getcliptext(void); CIOLIBEXPORT int CIOLIBCALL ciolib_setfont(int font, int force); +CIOLIBEXPORT int CIOLIBCALL ciolib_getfont(void); #ifdef __cplusplus } #endif @@ -343,6 +345,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_setfont(int font, int force); #define copytext(a,b) ciolib_copytext(a,b) #define getcliptext() ciolib_getcliptext() #define setfont(a,b) ciolib_setfont(a,b) + #define getfont() ciolib_getfont() #endif /* Special hackery for SDL */ diff --git a/src/conio/console.c b/src/conio/console.c index bf3f9ab725d8393008cd6214f5e44ec377520878..1d1a7b13bd46ec911d896e8c64b02ebac23c5a56 100644 --- a/src/conio/console.c +++ b/src/conio/console.c @@ -130,7 +130,7 @@ sem_t copybuf_set; sem_t pastebuf_set; sem_t pastebuf_request; sem_t font_set; -int new_font; +int new_font=-1; int font_force; int setfont_return; pthread_mutex_t copybuf_mutex; diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c index 4b929c170abce725a53c95ffdac5fa23400896ce..099974b51690369ee1f621791f03feca5d6ebcc5 100644 --- a/src/conio/sdl_con.c +++ b/src/conio/sdl_con.c @@ -864,6 +864,11 @@ int sdl_setfont(int font, int force) sdl_user_func(SDL_USEREVENT_UPDATERECT,0,0,0,0); } +int sdl_getfont(void) +{ + return(sdl_current_font); +} + /* Called from event thread only */ void sdl_add_key(unsigned int keyval) { diff --git a/src/conio/sdl_con.h b/src/conio/sdl_con.h index b6c5f715cdf0971349537f3ac05056deafc2733d..5a62ef37eec1a399b24282a626cf213b7d259850 100644 --- a/src/conio/sdl_con.h +++ b/src/conio/sdl_con.h @@ -36,6 +36,7 @@ int sdl_showmouse(void); void sdl_copytext(const char *text, size_t buflen); char *sdl_getcliptext(void); int sdl_setfont(int font, int force); +int sdl_getfont(void); #ifdef __cplusplus } #endif diff --git a/src/conio/x_cio.c b/src/conio/x_cio.c index 6cec69c533be63222579ac663d836a259d666cd9..e75c9200ed3eb1de710160a6b9ff43e594d0e2fc 100644 --- a/src/conio/x_cio.c +++ b/src/conio/x_cio.c @@ -325,3 +325,8 @@ int x_setfont(int font, int force) sem_wait(&font_set); return(setfont_return); } + +int x_getfont(void) +{ + return(new_font); +} diff --git a/src/conio/x_cio.h b/src/conio/x_cio.h index e1015604748f8faef5f197449403ec90f3588dc3..067a926055a95bbaec9b2e880890226da20fd398 100644 --- a/src/conio/x_cio.h +++ b/src/conio/x_cio.h @@ -66,6 +66,7 @@ void x_settitle(const char *title); void x_copytext(const char *text, size_t buflen); char *x_getcliptext(void); int x_setfont(int font, int force); +int x_getfont(void); #ifdef __cplusplus } #endif