win: winmain, manifest, icon, and some improvements

This commit is contained in:
Ondrej Novak 2025-02-08 12:42:55 +01:00
parent f70b29abab
commit 7bea57e587
23 changed files with 203 additions and 140 deletions

View file

@ -11,14 +11,15 @@ SET(files basicobj.c
mgifmem.c
mgifplaya.c
pcx.c
strlite.c
wav_mem.c
strlists.c
cztable.c
music.cpp
string_table.cpp
swaper.c )
string_table.cpp )
add_library(skeldal_libs ${files})
add_executable(file_to_base64 file_to_base64.cpp)
set_property(TARGET skeldal_libs PROPERTY CXX_STANDARD 20)
set_property(TARGET file_to_base64 PROPERTY CXX_STANDARD 20)

View file

@ -8,7 +8,7 @@ public:
constexpr base64_t(const char *charset, char terminator):_terminator(terminator) {
for (int i = 0; i < 64; ++i) _charset[i] = charset[i];
for (char &c: _charmap) c=-1;
for (char &c: _charmap) c=static_cast<char>(-1);
for (unsigned int i = 0; i < 64;++i) {
int c = _charset[i]-32;
_charmap[c] = static_cast<char>(i);

View file

@ -352,7 +352,7 @@ inline bool CSVReader<Source>::readRow(const CSVFieldIndexMapping<T> &mapping,T
} else {
static_assert(std::is_same_v<TVal, bool>);
CSVState st = read(buff);
std::transform(buff.begin(), buff.end(), buff.begin(), [](char c) { return std::tolower(c); });
std::transform(buff.begin(), buff.end(), buff.begin(), [](char c) -> char { return std::tolower(c); });
if (buff == "y" || buff == "t" || buff =="true" || buff == "yes" || buff == "on") {
target.*ptr = true;
} else if (buff == "n" || buff == "f" || buff =="false" || buff == "no" || buff == "off") {

View file

@ -55,7 +55,7 @@ static char prepare=1;
static void PrepareTabs()
{
unsigned int i;
for (i=0;i<256;i++) {xlatkm2win[i]=i;xlatwin2km[i]=i;}
for (i=0;i<256;i++) {xlatkm2win[i]=(char)i;xlatwin2km[i]=(char)i;}
for (i=0;i<sizeof(czxlattab)/sizeof(czxlattab[0]);i++)
{
xlatkm2win[czxlattab[i].kamenik]=czxlattab[i].windows;
@ -68,14 +68,14 @@ static void PrepareTabs()
void windows2kamenik(const char *src, int size, char *trg)
{
if (prepare) PrepareTabs();
if (size<0) size=strlen(src)+1;
if (size<0) size=(int)strlen(src)+1;
for (int i=0;i<size;i++) *trg++=xlatwin2km[(unsigned char)*src++];
}
void kamenik2windows(const char *src, int size, char *trg)
{
if (prepare) PrepareTabs();
if (size<0) size=strlen(src)+1;
if (size<0) size=(int)strlen(src)+1;
for (int i=0;i<size;i++) *trg++=xlatkm2win[(unsigned char)*src++];
}

20
libs/file_to_base64.cpp Normal file
View file

@ -0,0 +1,20 @@
#include "base64.h"
#include <iostream>
#include <fstream>
int main(int argc, char **argv) {
if (argc != 2) {
std::cerr << "Requires name of the file" << std::endl;
return 1;
}
std::ifstream input(argv[1], std::ios::in|std::ios::binary);
if (!input) {
std::cerr << "Failed to open:" << argv[1] << std::endl;
}
auto in_iter = std::istream_iterator<char>(input);
auto in_end = std::istream_iterator<char>();
auto out_iter = std::ostream_iterator<char>(std::cout);
base64.encode(in_iter, in_end, out_iter);
return 0;
}

View file

@ -362,7 +362,7 @@ THANDLE_DATA *def_handle(int handle,const char *filename,ABLOCK_DECODEPROC decom
h->seekpos=i;
return h;
}
memcpy(h->src_file,filename,12);
strncpy(h->src_file,filename,sizeof(h->src_file));
h->seekpos=0;
strupper(h->src_file);
h->loadproc=decompress;
@ -669,7 +669,7 @@ void display_status()
if (h->src_file[0]) strncpy(nname,h->src_file,12);else strcpy(nname,"<local>");
printf("%04Xh ... %12s %s %s %08lXh %6d %10d %6d \n",i*BK_MINOR_HANDLES+j,
nname,names[h->status-1],
copys,(unsigned long)h->blockdata,h->size,h->counter,h->lockcount);
copys,(unsigned long)(uintptr_t)h->blockdata,h->size,h->counter,h->lockcount);
ln++;
total_data+=h->size;
if(h->status==BK_PRESENT)total_mem+=h->size;

View file

@ -42,7 +42,7 @@ typedef struct meminfo {
typedef struct thandle_data
{
char src_file[12]; //12
char src_file[16]; //12
int32_t seekpos; //16
const void *blockdata; //20
char flags; //21

View file

@ -49,7 +49,7 @@ void string_list_init(OBJREC *o,va_list params)
}
void string_list_change()
void string_list_change(void)
{
OBJREC *o1,*o2;
STRING_LIST_DATA *p;
@ -93,7 +93,7 @@ void string_list_draw(int x1,int y1,int x2,int y2,OBJREC *o)
STRING_LIST_DATA *p;
int y;
char savech[]=" ";
int znh,i,j,max;
int znh,i,j,max = 1;
TSTR_LIST ls;
int savcolor=curcolor;