[Scummvm-cvs-logs] CVS: scummvm/queen display.cpp,1.60,1.61 display.h,1.43,1.44 graphics.cpp,1.98,1.99 graphics.h,1.68,1.69 input.cpp,1.25,1.26 musicdata.cpp,1.9,1.10 resource.cpp,1.43,1.44 resource.h,1.36,1.37 restables.cpp,1.5,1.6 sound.cpp,1.40,1.41 sound.h,1.21,1.22 talk.cpp,1.93,1.94 talk.h,1.31,1.32

Chris Apers chrilith at users.sourceforge.net
Wed Mar 17 06:21:06 CET 2004


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14819

Modified Files:
	display.cpp display.h graphics.cpp graphics.h input.cpp 
	musicdata.cpp resource.cpp resource.h restables.cpp sound.cpp 
	sound.h talk.cpp talk.h 
Log Message:
Added PalmOS support

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- display.cpp	28 Feb 2004 12:58:09 -0000	1.60
+++ display.cpp	17 Mar 2004 14:10:51 -0000	1.61
@@ -29,11 +29,18 @@
 
 namespace Queen {
 
+#ifdef __PALM_OS__
+static const uint8 *_fontRegular;
+static const uint8 *_fontHebrew;
+static const uint8 *_palJoeClothes;
+static const uint8 *_palJoeDress;
+#endif
+
 Display::Display(QueenEngine *vm, OSystem *system)
 	: _fullscreen(true), _horizontalScroll(0), _bdWidth(0), _bdHeight(0), 
 	_system(system), _vm(vm) {
 	_dynalum.prevColMask = 0xFF;
-	
+
 	if (vm->resource()->getLanguage() == HEBREW)
 		_font = _fontHebrew;
 	else
@@ -41,12 +48,18 @@
 
 	initFont();
 
+#ifndef __PALM_OS__
 	_screenBuf   = new uint8[SCREEN_W * SCREEN_H];
 	_panelBuf    = new uint8[PANEL_W * PANEL_H];
 	_backdropBuf = new uint8[BACKDROP_W * BACKDROP_H];
 	memset(_screenBuf,   0, SCREEN_W * SCREEN_H);
 	memset(_panelBuf,    0, PANEL_W * PANEL_H);
 	memset(_backdropBuf, 0, BACKDROP_W * BACKDROP_H);
+#else
+	_screenBuf   = (uint8 *)calloc(SCREEN_W * SCREEN_H, sizeof(uint8));
+	_panelBuf    = (uint8 *)calloc(PANEL_W * PANEL_H, sizeof(uint8));
+	_backdropBuf = (uint8 *)calloc(BACKDROP_W * BACKDROP_H, sizeof(uint8));
+#endif
 
 	memset(_mousePtr, 0, sizeof(_mousePtr));
 
@@ -68,9 +81,15 @@
 }
 
 Display::~Display() {
+#ifndef __PALM_OS__
 	delete[] _backdropBuf;
 	delete[] _panelBuf;
 	delete[] _screenBuf;
+#else
+	free(_backdropBuf);
+	free(_panelBuf);
+	free(_screenBuf);
+#endif
 
 	delete[] _pal.room;
 	delete[] _pal.screen;
@@ -991,7 +1010,7 @@
 			p += SCREEN_W;
 		}
 		_system->copy_rect(buf, SCREEN_W, x, y, 2, 2);
-		_system->updateScreen();
+			_system->updateScreen();
 		_vm->input()->delay(10);
 	}
 }
@@ -1020,11 +1039,12 @@
 			++i;
 			_system->copy_rect(buf, SCREEN_W, x, y, 2, 2);
 		}
-		_system->updateScreen();
+			_system->updateScreen();
 		_vm->input()->delay(10);
 	}
 }
 
+#ifndef __PALM_OS__
 const uint8 Display::_fontRegular[] = {
 	0xF8, 0xB0, 0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 
 	0xB0, 0x80, 0xB0, 0xB0, 0xC0, 0x00, 0xF8, 0xB0, 0xB0, 0x80, 
@@ -1458,6 +1478,25 @@
 	0x80, 0x45, 0x45, 0xA3, 0x5F, 0x5F, 0xC8, 0x7C, 0x7C, 
 	0xEC, 0x9C, 0x9C
 };
-
+#endif
 
 } // End of namespace Queen
