Pass std::span to msgbox_warning
This commit is contained in:
parent
6d0a5f5783
commit
ea5d0136dc
|
@ -33,9 +33,9 @@ void display_cocoa_alert(const char *message, int error)
|
|||
[pool drain];
|
||||
}
|
||||
|
||||
void msgbox_warning(const char *message)
|
||||
void msgbox_warning(const std::span<const char> message)
|
||||
{
|
||||
display_cocoa_alert(message, 0);
|
||||
display_cocoa_alert(message.data(), 0);
|
||||
}
|
||||
|
||||
void msgbox_error(const char *message)
|
||||
|
|
|
@ -46,9 +46,9 @@ static void display_win32_alert(const char *message, int error)
|
|||
gr_toggle_fullscreen();
|
||||
}
|
||||
|
||||
void msgbox_warning(const char *message)
|
||||
void msgbox_warning(const std::span<const char> message)
|
||||
{
|
||||
display_win32_alert(message, 0);
|
||||
display_win32_alert(message.data(), 0);
|
||||
}
|
||||
|
||||
void msgbox_error(const char *message)
|
||||
|
|
|
@ -28,6 +28,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include <cassert>
|
||||
#include <cstddef>
|
||||
#include <cstdio>
|
||||
#include <span>
|
||||
#include "dsx-ns.h"
|
||||
#include "fmtcheck.h"
|
||||
|
||||
|
@ -37,7 +38,7 @@ void Warning_puts(const char *str) __attribute_nonnull();
|
|||
void Warning(const char *fmt,...) __attribute_format_printf(1, 2); //print out warning message to user
|
||||
#define Warning(F,...) dxx_call_printf_checked(Warning,Warning_puts,(),(F),##__VA_ARGS__)
|
||||
#if DXX_USE_EDITOR
|
||||
void set_warn_func(void (*f)(const char *s));//specifies the function to call with warning messages
|
||||
void set_warn_func(void (*f)(std::span<const char> s)); //specifies the function to call with warning messages
|
||||
#if !(defined(WIN32) || defined(__APPLE__) || defined(__MACH__))
|
||||
void clear_warn_func();//say this function no longer valid
|
||||
#endif
|
||||
|
|
|
@ -14,11 +14,13 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <span>
|
||||
|
||||
namespace dcx {
|
||||
|
||||
#if defined(WIN32) || defined(__APPLE__) || defined(__MACH__)
|
||||
// Display a warning in a messagebox
|
||||
extern void msgbox_warning(const char *message);
|
||||
void msgbox_warning(std::span<const char> message);
|
||||
|
||||
// Display an error in a messagebox
|
||||
extern void msgbox_error(const char *message);
|
||||
|
|
|
@ -37,14 +37,14 @@ namespace dcx {
|
|||
#define MAX_MSG_LEN 2048
|
||||
|
||||
#if !DXX_USE_EDITOR || (!(defined(WIN32) || defined(__APPLE__) || defined(__MACH__)))
|
||||
static void warn_printf(const char *s)
|
||||
static void warn_printf(const std::span<const char> s)
|
||||
{
|
||||
con_puts(CON_URGENT,s);
|
||||
con_puts(CON_URGENT, s.data());
|
||||
}
|
||||
#endif
|
||||
|
||||
#if DXX_USE_EDITOR
|
||||
static void (*warn_func)(const char *s) =
|
||||
static void (*warn_func)(std::span<const char> s) =
|
||||
#if defined(WIN32) || defined(__APPLE__) || defined(__MACH__)
|
||||
msgbox_warning
|
||||
#else
|
||||
|
@ -53,7 +53,7 @@ static void (*warn_func)(const char *s) =
|
|||
;
|
||||
|
||||
//provides a function to call with warning messages
|
||||
void set_warn_func(void (*f)(const char *s))
|
||||
void set_warn_func(void (*f)(std::span<const char> s))
|
||||
{
|
||||
warn_func = f;
|
||||
}
|
||||
|
@ -136,9 +136,9 @@ void Warning_puts(const char *str)
|
|||
if (warn == NULL)
|
||||
return;
|
||||
#endif
|
||||
char warn_message[MAX_MSG_LEN];
|
||||
snprintf(warn_message, sizeof(warn_message), "Warning: %s", str);
|
||||
(*warn)(warn_message);
|
||||
std::array<char, MAX_MSG_LEN> warn_message;
|
||||
const auto written = snprintf(std::data(warn_message), std::size(warn_message), "Warning: %s", str);
|
||||
(*warn)(std::span<const char>(warn_message.data(), written));
|
||||
}
|
||||
|
||||
//print out warning message to user
|
||||
|
@ -152,14 +152,14 @@ void (Warning)(const char *fmt,...)
|
|||
return;
|
||||
#endif
|
||||
|
||||
char warn_message[MAX_MSG_LEN];
|
||||
strcpy(warn_message,"Warning: ");
|
||||
std::array<char, MAX_MSG_LEN> warn_message;
|
||||
strcpy(warn_message.data(), "Warning: ");
|
||||
|
||||
va_start(arglist,fmt);
|
||||
vsnprintf(warn_message+9,sizeof(warn_message)-9,fmt,arglist);
|
||||
const auto written = vsnprintf(std::next(warn_message.begin(), 9), std::size(warn_message) - 9, fmt, arglist);
|
||||
va_end(arglist);
|
||||
|
||||
(*warn)(warn_message);
|
||||
(*warn)(std::span<const char>(warn_message.data(), written + 9));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
|
||||
#define COMPRESS_INTERVAL 5 // seconds
|
||||
|
||||
static void med_show_warning(const char *s);
|
||||
static void med_show_warning(std::span<const char> s);
|
||||
|
||||
//char *undo_status[128];
|
||||
|
||||
|
@ -823,14 +823,13 @@ void close_editor_screen()
|
|||
|
||||
}
|
||||
|
||||
static void med_show_warning(const char *s)
|
||||
static void med_show_warning(std::span<const char> s)
|
||||
{
|
||||
grs_canvas &save_canv = *grd_curcanv;
|
||||
|
||||
//gr_pal_fade_in(grd_curscreen->pal); //in case palette is blacked
|
||||
|
||||
ui_messagebox(-2,-2,1,s,"OK");
|
||||
|
||||
ui_messagebox(-2, -2, 1, s.data(), "OK");
|
||||
gr_set_current_canvas(save_canv);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue