From 3613fc76cfe98a7fc3e38f0f75f83d4c4f349089 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sat, 19 Nov 2005 06:24:39 +0000
Subject: [PATCH] Add getfont() ciolib function.

---
 src/conio/ciolib.c  | 12 ++++++++++++
 src/conio/ciolib.h  |  3 +++
 src/conio/console.c |  2 +-
 src/conio/sdl_con.c |  5 +++++
 src/conio/sdl_con.h |  1 +
 src/conio/x_cio.c   |  5 +++++
 src/conio/x_cio.h   |  1 +
 7 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index c545477e2f..a0528467e4 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 e4736d7463..222ff21acf 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 bf3f9ab725..1d1a7b13bd 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 4b929c170a..099974b516 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 b6c5f715cd..5a62ef37ee 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 6cec69c533..e75c9200ed 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 e101560474..067a926055 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
-- 
GitLab