update to 4.10.2.2614
source renamed from Squeak to squeak-vm [release 4.10.2.2614-1mamba;Fri Dec 06 2024]
This commit is contained in:
parent
346ccf8789
commit
c6330010d1
@ -1,2 +1,4 @@
|
||||
# squeak-vm
|
||||
|
||||
Squeak is a full-featured implementation of the Smalltalk programming language and environment based on (and largely compatible with) the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D graphics, sound, video, MIDI, animation and other multimedia capabilities -- and one of the most impressive development environments ever created. It also includes a customisable framework for creating dynamic HTTP servers and interactively extensible Web sites. The entire Squeak system is open source software, distributed freely with a liberal license.
|
||||
|
||||
|
157
squeak-vm-4.10.2.2614-alsa-fixes.patch
Normal file
157
squeak-vm-4.10.2.2614-alsa-fixes.patch
Normal file
@ -0,0 +1,157 @@
|
||||
--- trunk/platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c 2013/03/26 01:49:32 2711
|
||||
+++ trunk/platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c 2013/04/04 05:05:14 2712
|
||||
@@ -2,7 +2,7 @@
|
||||
*
|
||||
* Author: Ian.Piumarta@squeakland.org
|
||||
*
|
||||
- * Last edited: 2010-04-01 13:48:37 by piumarta on emilia-2.local
|
||||
+ * Last edited: 2013-04-04 13:59:35 by piumarta on linux32
|
||||
*
|
||||
* Copyright (C) 2006 by Ian Piumarta
|
||||
* All rights reserved.
|
||||
@@ -65,8 +65,10 @@
|
||||
/* output */
|
||||
|
||||
|
||||
+#if 0
|
||||
#define SQ_SND_PLAY_START_THRESHOLD 7/8
|
||||
#define SQ_SND_PLAY_AVAIL_MIN 4/8
|
||||
+#endif
|
||||
|
||||
static snd_pcm_t *output_handle= 0;
|
||||
static snd_async_handler_t *output_handler= 0;
|
||||
@@ -99,8 +101,8 @@
|
||||
int err;
|
||||
snd_pcm_hw_params_t *hwparams;
|
||||
snd_pcm_sw_params_t *swparams;
|
||||
+ snd_pcm_uframes_t period_size;
|
||||
unsigned int uval;
|
||||
- int dir;
|
||||
|
||||
if (output_handle) sound_Stop();
|
||||
|
||||
@@ -114,18 +116,25 @@
|
||||
snd_pcm_hw_params_set_format(output_handle, hwparams, SND_PCM_FORMAT_S16_LE);
|
||||
snd_pcm_hw_params_set_channels(output_handle, hwparams, output_channels);
|
||||
uval= samplesPerSec;
|
||||
- snd_pcm_hw_params_set_rate_near(output_handle, hwparams, &uval, &dir);
|
||||
+ snd_pcm_hw_params_set_rate_near(output_handle, hwparams, &uval, 0);
|
||||
output_buffer_period_size= frameCount;
|
||||
- snd_pcm_hw_params_set_period_size_near(output_handle, hwparams, &output_buffer_period_size, &dir);
|
||||
+ snd_pcm_hw_params_set_period_size_near(output_handle, hwparams, &output_buffer_period_size, 0);
|
||||
snd(pcm_hw_params(output_handle, hwparams), "sound_Start: snd_pcm_hw_params");
|
||||
|
||||
snd_pcm_sw_params_alloca(&swparams);
|
||||
snd(pcm_sw_params_current(output_handle, swparams), "sound_Start: snd_pcm_sw_params_current");
|
||||
+#if 0
|
||||
snd(pcm_sw_params_set_start_threshold(output_handle, swparams, frameCount * SQ_SND_PLAY_START_THRESHOLD), "sound_Start: snd_pcm_sw_params_set_start_threshold");
|
||||
snd(pcm_sw_params_set_avail_min(output_handle, swparams, frameCount * SQ_SND_PLAY_AVAIL_MIN), "sound_Start: snd_pcm_sw_parama_set_avail_min");
|
||||
+#endif
|
||||
snd(pcm_sw_params_set_xfer_align(output_handle, swparams, 1), "sound_Start: snd_pcm_sw_params_set_xfer_align");
|
||||
snd(pcm_sw_params(output_handle, swparams), "sound_Start: snd_pcm_sw_params");
|
||||
+
|
||||
+ snd(pcm_hw_params_get_period_size(hwparams, &period_size, 0), "sound_Start: pcm_hw_params_get_period_size");
|
||||
snd(pcm_hw_params_get_buffer_size(hwparams, &output_buffer_size), "sound_Start: pcm_hw_params_get_buffer_size");
|
||||
+ snd(pcm_sw_params_set_avail_min(output_handle, swparams, period_size), "sound_Start: snd_pcm_sw_parama_set_avail_min");
|
||||
+ snd(pcm_sw_params_set_start_threshold(output_handle, swparams, output_buffer_size), "sound_Start: snd_pcm_sw_params_set_start_threshold");
|
||||
+
|
||||
output_buffer_frames_available= 1;
|
||||
max_delay_frames= output_buffer_period_size * 2; /* set initial delay frames */
|
||||
|
||||
@@ -200,6 +209,7 @@
|
||||
|
||||
static sqInt sound_PlaySamplesFromAtLength(sqInt frameCount, void *srcBufPtr, sqInt startIndex)
|
||||
{
|
||||
+#if 0
|
||||
if (output_handle)
|
||||
{
|
||||
void *samples= srcBufPtr + startIndex * output_channels * 2;
|
||||
@@ -222,6 +232,41 @@
|
||||
return count;
|
||||
}
|
||||
success(false);
|
||||
+#else
|
||||
+ if (!output_handle)
|
||||
+ success(false);
|
||||
+ else {
|
||||
+ void *samples= srcBufPtr + startIndex * output_channels * 2;
|
||||
+ int count= snd_pcm_writei(output_handle, samples, frameCount);
|
||||
+
|
||||
+ if (count < frameCount / 2)
|
||||
+ output_buffer_frames_available= 0;
|
||||
+
|
||||
+ if (count >= 0)
|
||||
+ return count;
|
||||
+
|
||||
+ switch (count) {
|
||||
+ case -EPIPE: { /* under-run */
|
||||
+ int err= snd_pcm_prepare(output_handle);
|
||||
+ if (err < 0) fprintf(stderr, "sound_PlaySamples: can't recover from underrun, snd_pcm_prepare failed: %s", snd_strerror(err));
|
||||
+ break;
|
||||
+ }
|
||||
+ case -ESTRPIPE: { /* stream suspended */
|
||||
+ int err;
|
||||
+ int timeout= 5; /* half a second */
|
||||
+ while (-EAGAIN == (err= snd_pcm_resume(output_handle)) && timeout--)
|
||||
+ usleep(100000); /* wait 1/10 of a second for suspend flag to be released */
|
||||
+ if (-EAGAIN == err) break; /* return to interpreter and try to recover next time around */
|
||||
+ if (err < 0) err= snd_pcm_prepare(output_handle);
|
||||
+ if (err < 0) fprintf(stderr, "sound_PlaySamples: can't recover from suspend, snd_pcm_prepare failed: %s", snd_strerror(err));
|
||||
+ break;
|
||||
+ }
|
||||
+ default:
|
||||
+ fprintf(stderr, "snd_pcm_writei returned %i\n", count);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -231,8 +276,10 @@
|
||||
/* input */
|
||||
|
||||
|
||||
+#if 0
|
||||
#define SQ_SND_REC_START_THRESHOLD 4/8
|
||||
#define SQ_SND_REC_AVAIL_MIN 4/8
|
||||
+#endif
|
||||
|
||||
static snd_pcm_t *input_handle= 0;
|
||||
static snd_async_handler_t *input_handler= 0;
|
||||
@@ -262,7 +309,8 @@
|
||||
snd_pcm_hw_params_t *hwparams;
|
||||
snd_pcm_sw_params_t *swparams;
|
||||
snd_pcm_uframes_t frames;
|
||||
- int dir;
|
||||
+ snd_pcm_uframes_t period_size;
|
||||
+ snd_pcm_uframes_t buffer_size;
|
||||
|
||||
if (input_handle) sound_StopRecording();
|
||||
|
||||
@@ -276,15 +324,23 @@
|
||||
snd_pcm_hw_params_set_format(input_handle, hwparams, SND_PCM_FORMAT_S16_LE);
|
||||
snd_pcm_hw_params_set_channels(input_handle, hwparams, input_channels);
|
||||
input_rate= desiredSamplesPerSec;
|
||||
- snd_pcm_hw_params_set_rate_near(input_handle, hwparams, &input_rate, &dir);
|
||||
+ snd_pcm_hw_params_set_rate_near(input_handle, hwparams, &input_rate, 0);
|
||||
frames= 4096;
|
||||
- snd_pcm_hw_params_set_period_size_near(input_handle, hwparams, &frames, &dir);
|
||||
+ snd_pcm_hw_params_set_period_size_near(input_handle, hwparams, &frames, 0);
|
||||
snd(pcm_hw_params(input_handle, hwparams), "sound_StartRecording: snd_pcm_hw_params");
|
||||
|
||||
+ snd(pcm_hw_params_get_period_size(hwparams, &period_size, 0), "sound_Start: pcm_hw_params_get_period_size");
|
||||
+ snd(pcm_hw_params_get_buffer_size(hwparams, &buffer_size), "sound_Start: pcm_hw_params_get_buffer_size");
|
||||
+
|
||||
snd_pcm_sw_params_alloca(&swparams);
|
||||
snd(pcm_sw_params_current(input_handle, swparams), "sound_StartRecording: snd_pcm_sw_params_current");
|
||||
+#if 0
|
||||
snd(pcm_sw_params_set_start_threshold(input_handle, swparams, frames * SQ_SND_REC_START_THRESHOLD), "sound_StartRecording: snd_pcm_sw_params_set_start_threshold");
|
||||
snd(pcm_sw_params_set_avail_min(input_handle, swparams, frames * SQ_SND_REC_AVAIL_MIN), "sound_StartRecording: snd_pcm_sw_parama_set_avail_min");
|
||||
+#else
|
||||
+ snd(pcm_sw_params_set_start_threshold(input_handle, swparams, buffer_size), "sound_StartRecording: snd_pcm_sw_params_set_start_threshold");
|
||||
+ snd(pcm_sw_params_set_avail_min(input_handle, swparams, period_size), "sound_StartRecording: snd_pcm_sw_parama_set_avail_min");
|
||||
+#endif
|
||||
snd(pcm_sw_params_set_xfer_align(input_handle, swparams, 1), "sound_StartRecording: snd_pcm_sw_params_set_xfer_align");
|
||||
snd(pcm_sw_params(input_handle, swparams), "sound_StartRecording: snd_pcm_sw_params");
|
||||
|
12
squeak-vm-4.10.2.2614-dprintf.patch
Normal file
12
squeak-vm-4.10.2.2614-dprintf.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up Squeak-4.10.2.2614-src-no-mp3/unix/vm-display-fbdev/sqUnixFBDevFramebuffer.c.orig Squeak-4.10.2.2614-src-no-mp3/unix/vm-display-fbdev/sqUnixFBDevFramebuffer.c
|
||||
--- Squeak-4.10.2.2614-src-no-mp3/unix/vm-display-fbdev/sqUnixFBDevFramebuffer.c.orig 2009-08-19 13:36:33.000000000 +0200
|
||||
+++ Squeak-4.10.2.2614-src-no-mp3/unix/vm-display-fbdev/sqUnixFBDevFramebuffer.c 2012-11-22 16:01:49.753763504 +0100
|
||||
@@ -508,7 +508,7 @@ static void fb_initVisual(_self)
|
||||
self->size= fb_height(self) * self->fix.line_length;
|
||||
self->pitch= self->fix.line_length / self->var.bits_per_pixel * 8;
|
||||
|
||||
- debugf("%s: %dx%dx%d+%x+%x (%dx%d) %s, rgb %d+%d %d+%d %d+%d pitch %d(%d)\n", self->fbName,
|
||||
+ debugf("%s: %dx%dx%d+%x+%x (%dx%d) %s, rgb %d+%d %d+%d %d+%d pitch %d(%ld)\n", self->fbName,
|
||||
self->var.xres, self->var.yres, self->var.bits_per_pixel, self->var.xoffset, self->var.yoffset,
|
||||
self->var.xres_virtual, self->var.yres_virtual,
|
||||
visualName(self),
|
33
squeak-vm-4.10.2.2614-fix-cmake.patch
Normal file
33
squeak-vm-4.10.2.2614-fix-cmake.patch
Normal file
@ -0,0 +1,33 @@
|
||||
diff -up Squeak-4.10.2.2614-src-no-mp3/unix/CMakeLists.txt.orig Squeak-4.10.2.2614-src-no-mp3/unix/CMakeLists.txt
|
||||
--- Squeak-4.10.2.2614-src-no-mp3/unix/CMakeLists.txt.orig 2012-09-17 03:03:14.000000000 +0200
|
||||
+++ Squeak-4.10.2.2614-src-no-mp3/unix/CMakeLists.txt 2012-11-22 18:21:16.413017772 +0100
|
||||
@@ -23,10 +23,14 @@ SET (prefix ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
SET (version ${VM_VERSION})
|
||||
|
||||
+if(NOT DEFINED LIB_SUFFIX AND CMAKE_SYSTEM_PROCESSOR MATCHES "64$")
|
||||
+ set(LIB_SUFFIX 64)
|
||||
+endif()
|
||||
+
|
||||
SET (bindir bin)
|
||||
-SET (imgdir lib/squeak)
|
||||
-SET (plgdir lib/squeak/${version}${versionsuffix})
|
||||
-SET (mandir man/man1)
|
||||
+SET (imgdir lib${LIB_SUFFIX}/squeak)
|
||||
+SET (plgdir lib${LIB_SUFFIX}/squeak/${version}${versionsuffix})
|
||||
+SET (mandir share/man/man1)
|
||||
SET (docdir share/doc/squeak-${version})
|
||||
|
||||
GET_CMAKE_PROPERTY (vars VARIABLES)
|
||||
@@ -135,9 +139,9 @@ SET (ioUtcWithOffset sqUnixUtcWithOffset
|
||||
CONFIG_DEFINE (ioUtcWithOffset)
|
||||
|
||||
SET (CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
-SET (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
+SET (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
SET (CMAKE_INSTALL_RPATH "")
|
||||
-SET (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
+SET (CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
|
||||
|
||||
INCLUDE (${unix}/vm/config.cmake)
|
||||
|
13
squeak-vm-4.10.2.2614-format-security.patch
Normal file
13
squeak-vm-4.10.2.2614-format-security.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/Cross/plugins/Squeak3D/b3dMain.c b/Cross/plugins/Squeak3D/b3dMain.c
|
||||
index 2716d4a..b920906 100644
|
||||
--- a/Cross/plugins/Squeak3D/b3dMain.c
|
||||
+++ b/Cross/plugins/Squeak3D/b3dMain.c
|
||||
@@ -63,7 +63,7 @@ int maxEdges = 0;
|
||||
/*************************************************************/
|
||||
|
||||
void b3dAbort(char *msg){
|
||||
- printf(msg);
|
||||
+ printf("%s", msg);
|
||||
exit(-1);
|
||||
}
|
||||
|
673
squeak-vm-4.10.2.2614-gcc-14.patch
Normal file
673
squeak-vm-4.10.2.2614-gcc-14.patch
Normal file
@ -0,0 +1,673 @@
|
||||
diff --git a/Cross/vm/sqVirtualMachine.c b/Cross/vm/sqVirtualMachine.c
|
||||
index 59b6a6e..d367251 100644
|
||||
--- a/Cross/vm/sqVirtualMachine.c
|
||||
+++ b/Cross/vm/sqVirtualMachine.c
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <setjmp.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#include "sqVirtualMachine.h"
|
||||
|
||||
diff --git a/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c b/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c
|
||||
index 788287f..b916c86 100644
|
||||
--- a/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c
|
||||
+++ b/unix/plugins/AsynchFilePlugin/sqUnixAsynchFile.c
|
||||
@@ -142,7 +142,7 @@ INLINE static FilePtr newFileRec(int fd, int sema)
|
||||
return fp;
|
||||
}
|
||||
|
||||
-INLINE static allocateBuffer(struct FileBuf *buf, int size)
|
||||
+INLINE static int allocateBuffer(struct FileBuf *buf, int size)
|
||||
{
|
||||
if (buf->capacity >= size)
|
||||
return 1;
|
||||
diff --git a/unix/plugins/CameraPlugin/sqCamera-linux.c b/unix/plugins/CameraPlugin/sqCamera-linux.c
|
||||
index 218322f..c5a6815 100644
|
||||
--- a/unix/plugins/CameraPlugin/sqCamera-linux.c
|
||||
+++ b/unix/plugins/CameraPlugin/sqCamera-linux.c
|
||||
@@ -181,7 +181,7 @@ libCon(void)
|
||||
vd_dup = dup;
|
||||
vd_ioctl = ioctl;
|
||||
vd_read = read;
|
||||
- vd_mmap = mmap;
|
||||
+ vd_mmap = (void * (*)(void *, size_t, int, int, int, int64_t))mmap;
|
||||
vd_munmap = munmap;
|
||||
|
||||
/* Use libv4l2: use if available... */
|
||||
diff --git a/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c b/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c
|
||||
index c963f53..4788120 100644
|
||||
--- a/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c
|
||||
+++ b/unix/plugins/HostWindowPlugin/sqUnixHostWindowPlugin.c
|
||||
@@ -78,7 +78,7 @@ sqInt ioShowDisplayOnWindow(
|
||||
return 0;
|
||||
else
|
||||
return dpy->hostWindowShowDisplay(
|
||||
- dispBitsIndex, width, height, depth, affectedL, affectedR, affectedT, affectedB, windowIndex);
|
||||
+ (unsigned int *)dispBitsIndex, width, height, depth, affectedL, affectedR, affectedT, affectedB, windowIndex);
|
||||
}
|
||||
|
||||
|
||||
diff --git a/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc b/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc
|
||||
index cc4bbad..1d451da 100644
|
||||
--- a/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc
|
||||
+++ b/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc
|
||||
@@ -333,7 +333,7 @@ int sqMIDIParameter(int whichParameter, int modify, int newValue)
|
||||
{
|
||||
snd_seq_queue_tempo_t *tempo= 0;
|
||||
snd_seq_queue_tempo_alloca(&tempo);
|
||||
- snd_seq_get_queue_tempo(seq, queue, &tempo);
|
||||
+ snd_seq_get_queue_tempo(seq, queue, (snd_seq_queue_tempo_t *)&tempo);
|
||||
return snd_seq_queue_tempo_get_tempo(tempo) / 1000.0;
|
||||
}
|
||||
break;
|
||||
diff --git a/unix/plugins/SerialPlugin/sqUnixSerial.c b/unix/plugins/SerialPlugin/sqUnixSerial.c
|
||||
index 2e61099..f3bc6b1 100644
|
||||
--- a/unix/plugins/SerialPlugin/sqUnixSerial.c
|
||||
+++ b/unix/plugins/SerialPlugin/sqUnixSerial.c
|
||||
@@ -157,21 +157,6 @@ void make_portname_from_portnum(char *serialPortName, const int portNum)
|
||||
/*** Public Functions ***/
|
||||
|
||||
/* return value ignored */
|
||||
-int serialPortClose(int portNum)
|
||||
-{
|
||||
- char serialPortName[PORT_NAME_SIZE];
|
||||
-
|
||||
- if (portNum < 0 || portNum >= MAX_SERIAL_PORTS)
|
||||
- {
|
||||
- success(false);
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- make_portname_from_portnum(serialPortName, portNum);
|
||||
-
|
||||
- return serialPortCloseByName(serialPortName);
|
||||
-}
|
||||
-
|
||||
int serialPortCloseByName(const char *portName)
|
||||
{
|
||||
serial_port_type * sp= find_stored_serialport(portName);
|
||||
@@ -205,16 +190,19 @@ int serialPortCloseByName(const char *portName)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-/* Open the given serial port using the given port number.
|
||||
- * "/dev/ttySxx" port name are assumed. */
|
||||
-int serialPortOpen(int portNum, int dataRate, int stopBitsType, int parityType, int dataBits,
|
||||
- int inFlowCtrl, int outFlowCtrl, int xOnChar, int xOffChar)
|
||||
-{
|
||||
+int serialPortClose(int portNum)
|
||||
+{
|
||||
char serialPortName[PORT_NAME_SIZE];
|
||||
+
|
||||
+ if (portNum < 0 || portNum >= MAX_SERIAL_PORTS)
|
||||
+ {
|
||||
+ success(false);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
make_portname_from_portnum(serialPortName, portNum);
|
||||
-
|
||||
- return serialPortOpenByName(serialPortName, dataRate, stopBitsType, parityType, dataBits,
|
||||
- inFlowCtrl, outFlowCtrl, xOnChar, xOffChar);
|
||||
+
|
||||
+ return serialPortCloseByName(serialPortName);
|
||||
}
|
||||
|
||||
/* If anything goes wrong during opening make sure the file descriptor
|
||||
@@ -356,6 +344,18 @@ int serialPortOpenByName(char *portName, int dataRate, int stopBitsType, int par
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/* Open the given serial port using the given port number.
|
||||
+ * "/dev/ttySxx" port name are assumed. */
|
||||
+int serialPortOpen(int portNum, int dataRate, int stopBitsType, int parityType, int dataBits,
|
||||
+ int inFlowCtrl, int outFlowCtrl, int xOnChar, int xOffChar)
|
||||
+{
|
||||
+ char serialPortName[PORT_NAME_SIZE];
|
||||
+ make_portname_from_portnum(serialPortName, portNum);
|
||||
+
|
||||
+ return serialPortOpenByName(serialPortName, dataRate, stopBitsType, parityType, dataBits,
|
||||
+ inFlowCtrl, outFlowCtrl, xOnChar, xOffChar);
|
||||
+}
|
||||
+
|
||||
/* Read up to count bytes from the given serial port into the given
|
||||
byte array. Read only up to the number of bytes in the port's
|
||||
input buffer; if fewer bytes than count have been received, do not
|
||||
diff --git a/unix/plugins/WeDoPlugin/WeDoLinux.c b/unix/plugins/WeDoPlugin/WeDoLinux.c
|
||||
index 973c2d3..1dc4de1 100644
|
||||
--- a/unix/plugins/WeDoPlugin/WeDoLinux.c
|
||||
+++ b/unix/plugins/WeDoPlugin/WeDoLinux.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <linux/hiddev.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
|
||||
#define true 1
|
||||
diff --git a/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c b/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
|
||||
index 4c71420..7f54955 100644
|
||||
--- a/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
|
||||
+++ b/unix/src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
|
||||
@@ -75,6 +75,8 @@ static sqInt halt(void) {
|
||||
;
|
||||
}
|
||||
|
||||
+extern void sqPasteboardPutItemFlavordatalengthformatTypeformatLength(sqInt, char*, int, char*, int);
|
||||
+
|
||||
EXPORT(sqInt) ioAddClipboardData(void) {
|
||||
sqInt clipboardAddress;
|
||||
sqInt formatLength;
|
||||
@@ -102,6 +104,8 @@ EXPORT(sqInt) ioAddClipboardData(void) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+extern void sqPasteboardClear(sqInt);
|
||||
+
|
||||
EXPORT(sqInt) ioClearClipboard(void) {
|
||||
sqInt clipboardAddress;
|
||||
sqInt clipboard;
|
||||
@@ -119,6 +123,8 @@ EXPORT(sqInt) ioClearClipboard(void) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+sqInt sqCreateClipboard(void);
|
||||
+
|
||||
EXPORT(sqInt) ioCreateClipboard(void) {
|
||||
sqInt clipboardAddress;
|
||||
|
||||
@@ -130,6 +136,10 @@ EXPORT(sqInt) ioCreateClipboard(void) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+extern int sqPasteboardGetItemCount(sqInt);
|
||||
+extern int sqPasteboardCopyItemFlavorsitemNumber (sqInt, int);
|
||||
+extern int sqPasteboardCopyItemFlavorDataformatformatLength (sqInt, char*, int);
|
||||
+
|
||||
EXPORT(sqInt) ioGetClipboardFormat(void) {
|
||||
sqInt clipboardAddress;
|
||||
sqInt itemCount;
|
||||
diff --git a/unix/src/plugins/DBusPlugin/DBusPlugin.c b/unix/src/plugins/DBusPlugin/DBusPlugin.c
|
||||
index b3b8027..11bc22e 100644
|
||||
--- a/unix/src/plugins/DBusPlugin/DBusPlugin.c
|
||||
+++ b/unix/src/plugins/DBusPlugin/DBusPlugin.c
|
||||
@@ -474,7 +474,7 @@ static sqInt halt(void) {
|
||||
}
|
||||
|
||||
static sqInt handleflag(int fd, int flag) {
|
||||
- aioHandle(fd, handleReadForFDwithDataandFlag , flag);
|
||||
+ aioHandle(fd, (void (*)(int, void *, int)) handleReadForFDwithDataandFlag , flag);
|
||||
}
|
||||
|
||||
|
||||
@@ -1796,8 +1796,8 @@ static dbus_bool_t sqDBusPluginAddWatchwithData(DBusWatch*watch, void*data) {
|
||||
fd = dbus_watch_get_fd(watch);
|
||||
((sqDBusData*)data)->watch = watch;
|
||||
if (flag & DBUS_WATCH_READABLE) {
|
||||
- aioEnable(fd, data, NULL);
|
||||
- aioHandle(fd, handleReadForFDwithDataandFlag , 1<<0 | 1<<1 | 1<<3);
|
||||
+ aioEnable(fd, data, 0);
|
||||
+ aioHandle(fd, (void (*)(int, void *, int)) handleReadForFDwithDataandFlag , 1<<0 | 1<<1 | 1<<3);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -1830,7 +1830,7 @@ static void sqDBusPluginToggleWatchwithData(DBusWatch*watch, void*data) {
|
||||
fd = dbus_watch_get_fd(watch);
|
||||
if (enable) {
|
||||
((sqDBusData*)data)->watch = watch;
|
||||
- aioEnable(fd, data, NULL);
|
||||
+ aioEnable(fd, data, 0);
|
||||
} else {
|
||||
aioDisable(fd);
|
||||
}
|
||||
diff --git a/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c b/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c
|
||||
index e2f1b5a..16a3066 100644
|
||||
--- a/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c
|
||||
+++ b/unix/src/plugins/FileCopyPlugin/FileCopyPlugin.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "sqConfig.h"
|
||||
/* Platform specific definitions */
|
||||
#include "sqPlatformSpecific.h"
|
||||
+#include "FileCopyPlugin.h"
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
diff --git a/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c b/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c
|
||||
index ea5c0d7..54bb88b 100644
|
||||
--- a/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c
|
||||
+++ b/unix/src/plugins/HostWindowPlugin/HostWindowPlugin.c
|
||||
@@ -312,7 +312,7 @@ EXPORT(sqInt) primitiveShowHostWindowRect(void) {
|
||||
if (interpreterProxy->failed()) {
|
||||
return null;
|
||||
}
|
||||
- ok = ioShowDisplayOnWindow(dispBits, w, h, d, left, right, top,
|
||||
+ ok = ioShowDisplayOnWindow((unsigned char *)dispBits, w, h, d, left, right, top,
|
||||
bottom, windowIndex);
|
||||
if (!(ok)) {
|
||||
interpreterProxy->primitiveFail();
|
||||
diff --git a/unix/src/plugins/MIDIPlugin/MIDIPlugin.c b/unix/src/plugins/MIDIPlugin/MIDIPlugin.c
|
||||
index a3fae58..8ec2eaa 100644
|
||||
--- a/unix/src/plugins/MIDIPlugin/MIDIPlugin.c
|
||||
+++ b/unix/src/plugins/MIDIPlugin/MIDIPlugin.c
|
||||
@@ -161,7 +161,7 @@ EXPORT(sqInt) primitiveMIDIGetPortName(void) {
|
||||
if (interpreterProxy->failed()) {
|
||||
return null;
|
||||
}
|
||||
- sz = sqMIDIGetPortName(portNum, &portName, 255);
|
||||
+ sz = sqMIDIGetPortName(portNum, (int)&portName, 255);
|
||||
nameObj = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), sz);
|
||||
if (interpreterProxy->failed()) {
|
||||
return null;
|
||||
diff --git a/unix/src/plugins/RomePlugin/RomePlugin.c b/unix/src/plugins/RomePlugin/RomePlugin.c
|
||||
index aed0e19..f9ff990 100644
|
||||
--- a/unix/src/plugins/RomePlugin/RomePlugin.c
|
||||
+++ b/unix/src/plugins/RomePlugin/RomePlugin.c
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
|
||||
#include "sqMemoryAccess.h"
|
||||
+#include "sq.h"
|
||||
|
||||
|
||||
/*** Constants ***/
|
||||
diff --git a/unix/src/plugins/Squeak3D/Squeak3D.c b/unix/src/plugins/Squeak3D/Squeak3D.c
|
||||
index 3732e62..2127bb3 100644
|
||||
--- a/unix/src/plugins/Squeak3D/Squeak3D.c
|
||||
+++ b/unix/src/plugins/Squeak3D/Squeak3D.c
|
||||
@@ -1657,8 +1657,8 @@ static sqInt halt(void) {
|
||||
}
|
||||
|
||||
EXPORT(sqInt) initialiseModule(void) {
|
||||
- loadBBFn = interpreterProxy->ioLoadFunctionFrom("loadBitBltFrom", bbPluginName);
|
||||
- copyBitsFn = interpreterProxy->ioLoadFunctionFrom("copyBitsFromtoat", bbPluginName);
|
||||
+ loadBBFn = (sqInt) interpreterProxy->ioLoadFunctionFrom("loadBitBltFrom", bbPluginName);
|
||||
+ copyBitsFn = (sqInt) interpreterProxy->ioLoadFunctionFrom("copyBitsFromtoat", bbPluginName);
|
||||
return (loadBBFn != 0) && (copyBitsFn != 0);
|
||||
}
|
||||
|
||||
diff --git a/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c b/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
|
||||
index 24601e4..07e4714 100644
|
||||
--- a/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
|
||||
+++ b/unix/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
|
||||
@@ -1215,6 +1215,8 @@ static sqInt halt(void) {
|
||||
;
|
||||
}
|
||||
|
||||
+extern void initSurfacePluginFunctionPointers();
|
||||
+
|
||||
EXPORT(sqInt) initialiseModule(void) {
|
||||
initSurfacePluginFunctionPointers();
|
||||
}
|
||||
diff --git a/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c b/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
|
||||
index 1a53f09..ed3a446 100644
|
||||
--- a/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
|
||||
+++ b/unix/src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
|
||||
@@ -132,6 +132,10 @@ EXPORT(sqInt) primitiveCanConnectToDisplay(void) {
|
||||
}
|
||||
}
|
||||
|
||||
+extern void forgetXDisplay(void);
|
||||
+extern void synchronizeXDisplay(void);
|
||||
+extern void openXDisplay(void);
|
||||
+extern int disconnectXDisplay(void);
|
||||
|
||||
/* Call an internal function which will disconnect the X display session. The actual
|
||||
Squeak window on the X server is not effected, but this instance of Squeak will
|
||||
diff --git a/unix/src/vm/interp.c b/unix/src/vm/interp.c
|
||||
index 85f416d..c179a34 100644
|
||||
--- a/unix/src/vm/interp.c
|
||||
+++ b/unix/src/vm/interp.c
|
||||
@@ -15665,6 +15665,9 @@ sqInt primitiveAtPut(void) {
|
||||
}
|
||||
|
||||
|
||||
+extern sqInt ioSetCursorARGB(sqInt, sqInt, sqInt, sqInt, sqInt);
|
||||
+
|
||||
+
|
||||
/* Set the cursor to the given shape. The Mac only supports 16x16 pixel cursors. Cursor offsets are handled by Smalltalk. */
|
||||
|
||||
sqInt primitiveBeCursor(void) {
|
||||
diff --git a/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c b/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c
|
||||
index f0b72e7..f53d7f3 100644
|
||||
--- a/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c
|
||||
+++ b/unix/src/vm/intplugins/AsynchFilePlugin/AsynchFilePlugin.c
|
||||
@@ -162,7 +162,7 @@ EXPORT(sqInt) primitiveAsyncFileOpen(void) {
|
||||
fOop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classByteArray(), sizeof(AsyncFile));
|
||||
f = asyncFileValueOf(fOop);
|
||||
if (!(interpreterProxy->failed())) {
|
||||
- asyncFileOpen(f, fileName, fileNameSize, writeFlag, semaIndex);
|
||||
+ asyncFileOpen(f, (int) fileName, fileNameSize, writeFlag, semaIndex);
|
||||
}
|
||||
if (interpreterProxy->failed()) {
|
||||
return null;
|
||||
@@ -209,7 +209,7 @@ EXPORT(sqInt) primitiveAsyncFileReadResult(void) {
|
||||
interpreterProxy->success((startIndex >= 1) && (((startIndex + count) - 1) <= bufferSize));
|
||||
bufferPtr = (((pointerForOop(buffer)) + (BASE_HEADER_SIZE)) + startIndex) - 1;
|
||||
if (!(interpreterProxy->failed())) {
|
||||
- r = asyncFileReadResult(f, bufferPtr, count);
|
||||
+ r = asyncFileReadResult(f, (int) bufferPtr, count);
|
||||
}
|
||||
_return_value = interpreterProxy->integerObjectOf(r);
|
||||
if (interpreterProxy->failed()) {
|
||||
@@ -301,7 +301,7 @@ EXPORT(sqInt) primitiveAsyncFileWriteStart(void) {
|
||||
interpreterProxy->success((startIndex >= 1) && (((startIndex + count) - 1) <= bufferSize));
|
||||
bufferPtr = (((pointerForOop(buffer)) + (BASE_HEADER_SIZE)) + startIndex) - 1;
|
||||
if (!(interpreterProxy->failed())) {
|
||||
- asyncFileWriteStart(f, fPosition, bufferPtr, count);
|
||||
+ asyncFileWriteStart(f, fPosition, (int) bufferPtr, count);
|
||||
}
|
||||
if (interpreterProxy->failed()) {
|
||||
return null;
|
||||
diff --git a/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c b/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c
|
||||
index ae84066..c27ac3c 100644
|
||||
--- a/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c
|
||||
+++ b/unix/src/vm/intplugins/CroquetPlugin/CroquetPlugin.c
|
||||
@@ -512,6 +512,8 @@ EXPORT(sqInt) primitiveTransposeMatrix(void) {
|
||||
|
||||
/* Primitive. Answer whether an AABB intersects with a given triangle */
|
||||
|
||||
+extern sqInt triBoxOverlap(float*, float*, float*, float*, float*);
|
||||
+
|
||||
EXPORT(sqInt) primitiveTriBoxIntersects(void) {
|
||||
float*maxCorner;
|
||||
float*minCorner;
|
||||
diff --git a/unix/src/vm/intplugins/FilePlugin/FilePlugin.c b/unix/src/vm/intplugins/FilePlugin/FilePlugin.c
|
||||
index 0495a0f..baf618c 100644
|
||||
--- a/unix/src/vm/intplugins/FilePlugin/FilePlugin.c
|
||||
+++ b/unix/src/vm/intplugins/FilePlugin/FilePlugin.c
|
||||
@@ -734,7 +734,7 @@ EXPORT(sqInt) primitiveFileStdioHandles(void) {
|
||||
return interpreterProxy->primitiveFail();
|
||||
}
|
||||
}
|
||||
- validMask = sqFileStdioHandlesInto((&fileRecords));
|
||||
+ validMask = sqFileStdioHandlesInto((SQFile*)(&fileRecords));
|
||||
if (validMask == 0) {
|
||||
return interpreterProxy->primitiveFail();
|
||||
}
|
||||
diff --git a/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c b/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
|
||||
index 501077a..53767a4 100644
|
||||
--- a/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
|
||||
+++ b/unix/src/vm/intplugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
|
||||
@@ -101,6 +101,10 @@ static sqInt halt(void) {
|
||||
}
|
||||
|
||||
|
||||
+sqInt _isBytes(sqInt oop) {
|
||||
+ return ((oop & 1) == 0) && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8);
|
||||
+}
|
||||
+
|
||||
/* Return 1, 2 or 3, if string1 is <, =, or > string2, with the collating order of characters given by the order array. */
|
||||
|
||||
EXPORT(sqInt) primitiveCompareString(void) {
|
||||
@@ -115,17 +119,17 @@ EXPORT(sqInt) primitiveCompareString(void) {
|
||||
sqInt len2;
|
||||
|
||||
rcvr = stackValue(3);
|
||||
- if (!(isBytes(stackValue(2)))) {
|
||||
+ if (!(_isBytes(stackValue(2)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
string1 = arrayValueOf(stackValue(2));
|
||||
string1 -= 1;
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
string2 = arrayValueOf(stackValue(1));
|
||||
string2 -= 1;
|
||||
- if (!(isBytes(stackValue(0)))) {
|
||||
+ if (!(_isBytes(stackValue(0)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
order = arrayValueOf(stackValue(0));
|
||||
@@ -225,7 +229,7 @@ EXPORT(sqInt) primitiveCompressToByteArray(void) {
|
||||
rcvr = stackValue(2);
|
||||
bm = arrayValueOf(stackValue(1));
|
||||
bm -= 1;
|
||||
- if (!(isBytes(stackValue(0)))) {
|
||||
+ if (!(_isBytes(stackValue(0)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
ba = arrayValueOf(stackValue(0));
|
||||
@@ -393,7 +397,7 @@ EXPORT(sqInt) primitiveConvert8BitSigned(void) {
|
||||
sqInt s;
|
||||
|
||||
rcvr = stackValue(2);
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
aByteArray = arrayValueOf(stackValue(1));
|
||||
@@ -453,7 +457,7 @@ EXPORT(sqInt) primitiveDecompressFromByteArray(void) {
|
||||
rcvr = stackValue(3);
|
||||
bm = arrayValueOf(stackValue(2));
|
||||
bm -= 1;
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
ba = arrayValueOf(stackValue(1));
|
||||
@@ -556,12 +560,12 @@ EXPORT(sqInt) primitiveFindFirstInString(void) {
|
||||
sqInt stringSize;
|
||||
|
||||
rcvr = stackValue(3);
|
||||
- if (!(isBytes(stackValue(2)))) {
|
||||
+ if (!(_isBytes(stackValue(2)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
aString = arrayValueOf(stackValue(2));
|
||||
aString -= 1;
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
inclusionMap = arrayValueOf(stackValue(1));
|
||||
@@ -614,18 +618,18 @@ EXPORT(sqInt) primitiveFindSubstring(void) {
|
||||
sqInt startIndex;
|
||||
|
||||
rcvr = stackValue(4);
|
||||
- if (!(isBytes(stackValue(3)))) {
|
||||
+ if (!(_isBytes(stackValue(3)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
key = arrayValueOf(stackValue(3));
|
||||
key -= 1;
|
||||
- if (!(isBytes(stackValue(2)))) {
|
||||
+ if (!(_isBytes(stackValue(2)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
body = arrayValueOf(stackValue(2));
|
||||
body -= 1;
|
||||
start = stackIntegerValue(1);
|
||||
- if (!(isBytes(stackValue(0)))) {
|
||||
+ if (!(_isBytes(stackValue(0)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
matchTable = arrayValueOf(stackValue(0));
|
||||
@@ -673,7 +677,7 @@ EXPORT(sqInt) primitiveIndexOfAsciiInString(void) {
|
||||
|
||||
rcvr = stackValue(3);
|
||||
anInteger = stackIntegerValue(2);
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
aString = arrayValueOf(stackValue(1));
|
||||
@@ -719,7 +723,7 @@ EXPORT(sqInt) primitiveStringHash(void) {
|
||||
sqInt pos;
|
||||
|
||||
rcvr = stackValue(2);
|
||||
- if (!(isBytes(stackValue(1)))) {
|
||||
+ if (!(_isBytes(stackValue(1)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
aByteArray = arrayValueOf(stackValue(1));
|
||||
@@ -758,14 +762,14 @@ EXPORT(sqInt) primitiveTranslateStringWithTable(void) {
|
||||
sqInt i;
|
||||
|
||||
rcvr = stackValue(4);
|
||||
- if (!(isBytes(stackValue(3)))) {
|
||||
+ if (!(_isBytes(stackValue(3)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
aString = arrayValueOf(stackValue(3));
|
||||
aString -= 1;
|
||||
start = stackIntegerValue(2);
|
||||
stop = stackIntegerValue(1);
|
||||
- if (!(isBytes(stackValue(0)))) {
|
||||
+ if (!(_isBytes(stackValue(0)))) {
|
||||
return primitiveFail();
|
||||
}
|
||||
table = arrayValueOf(stackValue(0));
|
||||
diff --git a/unix/src/vm/intplugins/RePlugin/RePlugin.c b/unix/src/vm/intplugins/RePlugin/RePlugin.c
|
||||
index 97a99c9..4f09246 100644
|
||||
--- a/unix/src/vm/intplugins/RePlugin/RePlugin.c
|
||||
+++ b/unix/src/vm/intplugins/RePlugin/RePlugin.c
|
||||
@@ -252,7 +252,7 @@ EXPORT(sqInt) primPCREExec(void) {
|
||||
/* begin rcvrExtraPtr */
|
||||
extraObj = interpreterProxy->fetchPointerofObject(3, rcvr);
|
||||
if (extraObj == (interpreterProxy->nilObject())) {
|
||||
- extraPtr = NULL;
|
||||
+ extraPtr = 0;
|
||||
goto l1;
|
||||
}
|
||||
extraPtr = ((int) (interpreterProxy->arrayValueOf(extraObj)));
|
||||
@@ -317,7 +317,7 @@ EXPORT(sqInt) primPCREExecfromto(void) {
|
||||
/* begin rcvrExtraPtr */
|
||||
extraObj = interpreterProxy->fetchPointerofObject(3, rcvr);
|
||||
if (extraObj == (interpreterProxy->nilObject())) {
|
||||
- extraPtr = NULL;
|
||||
+ extraPtr = 0;
|
||||
goto l1;
|
||||
}
|
||||
extraPtr = ((int) (interpreterProxy->arrayValueOf(extraObj)));
|
||||
diff --git a/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c b/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c
|
||||
index a40a64d..ecc29f5 100644
|
||||
--- a/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c
|
||||
+++ b/unix/src/vm/intplugins/SerialPlugin/SerialPlugin.c
|
||||
@@ -100,6 +100,9 @@ EXPORT(sqInt) primitiveSerialPortClose(void) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+extern sqInt serialPortCloseByName(const char*);
|
||||
+extern sqInt serialPortOpenByName(char*, int, int, int, int, int, int, int, int);
|
||||
+
|
||||
EXPORT(sqInt) primitiveSerialPortCloseByName(void) {
|
||||
char * cString;
|
||||
char *deviceName;
|
||||
diff --git a/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c b/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c
|
||||
index 72f9def..46280d9 100644
|
||||
--- a/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c
|
||||
+++ b/unix/src/vm/intplugins/SlangTestSupportPlugin/SlangTestSupportPlugin.c
|
||||
@@ -147,7 +147,7 @@ static sqInt inlineByMethod(void) {
|
||||
sqInt bar;
|
||||
sqInt foo;
|
||||
|
||||
- foo = "foo";
|
||||
+ foo = (sqInt) "foo";
|
||||
bar = methodThatShouldNotBeInlinedByMethod();
|
||||
}
|
||||
|
||||
@@ -159,24 +159,24 @@ static sqInt inlineByPragma(void) {
|
||||
sqInt bar;
|
||||
sqInt foo;
|
||||
|
||||
- foo = "foo";
|
||||
+ foo = (sqInt) "foo";
|
||||
bar = methodThatShouldNotBeInlinedByPragma();
|
||||
}
|
||||
|
||||
static sqInt methodThatShouldBeInlinedByMethod(void) {
|
||||
- return "foo";
|
||||
+ return (sqInt) "foo";
|
||||
}
|
||||
|
||||
static sqInt methodThatShouldBeInlinedByPragma(void) {
|
||||
- return "foo";
|
||||
+ return (sqInt) "foo";
|
||||
}
|
||||
|
||||
static sqInt methodThatShouldNotBeInlinedByMethod(void) {
|
||||
- return "bar";
|
||||
+ return (sqInt) "bar";
|
||||
}
|
||||
|
||||
static sqInt methodThatShouldNotBeInlinedByPragma(void) {
|
||||
- return "bar";
|
||||
+ return (sqInt) "bar";
|
||||
}
|
||||
|
||||
|
||||
diff --git a/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c b/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c
|
||||
index 18d0f7f..8b0f35d 100644
|
||||
--- a/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c
|
||||
+++ b/unix/vm-sound-pulse/sqUnixSoundPulseAudio.c
|
||||
@@ -995,10 +995,10 @@ DBGMSG("<sound_StartRecording()");
|
||||
static sqInt sound_StopRecording(void) {
|
||||
DBGMSG(">sound_StopRecording()");
|
||||
|
||||
- if (!audioIn.open) return;
|
||||
+ if (!audioIn.open) return 0;
|
||||
audioIn.open = false;
|
||||
|
||||
- if (NULL == audioIn.pa_conn) return;
|
||||
+ if (NULL == audioIn.pa_conn) return 0;
|
||||
|
||||
ioThreadStall(&audioIn);
|
||||
|
||||
diff --git a/unix/vm/SqSound.h b/unix/vm/SqSound.h
|
||||
index bddbf24..973db1b 100644
|
||||
--- a/unix/vm/SqSound.h
|
||||
+++ b/unix/vm/SqSound.h
|
||||
@@ -47,7 +47,7 @@ static struct SqSound sound_##NAME##_itf= { \
|
||||
sound_RecordSamplesIntoAtLength, \
|
||||
sound_Volume, \
|
||||
sound_SetVolume, \
|
||||
- sound_SetRecordLevel, \
|
||||
+ (void (*)(sqInt))sound_SetRecordLevel, \
|
||||
sound_GetSwitch, \
|
||||
sound_SetSwitch, \
|
||||
sound_SetDevice \
|
||||
diff --git a/unix/vm/aio.c b/unix/vm/aio.c
|
||||
index 57e054e..f133c8e 100644
|
||||
--- a/unix/vm/aio.c
|
||||
+++ b/unix/vm/aio.c
|
||||
@@ -31,6 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "sqaio.h"
|
||||
+#include "sq.h"
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
||||
diff --git a/unix/vm/sqUnixMain.c b/unix/vm/sqUnixMain.c
|
||||
index 98ea3bc..76391f7 100644
|
||||
--- a/unix/vm/sqUnixMain.c
|
||||
+++ b/unix/vm/sqUnixMain.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "sqMemoryAccess.h"
|
||||
#include "sqaio.h"
|
||||
#include "sqUnixCharConv.h"
|
||||
+#include "sqUnixGlobals.h"
|
||||
#include "debug.h"
|
||||
|
||||
#ifdef ioMSecs
|
||||
@@ -42,6 +43,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
@@ -511,6 +513,8 @@ sqInt ioRelinquishProcessorForMicroseconds(sqInt us)
|
||||
|
||||
sqInt ioBeep(void) { return dpy->ioBeep(); }
|
||||
|
||||
+extern sqInt printCallStack(void);
|
||||
+
|
||||
#if defined(IMAGE_DUMP)
|
||||
|
||||
static void emergencyDump(int quit)
|
57
squeak-vm-4.10.2.2614-squeak-init-fix.patch
Normal file
57
squeak-vm-4.10.2.2614-squeak-init-fix.patch
Normal file
@ -0,0 +1,57 @@
|
||||
diff -up Squeak-4.10.2.2614-src-no-mp3/unix/cmake/squeak.in.orig Squeak-4.10.2.2614-src-no-mp3/unix/cmake/squeak.in
|
||||
--- Squeak-4.10.2.2614-src-no-mp3/unix/cmake/squeak.in.orig 2012-11-23 11:01:10.000000000 +0100
|
||||
+++ Squeak-4.10.2.2614-src-no-mp3/unix/cmake/squeak.in 2012-11-23 11:03:38.940563799 +0100
|
||||
@@ -78,19 +78,27 @@ elif test -x "${bindir}/${ck}"; then ck=
|
||||
elif test -x "`which ${ck}`"; then ck="`which ${ck}`"
|
||||
fi
|
||||
|
||||
-if test -z "${image}"; then image="${SQUEAK_IMAGE}"; fi
|
||||
-if test -z "${image}"; then image="squeak"; fi
|
||||
-if test -f "${image}.image"; then image="${image}.image"; fi
|
||||
+for f in "$SQUEAKHOME" . "$HOME"
|
||||
+do
|
||||
+ cd "$f" 2> /dev/null || continue
|
||||
+ if test -z "${image}"; then image="${SQUEAK_IMAGE}"; fi
|
||||
+ if test -z "${image}"; then image="squeak"; fi
|
||||
+ if test -f "${image}.image"; then image="${image}.image"; fi
|
||||
+ test -f "$image" && break
|
||||
+ cd "$OLDPWD"
|
||||
+done
|
||||
|
||||
-if test "${info}"; then
|
||||
- if test ! -x "${ck}"; then
|
||||
+if test ! -x "${ck}"; then
|
||||
echo "cannot find executable file: ${ck}" >&2
|
||||
exit 1
|
||||
- fi
|
||||
- if test ! -f "${image}"; then
|
||||
- echo "cannot find image file: ${image}" >&2
|
||||
+fi
|
||||
+if test ! -f "${image}"; then
|
||||
+ MSG="cannot find image file: ${image}, did you run 'inisqueak -m'?"
|
||||
+ echo "$MSG" >&2
|
||||
+ xmessage "$MSG" 2>/dev/null
|
||||
exit 1
|
||||
- fi
|
||||
+fi
|
||||
+if test "${info}"; then
|
||||
exec "${ck}" "${image}"
|
||||
fi
|
||||
|
||||
@@ -115,7 +120,6 @@ if test -z "${vms}"; then
|
||||
fi
|
||||
|
||||
for avm in ${vms}; do
|
||||
- echo CHECKING ${avm}
|
||||
if test -x "${plgdir}/${avm}"; then # bin/squeak -> lib/squeak/x.y-z/squeakvm
|
||||
vm="${plgdir}/${avm}"
|
||||
plugins="${plgdir}"
|
||||
@@ -124,7 +128,7 @@ for avm in ${vms}; do
|
||||
vm="${bindir}/${avm}"
|
||||
plugins="${bindir}/%n"
|
||||
break;
|
||||
- elif test -x "`which ${avm}`"; then
|
||||
+ elif test -x "`which ${avm} 2>/dev/null`"; then
|
||||
vm="`which ${avm}`"
|
||||
plugins=""
|
||||
break;
|
99
squeak-vm.spec
Normal file
99
squeak-vm.spec
Normal file
@ -0,0 +1,99 @@
|
||||
%define vmver %(echo %version | cut -d. -f1-3)
|
||||
%define rev %(echo %version | cut -d. -f4)
|
||||
Name: squeak-vm
|
||||
Version: 4.10.2.2614
|
||||
Release: 1mamba
|
||||
Summary: A full-featured implementation of the Smalltalk programming language and environment
|
||||
Group: Applications/Development
|
||||
Vendor: openmamba
|
||||
Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
URL: http://www.squeakvm.org
|
||||
Source: http://www.squeakvm.org/unix/release/Squeak-%{version}-src.tar.gz
|
||||
Patch0: squeak-vm-4.10.2.2614-fix-cmake.patch
|
||||
Patch1: squeak-vm-4.10.2.2614-format-security.patch
|
||||
Patch2: squeak-vm-4.10.2.2614-gcc-14.patch
|
||||
Patch3: squeak-vm-4.10.2.2614-squeak-init-fix.patch
|
||||
Patch4: squeak-vm-4.10.2.2614-dprintf.patch
|
||||
Patch5: squeak-vm-4.10.2.2614-alsa-fixes.patch
|
||||
License: MIT, Apache License 2.0
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: libICE-devel
|
||||
BuildRequires: libSM-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libXext-devel
|
||||
BuildRequires: libXrender-devel
|
||||
BuildRequires: libalsa-devel
|
||||
BuildRequires: libaudio-devel
|
||||
BuildRequires: libcairo-devel
|
||||
BuildRequires: libdbus-devel
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: libfreetype-devel
|
||||
BuildRequires: libglib-devel
|
||||
BuildRequires: libglu-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: libharfbuzz-devel
|
||||
BuildRequires: libnsl-devel
|
||||
BuildRequires: libpango-devel
|
||||
BuildRequires: libpulseaudio-devel
|
||||
BuildRequires: libuuid-devel
|
||||
## AUTOBUILDREQ-END
|
||||
Obsoletes: Squeak < 4.10.2-2mamba
|
||||
|
||||
%description
|
||||
Squeak is a full-featured implementation of the Smalltalk programming language and environment based on (and largely compatible with) the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D graphics, sound, video, MIDI, animation and other multimedia capabilities -- and one of the most impressive development environments ever created. It also includes a customisable framework for creating dynamic HTTP servers and interactively extensible Web sites. The entire Squeak system is open source software, distributed freely with a liberal license.
|
||||
|
||||
%debug_package
|
||||
|
||||
%prep
|
||||
%setup -q -n Squeak-%{version}-src
|
||||
%patch 0 -p1 -b .fix-cmake
|
||||
%patch 1 -p1 -b .format-security
|
||||
%patch 2 -p1 -b .gcc-14
|
||||
%patch 3 -p1 -b .squeak-init-fix
|
||||
%patch 4 -p1 -b .dprintf
|
||||
%patch 5 -p2 -b .alsa-fixes
|
||||
|
||||
# Fix libdir
|
||||
sed -i 's|libdir="${prefix}/lib/squeak"|libdir="%{_libdir}/squeak"|' unix/cmake/squeak.in
|
||||
|
||||
%build
|
||||
./unix/cmake/configure \
|
||||
--prefix=%{_prefix} \
|
||||
--without-Mpeg3Plugin \
|
||||
--with-x \
|
||||
--enable-mpg-mmx
|
||||
|
||||
%make
|
||||
|
||||
%install
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
%makeinstall
|
||||
|
||||
%clean
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/squeak
|
||||
%{_bindir}/squeak.sh
|
||||
%dir %{_libdir}/squeak
|
||||
%dir %{_libdir}/squeak/%{vmver}-%{rev}
|
||||
%{_libdir}/squeak/%{vmver}-%{rev}/ckformat
|
||||
%{_libdir}/squeak/%{vmver}-%{rev}/so.*
|
||||
%{_libdir}/squeak/%{vmver}-%{rev}/squeakvm
|
||||
%{_mandir}/man1/squeak.1*
|
||||
%doc unix/doc/LICENSE
|
||||
|
||||
%changelog
|
||||
* Fri Dec 06 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 4.10.2.2614-1mamba
|
||||
- update to 4.10.2.2614
|
||||
- source renamed from Squeak to squeak-vm
|
||||
|
||||
* Wed Nov 21 2012 Ercole 'ercolinux' Carpanetto <ercole69@gmail.com> 4.10.2-1mamba
|
||||
- update to 4.10.2
|
||||
- fixed the specfile
|
||||
|
||||
* Sun May 06 2012 Ercole 'ercolinux' Carpanetto <ercole69@gmail.com> 4.4.7-1mamba
|
||||
- package created by autospec
|
Loading…
Reference in New Issue
Block a user