stray tabs
This commit is contained in:
+1
-1
@@ -76,7 +76,7 @@ const struct nethack_color colortable[] = {
|
|||||||
{ NOC, 8, 0, "nocolor", 0x00, 0x00, 0x00 }, /* NO_COLOR */
|
{ NOC, 8, 0, "nocolor", 0x00, 0x00, 0x00 }, /* NO_COLOR */
|
||||||
{ NHC, 9, 0, "orange", 0xFF, 0xA5, 0x00 }, /* CLR_ORANGE */
|
{ NHC, 9, 0, "orange", 0xFF, 0xA5, 0x00 }, /* CLR_ORANGE */
|
||||||
{ NHC, 10, 0, "bright-green",
|
{ NHC, 10, 0, "bright-green",
|
||||||
0x00, 0x80, 0x00 }, /* CLR_BRIGHT_GREEN */
|
0x00, 0x80, 0x00 }, /* CLR_BRIGHT_GREEN */
|
||||||
{ NHC, 11, 0, "yellow", 0xFF, 0xFF, 0x00 }, /* CLR_YELLOW */
|
{ NHC, 11, 0, "yellow", 0xFF, 0xFF, 0x00 }, /* CLR_YELLOW */
|
||||||
{ NHC, 12, 0, "bright-blue", 0xAD, 0xD8, 0xE6 }, /* CLR_BRIGHT_BLUE */
|
{ NHC, 12, 0, "bright-blue", 0xAD, 0xD8, 0xE6 }, /* CLR_BRIGHT_BLUE */
|
||||||
{ NHC, 13, 0, "bright-magenta",
|
{ NHC, 13, 0, "bright-magenta",
|
||||||
|
|||||||
+5
-5
@@ -5311,11 +5311,11 @@ optfn_boolean(
|
|||||||
go.opt_need_redraw = TRUE;
|
go.opt_need_redraw = TRUE;
|
||||||
break;
|
break;
|
||||||
#ifndef IDLECHECKPOINT
|
#ifndef IDLECHECKPOINT
|
||||||
case opt_idlecheckpoint:
|
case opt_idlecheckpoint:
|
||||||
pline("There is no underlying support for 'idlecheckpoint'"
|
pline("There is no underlying support for 'idlecheckpoint'"
|
||||||
" compiled in.");
|
" compiled in.");
|
||||||
iflags.idlecheckpoint = FALSE;
|
iflags.idlecheckpoint = FALSE;
|
||||||
give_opt_msg = FALSE;
|
give_opt_msg = FALSE;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
|||||||
+69
-69
@@ -238,7 +238,7 @@ static bool have_asked = false;
|
|||||||
void NetHackQtBind::qt_player_selection()
|
void NetHackQtBind::qt_player_selection()
|
||||||
{
|
{
|
||||||
if ( !have_asked )
|
if ( !have_asked )
|
||||||
qt_askname();
|
qt_askname();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetHackQtBind::qt_askname()
|
void NetHackQtBind::qt_askname()
|
||||||
@@ -345,38 +345,38 @@ winid NetHackQtBind::qt_create_nhwindow(int type)
|
|||||||
{
|
{
|
||||||
winid id;
|
winid id;
|
||||||
for (id = 0; id < (winid) id_to_window.size(); id++) {
|
for (id = 0; id < (winid) id_to_window.size(); id++) {
|
||||||
if ( !id_to_window[(int)id] )
|
if ( !id_to_window[(int)id] )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ( id == (winid) id_to_window.size() )
|
if ( id == (winid) id_to_window.size() )
|
||||||
id_to_window.resize(id+1);
|
id_to_window.resize(id+1);
|
||||||
|
|
||||||
NetHackQtWindow* window=0;
|
NetHackQtWindow* window=0;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case NHW_MAP: {
|
case NHW_MAP: {
|
||||||
NetHackQtMapWindow2* w=new NetHackQtMapWindow2(clickbuffer);
|
NetHackQtMapWindow2* w=new NetHackQtMapWindow2(clickbuffer);
|
||||||
main->AddMapWindow(w);
|
main->AddMapWindow(w);
|
||||||
window=w;
|
window=w;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NHW_MESSAGE: {
|
case NHW_MESSAGE: {
|
||||||
NetHackQtMessageWindow* w=new NetHackQtMessageWindow;
|
NetHackQtMessageWindow* w=new NetHackQtMessageWindow;
|
||||||
main->AddMessageWindow(w);
|
main->AddMessageWindow(w);
|
||||||
window=w;
|
window=w;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NHW_STATUS: {
|
case NHW_STATUS: {
|
||||||
NetHackQtStatusWindow* w=new NetHackQtStatusWindow;
|
NetHackQtStatusWindow* w=new NetHackQtStatusWindow;
|
||||||
main->AddStatusWindow(w);
|
main->AddStatusWindow(w);
|
||||||
window=w;
|
window=w;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NHW_MENU:
|
case NHW_MENU:
|
||||||
window=new NetHackQtMenuOrTextWindow(mainWidget());
|
window=new NetHackQtMenuOrTextWindow(mainWidget());
|
||||||
break;
|
break;
|
||||||
case NHW_TEXT:
|
case NHW_TEXT:
|
||||||
window=new NetHackQtTextWindow(mainWidget());
|
window=new NetHackQtTextWindow(mainWidget());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,11 +387,11 @@ winid NetHackQtBind::qt_create_nhwindow(int type)
|
|||||||
#if QT_VERSION >= 300
|
#if QT_VERSION >= 300
|
||||||
&& !main->isHidden()
|
&& !main->isHidden()
|
||||||
#else
|
#else
|
||||||
&& main->isVisible()
|
&& main->isVisible()
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
delete splash;
|
delete splash;
|
||||||
splash = 0;
|
splash = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
id_to_window[(int)id] = window;
|
id_to_window[(int)id] = window;
|
||||||
@@ -453,30 +453,30 @@ void NetHackQtBind::qt_display_file(const char *filename, boolean must_exist)
|
|||||||
bool complain = false;
|
bool complain = false;
|
||||||
|
|
||||||
{
|
{
|
||||||
dlb *f;
|
dlb *f;
|
||||||
char buf[BUFSZ];
|
char buf[BUFSZ];
|
||||||
char *cr;
|
char *cr;
|
||||||
|
|
||||||
window->Clear();
|
window->Clear();
|
||||||
f = dlb_fopen(filename, "r");
|
f = dlb_fopen(filename, "r");
|
||||||
if (!f) {
|
if (!f) {
|
||||||
complain = must_exist;
|
complain = must_exist;
|
||||||
} else {
|
} else {
|
||||||
while (dlb_fgets(buf, BUFSZ, f)) {
|
while (dlb_fgets(buf, BUFSZ, f)) {
|
||||||
if ((cr = strchr(buf, '\n')) != 0) *cr = 0;
|
if ((cr = strchr(buf, '\n')) != 0) *cr = 0;
|
||||||
#ifdef MSDOS
|
#ifdef MSDOS
|
||||||
if ((cr = strchr(buf, '\r')) != 0) *cr = 0;
|
if ((cr = strchr(buf, '\r')) != 0) *cr = 0;
|
||||||
#endif
|
#endif
|
||||||
window->PutStr(ATR_NONE, tabexpand(buf));
|
window->PutStr(ATR_NONE, tabexpand(buf));
|
||||||
}
|
}
|
||||||
window->Display(false);
|
window->Display(false);
|
||||||
(void) dlb_fclose(f);
|
(void) dlb_fclose(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (complain) {
|
if (complain) {
|
||||||
QString message = nh_qsprintf("File not found: %s\n",filename);
|
QString message = nh_qsprintf("File not found: %s\n",filename);
|
||||||
QMessageBox::warning(NULL, "File Error", message, QMessageBox::Ignore);
|
QMessageBox::warning(NULL, "File Error", message, QMessageBox::Ignore);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -511,7 +511,7 @@ int NetHackQtBind::qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list)
|
|||||||
void NetHackQtBind::qt_update_inventory(int arg UNUSED)
|
void NetHackQtBind::qt_update_inventory(int arg UNUSED)
|
||||||
{
|
{
|
||||||
if (main)
|
if (main)
|
||||||
main->updateInventory(); // update the paper doll inventory subset
|
main->updateInventory(); // update the paper doll inventory subset
|
||||||
|
|
||||||
/* doesn't work yet
|
/* doesn't work yet
|
||||||
if (program_state.something_worth_saving && iflags.perm_invent)
|
if (program_state.something_worth_saving && iflags.perm_invent)
|
||||||
@@ -636,7 +636,7 @@ const QPen NetHackQtBind::nhcolor_to_pen(uint32_t c)
|
|||||||
int NetHackQtBind::qt_nhgetch()
|
int NetHackQtBind::qt_nhgetch()
|
||||||
{
|
{
|
||||||
if (main)
|
if (main)
|
||||||
main->fadeHighlighting(true);
|
main->fadeHighlighting(true);
|
||||||
|
|
||||||
// Process events until a key arrives.
|
// Process events until a key arrives.
|
||||||
//
|
//
|
||||||
@@ -705,17 +705,17 @@ qt_timer_fire(void)
|
|||||||
int NetHackQtBind::qt_nh_poskey(coordxy *x, coordxy *y, int *mod)
|
int NetHackQtBind::qt_nh_poskey(coordxy *x, coordxy *y, int *mod)
|
||||||
{
|
{
|
||||||
if (main)
|
if (main)
|
||||||
main->fadeHighlighting(true);
|
main->fadeHighlighting(true);
|
||||||
|
|
||||||
#ifdef IDLECHECKPOINT
|
#ifdef IDLECHECKPOINT
|
||||||
if (iflags.idlecheckpoint) {
|
if (iflags.idlecheckpoint) {
|
||||||
if (!qt_input_timer) {
|
if (!qt_input_timer) {
|
||||||
qt_input_timer = new QTimer();
|
qt_input_timer = new QTimer();
|
||||||
qt_input_timer->setSingleShot(true);
|
qt_input_timer->setSingleShot(true);
|
||||||
connect(qt_input_timer, &QTimer::timeout, &qt_timer_fire);
|
connect(qt_input_timer, &QTimer::timeout, &qt_timer_fire);
|
||||||
}
|
}
|
||||||
if (!qt_input_timer->isActive())
|
if (!qt_input_timer->isActive())
|
||||||
qt_input_timer->start(IDLECHECKPOINT_WAIT_TIME * 1000);
|
qt_input_timer->start(IDLECHECKPOINT_WAIT_TIME * 1000);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Process events until a key or map-click arrives.
|
// Process events until a key or map-click arrives.
|
||||||
@@ -738,15 +738,15 @@ int NetHackQtBind::qt_nh_poskey(coordxy *x, coordxy *y, int *mod)
|
|||||||
#endif
|
#endif
|
||||||
return keybuffer.GetAscii();
|
return keybuffer.GetAscii();
|
||||||
} else {
|
} else {
|
||||||
*x=clickbuffer.NextX();
|
*x=clickbuffer.NextX();
|
||||||
*y=clickbuffer.NextY();
|
*y=clickbuffer.NextY();
|
||||||
*mod=clickbuffer.NextMod();
|
*mod=clickbuffer.NextMod();
|
||||||
clickbuffer.Get();
|
clickbuffer.Get();
|
||||||
#ifdef IDLECHECKPOINT
|
#ifdef IDLECHECKPOINT
|
||||||
if (qt_input_timer->isActive())
|
if (qt_input_timer->isActive())
|
||||||
qt_input_timer->stop();
|
qt_input_timer->stop();
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -792,10 +792,10 @@ char NetHackQtBind::qt_more()
|
|||||||
int complain = 0;
|
int complain = 0;
|
||||||
do {
|
do {
|
||||||
ch = NetHackQtBind::qt_nhgetch();
|
ch = NetHackQtBind::qt_nhgetch();
|
||||||
if (::program_state.savefile_completed) {
|
if (::program_state.savefile_completed) {
|
||||||
retry = false;
|
retry = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case '\0': // hypothetical
|
case '\0': // hypothetical
|
||||||
ch = '\033';
|
ch = '\033';
|
||||||
@@ -876,26 +876,26 @@ char NetHackQtBind::qt_yn_function(const char *question_,
|
|||||||
!::iflags.wc_popup_dialog
|
!::iflags.wc_popup_dialog
|
||||||
#endif
|
#endif
|
||||||
&& WIN_MESSAGE != WIN_ERR) {
|
&& WIN_MESSAGE != WIN_ERR) {
|
||||||
// Similar to X11 windowport `slow' feature.
|
// Similar to X11 windowport `slow' feature.
|
||||||
|
|
||||||
char cbuf[20];
|
char cbuf[20];
|
||||||
cbuf[0] = '\0';
|
cbuf[0] = '\0';
|
||||||
|
|
||||||
// add the prompt to the message window
|
// add the prompt to the message window
|
||||||
NetHackQtBind::qt_putstr(WIN_MESSAGE, ATR_BOLD, message);
|
NetHackQtBind::qt_putstr(WIN_MESSAGE, ATR_BOLD, message);
|
||||||
|
|
||||||
while (result < 0) {
|
while (result < 0) {
|
||||||
cbuf[0] = '\0';
|
cbuf[0] = '\0';
|
||||||
char ch=NetHackQtBind::qt_nhgetch();
|
char ch=NetHackQtBind::qt_nhgetch();
|
||||||
if (ch=='\033') {
|
if (ch=='\033') {
|
||||||
result=yn_esc_map;
|
result=yn_esc_map;
|
||||||
Strcpy(cbuf, "ESC");
|
Strcpy(cbuf, "ESC");
|
||||||
} else if (choices && !strchr(choices,ch)) {
|
} else if (choices && !strchr(choices,ch)) {
|
||||||
if (def && (ch==' ' || ch=='\r' || ch=='\n')) {
|
if (def && (ch==' ' || ch=='\r' || ch=='\n')) {
|
||||||
result=def;
|
result=def;
|
||||||
Strcpy(cbuf, visctrl(def));
|
Strcpy(cbuf, visctrl(def));
|
||||||
} else {
|
} else {
|
||||||
NetHackQtBind::qt_nhbell();
|
NetHackQtBind::qt_nhbell();
|
||||||
// typing anything caused the most recent message line
|
// typing anything caused the most recent message line
|
||||||
// (which happens to our prompt) from having highlighting
|
// (which happens to our prompt) from having highlighting
|
||||||
// be removed; put that back
|
// be removed; put that back
|
||||||
@@ -903,13 +903,13 @@ char NetHackQtBind::qt_yn_function(const char *question_,
|
|||||||
*mesgwin = main ? main->GetMessageWindow() : NULL;
|
*mesgwin = main ? main->GetMessageWindow() : NULL;
|
||||||
if (mesgwin)
|
if (mesgwin)
|
||||||
mesgwin->RehighlightPrompt();
|
mesgwin->RehighlightPrompt();
|
||||||
// and try again...
|
// and try again...
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result=ch;
|
result=ch;
|
||||||
Strcpy(cbuf, visctrl(ch));
|
Strcpy(cbuf, visctrl(ch));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the prompt message line to include the response
|
// update the prompt message line to include the response
|
||||||
if (cbuf[0]) {
|
if (cbuf[0]) {
|
||||||
|
|||||||
+49
-49
@@ -23,78 +23,78 @@ class NetHackQtClickBuffer;
|
|||||||
|
|
||||||
class NetHackQtBind : NetHackQtBindBase {
|
class NetHackQtBind : NetHackQtBindBase {
|
||||||
private:
|
private:
|
||||||
// Single-instance preservation...
|
// Single-instance preservation...
|
||||||
NetHackQtBind(int& argc, char** argv);
|
NetHackQtBind(int& argc, char** argv);
|
||||||
|
|
||||||
static NetHackQtBind* instance;
|
static NetHackQtBind* instance;
|
||||||
|
|
||||||
static NetHackQtKeyBuffer keybuffer;
|
static NetHackQtKeyBuffer keybuffer;
|
||||||
static NetHackQtClickBuffer clickbuffer;
|
static NetHackQtClickBuffer clickbuffer;
|
||||||
|
|
||||||
static QFrame* splash;
|
static QFrame* splash;
|
||||||
static NetHackQtMainWindow* main;
|
static NetHackQtMainWindow* main;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void qt_Splash();
|
static void qt_Splash();
|
||||||
|
|
||||||
/* window interface */
|
/* window interface */
|
||||||
|
|
||||||
static void qt_init_nhwindows(int* argc, char** argv);
|
static void qt_init_nhwindows(int* argc, char** argv);
|
||||||
static void qt_player_selection();
|
static void qt_player_selection();
|
||||||
static void qt_askname();
|
static void qt_askname();
|
||||||
static void qt_get_nh_event();
|
static void qt_get_nh_event();
|
||||||
static void qt_exit_nhwindows(const char *);
|
static void qt_exit_nhwindows(const char *);
|
||||||
static void qt_suspend_nhwindows(const char *);
|
static void qt_suspend_nhwindows(const char *);
|
||||||
static void qt_resume_nhwindows();
|
static void qt_resume_nhwindows();
|
||||||
static winid qt_create_nhwindow(int type);
|
static winid qt_create_nhwindow(int type);
|
||||||
static void qt_clear_nhwindow(winid wid);
|
static void qt_clear_nhwindow(winid wid);
|
||||||
static void qt_display_nhwindow(winid wid, boolean block);
|
static void qt_display_nhwindow(winid wid, boolean block);
|
||||||
static void qt_destroy_nhwindow(winid wid);
|
static void qt_destroy_nhwindow(winid wid);
|
||||||
static void qt_curs(winid wid, int x, int y);
|
static void qt_curs(winid wid, int x, int y);
|
||||||
static void qt_putstr(winid wid, int attr, const char *text);
|
static void qt_putstr(winid wid, int attr, const char *text);
|
||||||
static void qt_putstr(winid wid, int attr, const std::string& text);
|
static void qt_putstr(winid wid, int attr, const std::string& text);
|
||||||
static void qt_putstr(winid wid, int attr, const QString& text);
|
static void qt_putstr(winid wid, int attr, const QString& text);
|
||||||
static void qt_display_file(const char *filename, boolean must_exist);
|
static void qt_display_file(const char *filename, boolean must_exist);
|
||||||
static void qt_start_menu(winid wid, unsigned long mbehavior);
|
static void qt_start_menu(winid wid, unsigned long mbehavior);
|
||||||
static void qt_add_menu(winid wid, const glyph_info *glyphinfo,
|
static void qt_add_menu(winid wid, const glyph_info *glyphinfo,
|
||||||
const ANY_P * identifier, char ch, char gch, int attr, int clr,
|
const ANY_P * identifier, char ch, char gch, int attr, int clr,
|
||||||
const char *str, unsigned int itemflags);
|
const char *str, unsigned int itemflags);
|
||||||
static void qt_end_menu(winid wid, const char *prompt);
|
static void qt_end_menu(winid wid, const char *prompt);
|
||||||
static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
|
static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
|
||||||
static void qt_mark_synch();
|
static void qt_mark_synch();
|
||||||
static void qt_wait_synch();
|
static void qt_wait_synch();
|
||||||
|
|
||||||
static void qt_cliparound(int x, int y);
|
static void qt_cliparound(int x, int y);
|
||||||
static void qt_cliparound_window(winid wid, int x, int y);
|
static void qt_cliparound_window(winid wid, int x, int y);
|
||||||
static void qt_print_glyph(winid wid, coordxy x, coordxy y,
|
static void qt_print_glyph(winid wid, coordxy x, coordxy y,
|
||||||
const glyph_info *glyphingo,
|
const glyph_info *glyphingo,
|
||||||
const glyph_info *bkglyphinfo);
|
const glyph_info *bkglyphinfo);
|
||||||
static void qt_raw_print(const char *str);
|
static void qt_raw_print(const char *str);
|
||||||
static void qt_raw_print_bold(const char *str);
|
static void qt_raw_print_bold(const char *str);
|
||||||
static const QPen nhcolor_to_pen(uint32_t c);
|
static const QPen nhcolor_to_pen(uint32_t c);
|
||||||
static void qt_change_color(int color, long rgb, int reverse UNUSED);
|
static void qt_change_color(int color, long rgb, int reverse UNUSED);
|
||||||
static char *qt_get_color_string(void);
|
static char *qt_get_color_string(void);
|
||||||
static int qt_nhgetch();
|
static int qt_nhgetch();
|
||||||
static int qt_nh_poskey(coordxy *x, coordxy *y, int *mod);
|
static int qt_nh_poskey(coordxy *x, coordxy *y, int *mod);
|
||||||
static void qt_nhbell();
|
static void qt_nhbell();
|
||||||
static int qt_doprev_message();
|
static int qt_doprev_message();
|
||||||
static char qt_more();
|
static char qt_more();
|
||||||
static char qt_yn_function(const char *question,
|
static char qt_yn_function(const char *question,
|
||||||
const char *choices, char def);
|
const char *choices, char def);
|
||||||
static void qt_getlin(const char *prompt, char *line);
|
static void qt_getlin(const char *prompt, char *line);
|
||||||
static int qt_get_ext_cmd();
|
static int qt_get_ext_cmd();
|
||||||
static void qt_number_pad(int);
|
static void qt_number_pad(int);
|
||||||
static void qt_delay_output();
|
static void qt_delay_output();
|
||||||
|
|
||||||
static void qt_preference_update(const char *optname);
|
static void qt_preference_update(const char *optname);
|
||||||
static char *qt_getmsghistory(boolean init);
|
static char *qt_getmsghistory(boolean init);
|
||||||
static void qt_putmsghistory(const char *msg, boolean is_restoring);
|
static void qt_putmsghistory(const char *msg, boolean is_restoring);
|
||||||
|
|
||||||
static void qt_outrip(winid wid, int how, time_t when);
|
static void qt_outrip(winid wid, int how, time_t when);
|
||||||
static int qt_kbhit();
|
static int qt_kbhit();
|
||||||
static void qt_update_inventory(int);
|
static void qt_update_inventory(int);
|
||||||
static win_request_info *qt_ctrl_nhwindow(winid, int, win_request_info *);
|
static win_request_info *qt_ctrl_nhwindow(winid, int, win_request_info *);
|
||||||
static QWidget *mainWidget() { return main; }
|
static QWidget *mainWidget() { return main; }
|
||||||
#if defined(SND_LIB_QTSOUND) && !defined(QT_NO_SOUND)
|
#if defined(SND_LIB_QTSOUND) && !defined(QT_NO_SOUND)
|
||||||
/* sound interface */
|
/* sound interface */
|
||||||
static void qtsound_init_nhsound(void);
|
static void qtsound_init_nhsound(void);
|
||||||
@@ -111,7 +111,7 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual bool notify(QObject *receiver, QEvent *event);
|
virtual bool notify(QObject *receiver, QEvent *event);
|
||||||
|
|
||||||
static QStringList *msgs_strings;
|
static QStringList *msgs_strings;
|
||||||
static boolean msgs_saved;
|
static boolean msgs_saved;
|
||||||
|
|||||||
Reference in New Issue
Block a user