openbsd-ports/net/amsn/patches/patch-utils_TkCximage_src_TkCximage_cpp
pea c7c117ae3f Fixes amsn startup.
Patch from Azwaw Ousadou <bsdmaniak at gmail.com>, thanks.

ok ajacoutot@
2009-02-11 20:22:45 +00:00

115 lines
3.6 KiB
Plaintext

$OpenBSD: patch-utils_TkCximage_src_TkCximage_cpp,v 1.1 2009/02/11 20:22:45 pea Exp $
--- utils/TkCximage/src/TkCximage.cpp.orig Fri Jan 4 17:08:26 2008
+++ utils/TkCximage/src/TkCximage.cpp Thu Jan 22 11:17:16 2009
@@ -13,6 +13,64 @@
char currenttime[30];
FILE * logfile;
+#define AVAILABLE_FORMATS 6
+ Tk_PhotoImageFormat cximageFormats[] = {
+ {
+ "cximage",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxgif",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxpng",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxjpg",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxtga",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxbmp",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ }
+};
+
int RGB2BGR(Tk_PhotoImageBlock *data, BYTE * pixelPtr) {
int i;
int size = data->height * data->width * data->pixelSize;
@@ -254,10 +312,6 @@ int Tkcximage_Init (Tcl_Interp *interp ) {
INITLOGS(); //
LOG("---------------------------------"); //
-
- int AvailableFromats = 6;
- const char *KnownFormats[] = {"cximage", "cxgif", "cxpng", "cxjpg", "cxtga", "cxbmp"};
-
//Check Tcl version is 8.3 or higher
if (Tcl_InitStubs(interp, TCL_VERSION, 1) == NULL) {
return TCL_ERROR;
@@ -271,16 +325,6 @@ int Tkcximage_Init (Tcl_Interp *interp ) {
}
LOG("Tk stub initialized"); //
-
- Tk_PhotoImageFormat cximageFormats = {
- NULL,
- (Tk_ImageFileMatchProc *) ChanMatch,
- (Tk_ImageStringMatchProc *) ObjMatch,
- (Tk_ImageFileReadProc *) ChanRead,
- (Tk_ImageStringReadProc *) ObjRead,
- (Tk_ImageFileWriteProc *) ChanWrite,
- (Tk_ImageStringWriteProc *) StringWrite
- };
LOG("Creating commands"); //
@@ -310,14 +354,9 @@ int Tkcximage_Init (Tcl_Interp *interp ) {
#endif
LOG("Adding format : "); //
- for (i = 0; i < AvailableFromats; i++) {
- delete cximageFormats.name;
- cximageFormats.name = new char[strlen(KnownFormats[i]) + 1];
- strcpy(cximageFormats.name, KnownFormats[i]);
- Tk_CreatePhotoImageFormat(&cximageFormats);
- APPENDLOG(cximageFormats.name); //
- delete cximageFormats.name;
- cximageFormats.name = NULL;
+ for (i = 0; i < AVAILABLE_FORMATS; i++) {
+ Tk_CreatePhotoImageFormat(&cximageFormats[i]);
+ APPENDLOG(cximageFormats[i].name);
}
// end of Initialisation