+
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(Queen_Display)
+_GSETPTR(Queen::_fontRegular, GBVARS_DISPLAYFONTREGULAR_INDEX, uint8, GBVARS_QUEEN)
+_GSETPTR(Queen::_fontHebrew, GBVARS_DISPLAYFONTHEBREW_INDEX, uint8, GBVARS_QUEEN)
+_GSETPTR(Queen::_palJoeClothes, GBVARS_DISPLAYPALJOECLOTHES_INDEX, uint8, GBVARS_QUEEN)
+_GSETPTR(Queen::_palJoeDress, GBVARS_DISPLAYPALJOEDRESS_INDEX, uint8, GBVARS_QUEEN)
+_GEND
+
+_GRELEASE(Queen_Display)
+_GRELEASEPTR(GBVARS_DISPLAYFONTREGULAR_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_DISPLAYFONTHEBREW_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_DISPLAYPALJOECLOTHES_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_DISPLAYPALJOEDRESS_INDEX, GBVARS_QUEEN)
+_GEND
+
+#endif

Index: display.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/display.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- display.h	15 Mar 2004 01:45:22 -0000	1.43
+++ display.h	17 Mar 2004 14:10:51 -0000	1.44
@@ -175,10 +175,12 @@
 	QueenEngine *_vm;
 
 	const uint8 *_font;
+#ifndef __PALM_OS__
 	static const uint8 _fontRegular[];
 	static const uint8 _fontHebrew[];
 	static const uint8 _palJoeClothes[];
 	static const uint8 _palJoeDress[];
+#endif
 };
 
 

Index: graphics.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.cpp,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -d -r1.98 -r1.99
--- graphics.cpp	7 Mar 2004 10:46:01 -0000	1.98
+++ graphics.cpp	17 Mar 2004 14:10:51 -0000	1.99
@@ -32,6 +32,13 @@
 
 namespace Queen {
 
+#ifdef __PALM_OS__
+static const BamScene::BamDataBlock *_carData;
+static const BamScene::BamDataBlock *_fight1Data;
+static const BamScene::BamDataBlock *_fight2Data;
+static const BamScene::BamDataBlock *_fight3Data;
+#endif
+
 const Box BobSlot::_defaultBox(-1, -1, -1, -1);
 
 void BobSlot::curPos(int16 xx, int16 yy) {
@@ -1229,6 +1236,7 @@
 	_flag = READ_BE_UINT16(ptr); ptr += 2;
 }
 
+#ifndef __PALM_OS__
 const BamScene::BamDataBlock BamScene::_carData[] = {
 	{ { 310, 105, 1 }, { 314, 106, 17 }, { 366, 101,  1 },  0 },
 	{ { 303, 105, 1 }, { 307, 106, 17 }, { 214,   0, 10 },  0 },
@@ -1495,6 +1503,25 @@
 	{ {  75, 96,  1 }, { 187,  96, -23 }, { 183,  41, 47 },  0 },
 	{ {  75, 96,  1 }, { 187,  96, -23 }, { 183,  41, 47 }, 99 }
 };
+#endif
 
 } // End of namespace Queen
 
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(Queen_Graphics)
+_GSETPTR(Queen::_carData, GBVARS_GRAPHICSCARDATA_INDEX, Queen::BamScene::BamDataBlock, GBVARS_QUEEN)
+_GSETPTR(Queen::_fight1Data, GBVARS_GRAPHICSFIGHT1DATA_INDEX, Queen::BamScene::BamDataBlock, GBVARS_QUEEN)
+_GSETPTR(Queen::_fight2Data, GBVARS_GRAPHICSFIGHT2DATA_INDEX, Queen::BamScene::BamDataBlock, GBVARS_QUEEN)
+_GSETPTR(Queen::_fight3Data, GBVARS_GRAPHICSFIGHT3DATA_INDEX, Queen::BamScene::BamDataBlock, GBVARS_QUEEN)
+_GEND
+
+_GRELEASE(Queen_Graphics)
+_GRELEASEPTR(GBVARS_GRAPHICSCARDATA_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_GRAPHICSFIGHT1DATA_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_GRAPHICSFIGHT2DATA_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_GRAPHICSFIGHT3DATA_INDEX, GBVARS_QUEEN)
+_GEND
+
+#endif

Index: graphics.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- graphics.h	7 Mar 2004 10:46:01 -0000	1.68
+++ graphics.h	17 Mar 2004 14:10:51 -0000	1.69
@@ -227,12 +227,18 @@
 		int16 frame;
 	};
 
+#ifdef __PALM_OS__
+public:
+#endif
 	struct BamDataBlock {
 		BamDataObj obj1; // truck / Frank
 		BamDataObj obj2; // Rico  / robot
 		BamDataObj fx;
 		int16 sfx;
 	};
+#ifdef __PALM_OS__
+private:
+#endif
 
 	BobSlot *_obj1;
 	BobSlot *_obj2;
@@ -243,10 +249,12 @@
 
 	QueenEngine *_vm;
 
+#ifndef __PALM_OS__
 	static const BamDataBlock _carData[];
 	static const BamDataBlock _fight1Data[];
 	static const BamDataBlock _fight2Data[];
 	static const BamDataBlock _fight3Data[];
+#endif
 };
 
 } // End of namespace Queen

Index: input.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/input.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- input.cpp	17 Mar 2004 08:53:11 -0000	1.25
+++ input.cpp	17 Mar 2004 14:10:51 -0000	1.26
@@ -106,7 +106,7 @@
 
 				case OSystem::EVENT_LBUTTONDOWN:
 					_mouseButton |= MOUSE_LBUTTON;
-#ifdef _WIN32_WCE
+#if defined(_WIN32_WCE) || defined(__PALM_OS__)
 					_mouse_x = event.mouse.x;
 					_mouse_y = event.mouse.y;
 #endif
@@ -234,4 +234,3 @@
 
 
 } // End of namespace Queen
-

Index: musicdata.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/musicdata.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- musicdata.cpp	27 Feb 2004 02:08:44 -0000	1.9
+++ musicdata.cpp	17 Mar 2004 14:10:51 -0000	1.10
@@ -24,6 +24,16 @@
 
 namespace Queen {
 
+#ifdef __PALM_OS__
+
+const songData *Sound::_songDemo;
+const songData *Sound::_song;
+const tuneData *Sound::_tuneDemo;
+const tuneData *Sound::_tune;
+const char *Sound::_sfxName;
+const int16 *Sound::_jungleList;
+
+#else
 const songData Sound::_songDemo[] = {
 	/* 1 - Hotel Gangsters */
 	{ { 1, 0 }, 128, 128, 128, 1, 0 }, 
@@ -1477,6 +1487,7 @@
 	/* 207 - Frank Destroyed */
 	{ { 25, 1044, 0 }, { 0, 0 }, 1, 0 }, 
 
+
 	/* 208 - Jaspar Eats */
 	{ { 0, 0 }, { 134, 0 }, 2, 0 }, 
 
@@ -1904,5 +1915,29 @@
 };
 
 const int16 Sound::_jungleList[] = { 15, 16, 17, 18, 7, 8, 9, 10, 11, 12, 13, 14, 0 };
+#endif
 
 } // End of namespace Queen
+
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(Queen_Musicdata)
+_GSETPTR(Queen::Sound::_songDemo, GBVARS_MUSICDATASONGDEMO_INDEX, Queen::songData, GBVARS_QUEEN)
+_GSETPTR(Queen::Sound::_song, GBVARS_MUSICDATASONG_INDEX, Queen::songData, GBVARS_QUEEN)
+_GSETPTR(Queen::Sound::_tuneDemo, GBVARS_MUSICDATATUNEDEMO_INDEX, Queen::tuneData, GBVARS_QUEEN)
+_GSETPTR(Queen::Sound::_tune, GBVARS_MUSICDATATUNE_INDEX, Queen::tuneData, GBVARS_QUEEN)
+_GSETPTR(Queen::Sound::_sfxName, GBVARS_MUSICDATASFXNAME_INDEX, char, GBVARS_QUEEN)
+_GSETPTR(Queen::Sound::_jungleList, GBVARS_MUSICDATAJUNGLELIST_INDEX, int16, GBVARS_QUEEN)
+_GEND
+
+_GRELEASE(Queen_Musicdata)
+_GRELEASEPTR(GBVARS_MUSICDATASONGDEMO_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_MUSICDATASONG_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_MUSICDATATUNEDEMO_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_MUSICDATATUNE_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_MUSICDATASFXNAME_INDEX, GBVARS_QUEEN)
+_GRELEASEPTR(GBVARS_MUSICDATAJUNGLELIST_INDEX, GBVARS_QUEEN)
+_GEND
+
+#endif

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/resource.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- resource.cpp	11 Feb 2004 21:07:39 -0000	1.43
+++ resource.cpp	17 Mar 2004 14:10:51 -0000	1.44
@@ -24,6 +24,9 @@
 
 namespace Queen {
 
+#ifdef __PALM_OS__
+static ResourceEntry *_resourceTablePEM10;
+#endif
 
 const char *Resource::_tableFilename = "queen.tbl";
 
@@ -56,6 +59,7 @@
 Resource::~Resource() {
 	_resourceFile->close();
 	delete _resourceFile;
+
 	if(_resourceTable != _resourceTablePEM10) 
 		delete[] _resourceTable;
 }
@@ -81,6 +85,7 @@
 	
 
 	//Use simple binary search to locate file
+#ifndef __PALM_OS__
 	for (;;) {
 		uint32 cur = (low + high) / 2;
 		int32 diff = strcmp(entryName, _resourceTable[cur].filename);
@@ -96,6 +101,14 @@
 		else
 			high = cur;
 	}
+#else
+	// Does work for me (????) use this instead
+	uint32 cur = 0;
+	do {
+		if (!strcmp(entryName, _resourceTable[cur].filename))
+			return cur;
+	} while (cur++ <= high);
+#endif
 
 	debug(7, "Couldn't find file '%s'", entryName);
 	return -1;
@@ -113,8 +126,13 @@
 	ResourceEntry *re = resourceEntry(filename);
 	assert(re != NULL);
 	uint32 size = re->size - skipBytes;
+#ifndef __PALM_OS__
 	if (dstBuf == NULL)
 		dstBuf = new byte[size];
+#else
+	if (dstBuf == NULL)
+		dstBuf = (byte *)calloc(size, sizeof(byte));
+#endif
 	_resourceFile->seek(re->offset + skipBytes);
 	_resourceFile->read(dstBuf, size);
 	return dstBuf;
@@ -272,3 +290,15 @@
 
 } // End of namespace Queen
 
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(Queen_Restables)
+_GSETPTR(Queen::_resourceTablePEM10, GBVARS_RESOURCETABLEPM10_INDEX, Queen::ResourceEntry, GBVARS_QUEEN)
+_GEND
+
+_GRELEASE(Queen_Restables)
+_GRELEASEPTR(GBVARS_RESOURCETABLEPM10_INDEX, GBVARS_QUEEN)
+_GEND
+
+#endif

Index: resource.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/resource.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- resource.h	28 Feb 2004 07:34:26 -0000	1.36
+++ resource.h	17 Mar 2004 14:10:51 -0000	1.37
@@ -124,10 +124,11 @@
 
 	static const char *_tableFilename;
 	static const GameVersion _gameVersions[];
+#ifndef __PALM_OS__
 	static ResourceEntry _resourceTablePEM10[];
+#endif
 };
 
 } // End of namespace Queen
 
 #endif
-

Index: restables.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/restables.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- restables.cpp	6 Jan 2004 12:45:29 -0000	1.5
+++ restables.cpp	17 Mar 2004 14:10:51 -0000	1.6
@@ -23,7 +23,7 @@
 
 namespace Queen {
 
-
+#ifndef __PALM_OS__
 //English Floppy Version
 ResourceEntry Resource::_resourceTablePEM10[] = {
 	{ "1000SSSS.SB", 1, 0x00000000, 0x000027fe },
@@ -1103,5 +1103,5 @@
 	{ "ZOMBIE1.DOG", 1, 0x0159ecef, 0x00000f6a },
 	{ "ZOMBIE2.DOG", 1, 0x0159fc59, 0x00000c40 }
 };
-
+#endif
 } // End of namespace Queen

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/sound.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- sound.cpp	9 Mar 2004 01:48:12 -0000	1.40
+++ sound.cpp	17 Mar 2004 14:10:51 -0000	1.41
@@ -90,7 +90,11 @@
 
 	if (sfx != 0) {
 		char name[13];
+#ifndef __PALM_OS__
 		strcpy(name, _sfxName[sfx - 1]);
+#else
+		strncpy(name, _sfxName + 10 * (sfx - 1), 10);	// saved as 8char + /0/0
+#endif
 		strcat(name, ".SB");
 		waitFinished(isSpeech);
 		sfxPlay(name, isSpeech);

Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/sound.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- sound.h	27 Feb 2004 23:54:13 -0000	1.21
+++ sound.h	17 Mar 2004 14:10:51 -0000	1.22
@@ -78,12 +78,21 @@
 	void saveState(byte *&ptr);
 	void loadState(uint32 ver, byte *&ptr);
 
+#ifndef __PALM_OS__
 	static const songData _songDemo[];
 	static const songData _song[];
 	static const tuneData _tuneDemo[];
 	static const tuneData _tune[];
 	static const char *_sfxName[];
 	static const int16 _jungleList[];
+#else
+	static const songData *_songDemo;
+	static const songData *_song;
+	static const tuneData *_tuneDemo;
+	static const tuneData *_tune;
+	static const char *_sfxName;
+	static const int16 *_jungleList;
+#endif
 
 protected:
 	void waitFinished(bool isSpeech);

Index: talk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- talk.cpp	7 Mar 2004 10:46:02 -0000	1.93
+++ talk.cpp	17 Mar 2004 14:10:51 -0000	1.94
@@ -38,6 +38,10 @@
 
 namespace Queen {
 
+#ifdef __PALM_OS__
+static const Talk::SpeechParameters *_speechParameters;
+#endif
+
 void Talk::talk(
 		const char *filename, 
 		int personInRoom,
@@ -892,7 +896,13 @@
 	segment[length] = '\0';
 	
 	char voiceFileName[MAX_STRING_SIZE];
+#ifndef __PALM_OS__
 	snprintf(voiceFileName, sizeof(voiceFileName), "%s%1x", voiceFilePrefix, index + 1);
+#else
+	// %(X)x is not supported on PalmOS
+	sprintf(voiceFileName, "%s%1x", voiceFilePrefix, index + 1);
+	strncpy(voiceFileName + strlen(voiceFileName) - 8, voiceFileName + strlen(voiceFileName) - 1, 2); 
+#endif
 
 	// debug(6, "Sentence segment '%*s' is said by person '%s' and voice file '%s' is played",
 	//		length, segment, person->name, voiceFileName);
@@ -1415,6 +1425,7 @@
 	return selectedSentence;
 }
 	
+#ifndef __PALM_OS__
 const Talk::SpeechParameters Talk::_speechParameters[] = {
 	{ "JOE",0,1,1,10,2,3,"",0},
 	{ "JOE",0,3,3,28,2,3,"",0},
@@ -1875,6 +1886,19 @@
 
 	{ "*",0,0,0,0,0,0,"",0}
 };
-
+#endif
 
 } // End of namespace Queen
+
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(Queen_Talk)
+_GSETPTR(Queen::_speechParameters, GBVARS_SPEECHPARAMETERS_INDEX, Queen::Talk::SpeechParameters, GBVARS_QUEEN)
+_GEND
+
+_GRELEASE(Queen_Talk)
+_GRELEASEPTR(GBVARS_SPEECHPARAMETERS_INDEX, GBVARS_QUEEN)
+_GEND
+
+#endif

Index: talk.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- talk.h	7 Mar 2004 10:46:02 -0000	1.31
+++ talk.h	17 Mar 2004 14:10:51 -0000	1.32
@@ -84,6 +84,7 @@
 		int16 gameStateValue;
 	};
 
+#ifndef __PALM_OS__
 	struct SpeechParameters {
 		const char *name;
 		signed char state,faceDirection;
@@ -91,6 +92,17 @@
 		const char *animation;
 		signed char ff;
 	};
+#else
+public:
+	struct SpeechParameters {
+		const char name[11];
+		signed char state,faceDirection;
+		signed char body,bf,rf,af;
+		const char animation[80];
+		signed char ff;
+	};
+private:
+#endif
 
 	QueenEngine *_vm;
 
@@ -145,7 +157,9 @@
 	char _talkString[5][MAX_STRING_SIZE];
 	char _joeVoiceFilePrefix[5][MAX_STRING_SIZE];
 
+#ifndef __PALM_OS__
 	static const SpeechParameters _speechParameters[];
+#endif
 
 	Talk(QueenEngine *vm);
 	~Talk();





More information about the Scummvm-git-logs mailing list