You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
(27) |
Apr
(11) |
May
(112) |
Jun
(8) |
Jul
(10) |
Aug
(68) |
Sep
(12) |
Oct
(3) |
Nov
(19) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(15) |
Mar
(20) |
Apr
(22) |
May
(131) |
Jun
(27) |
Jul
(19) |
Aug
(207) |
Sep
(61) |
Oct
(27) |
Nov
(28) |
Dec
(21) |
| 2004 |
Jan
(7) |
Feb
(25) |
Mar
(14) |
Apr
(55) |
May
(15) |
Jun
(2) |
Jul
(14) |
Aug
(28) |
Sep
(29) |
Oct
|
Nov
|
Dec
|
|
From: Ian P. <piu...@us...> - 2004-04-17 00:48:17
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15187 Modified Files: sqPlatformSpecific.h Log Message: Include <unistd.h> and define sqFTruncate(). Index: sqPlatformSpecific.h =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/sqPlatformSpecific.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** sqPlatformSpecific.h 1 Sep 2003 08:31:53 -0000 1.12 --- sqPlatformSpecific.h 17 Apr 2004 00:48:06 -0000 1.13 *************** *** 1,14 **** /* sqPlatformSpecific.h -- platform-specific modifications to sq.h * ! * Copyright (C) 1996-2003 Ian Piumarta and other authors/contributors ! * as listed elsewhere in this file. * All rights reserved. * - * You are NOT ALLOWED to distribute modified versions of this file - * under its original name. If you want to modify it and then make - * your modifications available publicly, rename the file first. - * * This file is part of Unix Squeak. * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --- 1,14 ---- /* sqPlatformSpecific.h -- platform-specific modifications to sq.h * ! * Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors ! * listed elsewhere in this file. * All rights reserved. * * This file is part of Unix Squeak. * + * You are NOT ALLOWED to distribute modified versions of this file + * under its original name. If you modify this file then you MUST + * rename it before making your modifications available publicly. + * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *************** *** 36,40 **** * Author: ian...@in... * ! * Last edited: 2003-03-05 05:50:50 by piumarta on emilia.inria.fr */ --- 36,40 ---- * Author: ian...@in... * ! * Last edited: 2004-04-17 02:45:14 by piumarta on emilia.local */ *************** *** 59,60 **** --- 59,65 ---- extern void sqFilenameFromString(char *uxName, int stNameIndex, int sqNameLength); + + #include <unistd.h> + + #undef sqFTruncate + #define sqFTruncate(f,o) ftruncate(fileno(f), o) |
|
From: David T. L. <le...@us...> - 2004-04-12 13:07:58
|
Update of /cvsroot/squeak/squeak/platforms/unix/plugins/UnixOSProcessPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13697 Modified Files: Makefile.inc Log Message: Added "XDEFS= -REENTRANT" This is required for OSPP when running with a VM that uses pthreads, as is the case on OS X, and may potentially be the case on other configurations. Lack of this compiler flag will lead to a VM crash when OSPP handles an OS signal in a VM with pthreads enabled in the VM. Index: Makefile.inc =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/plugins/UnixOSProcessPlugin/Makefile.inc,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile.inc 15 Aug 2003 15:16:04 -0000 1.6 --- Makefile.inc 12 Apr 2004 12:54:09 -0000 1.7 *************** *** 1 **** --- 1,2 ---- XCPPFLAGS= -I$(topdir)/platforms/Cross/plugins/FilePlugin -I$(topdir)/platforms/Cross/plugins/SocketPlugin + XDEFS= -D_REENTRANT |
|
From: Ian P. <piu...@us...> - 2004-04-12 10:14:54
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17885 Modified Files: Makefile.in Log Message: Remove $(X_LIBS) from link command. Index: Makefile.in =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 1 Sep 2003 08:31:53 -0000 1.2 --- Makefile.in 12 Apr 2004 10:01:07 -0000 1.3 *************** *** 1,14 **** # Makefile for framebuffer support -*- makefile -*- # ! # Copyright (C) 1996-2003 Ian Piumarta and other authors/contributors ! # as listed elsewhere in this file. # All rights reserved. # - # You are NOT ALLOWED to distribute modified versions of this file - # under its original name. If you want to modify it and then make - # your modifications available publicly, rename the file first. - # # This file is part of Unix Squeak. # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --- 1,14 ---- # Makefile for framebuffer support -*- makefile -*- # ! # Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors ! # listed elsewhere in this file. # All rights reserved. # # This file is part of Unix Squeak. # + # You are NOT ALLOWED to distribute modified versions of this file + # under its original name. If you modify this file then you MUST + # rename it before making your modifications available publicly. + # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *************** *** 36,40 **** # Author: ian...@in... # ! # Last edited: 2003-08-18 06:01:32 by piumarta on cartman.inria.fr [make_cfg] --- 36,40 ---- # Author: ian...@in... # ! # Last edited: 2004-04-12 11:56:39 by piumarta on emilia.local [make_cfg] *************** *** 52,56 **** $(TARGET) : $(OBJS) Makefile ! $(LINK) $(TARGET) $(OBJS) $(X_LIBS) $(RANLIB) $(TARGET) --- 52,56 ---- $(TARGET) : $(OBJS) Makefile ! $(LINK) $(TARGET) $(OBJS) $(RANLIB) $(TARGET) |
|
From: Ian P. <piu...@us...> - 2004-04-11 14:54:52
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24709 Modified Files: gnuify Log Message: Remove GNU-specifics as per Lex's request. Escape all occurences of '{' within regex for Solaris and OSF/1. Index: gnuify =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/gnuify,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gnuify 3 Sep 2003 18:05:00 -0000 1.6 --- gnuify 11 Apr 2004 14:41:13 -0000 1.7 *************** *** 6,21 **** # Author: Ian...@IN... # ! # Last edited: 2003-09-03 00:06:37 by piumarta on emilia.inria.fr ! # Copyright (C) 1996-2003 Ian Piumarta and other authors/contributors ! # as listed elsewhere in this file. # All rights reserved. # - # You are NOT ALLOWED to distribute modified versions of this file - # under its original name. If you want to modify it and then make - # your modifications available publicly, rename the file first. - # # This file is part of Unix Squeak. # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --- 6,21 ---- # Author: Ian...@IN... # ! # Last edited: Sun Apr 11 16:50:09 2004 by piumarta (Ian Piumarta) on ina ! # Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors ! # listed elsewhere in this file. # All rights reserved. # # This file is part of Unix Squeak. # + # You are NOT ALLOWED to distribute modified versions of this file + # under its original name. If you modify this file then you MUST + # rename it before making your modifications available publicly. + # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *************** *** 42,49 **** BEGIN { ! print "/* This file has been post-processed for GNU C */\n\ ! \n\ ! "; ! print "copying first section of file" > "/dev/stderr"; stage= 0; } --- 42,47 ---- BEGIN { ! print "/* This file has been post-processed for GNU C */\n\n"; ! # print "copying first section of file" > "/dev/stderr"; stage= 0; } *************** *** 57,70 **** /inline\: true/ { ! print NR, $0 > "/dev/stderr"; ! print "" > "/dev/stderr"; ! print "*** interpreter was not inlined: bailing out! ***" > "/dev/stderr"; ! print "" > "/dev/stderr"; ! exit 1; } (stage == 0) && /^int interpret\(void\) \{/ { ! print "interpret: adding static register assignments" > "/dev/stderr"; stage= 1; print; --- 55,68 ---- /inline\: true/ { ! # print NR, $0 > "/dev/stderr"; ! # print "" > "/dev/stderr"; ! # print "*** interpreter was not inlined: bailing out! ***" > "/dev/stderr"; ! # print "" > "/dev/stderr"; ! stage= -1; } (stage == 0) && /^int interpret\(void\) \{/ { ! # print "interpret: adding static register assignments" > "/dev/stderr"; stage= 1; print; *************** *** 93,106 **** (stage == 1) && /^$/ { ! print "interpret: adding bytecode dispatch table" > "/dev/stderr"; print " JUMP_TABLE;\n"; ! print "interpret: rewriting case labels and outer breaks" > "/dev/stderr"; stage= 2; ! FS="[ :]+"; next; } (stage == 2) && /^ case / { ! print " CASE(" $3 ")"; next; } --- 91,106 ---- (stage == 1) && /^$/ { ! # print "interpret: adding bytecode dispatch table" > "/dev/stderr"; print " JUMP_TABLE;\n"; ! # print "interpret: rewriting case labels and outer breaks" > "/dev/stderr"; stage= 2; ! FS=" "; ! # FS="[ :]+"; next; } (stage == 2) && /^ case / { ! print " CASE(" (($NF) + 0) ")"; ! # print " CASE(" $3 ")"; next; } *************** *** 119,133 **** (stage == 3) && /^int primitiveResponse\(/ { print; ! print "primitiveResponse: adding primitive dispatch table" > "/dev/stderr"; print " PRIM_TABLE;\n"; ! print "primitiveResponse: rewriting case labels" > "/dev/stderr"; stage= 4; ! FS="[ :]+"; next; } ! (stage == 4) && /^ switch \(primitiveIndex\) {/ { ! print "primitiveResponse: adding primitive dispatch" > "/dev/stderr"; print " PRIM_DISPATCH;"; print; --- 119,134 ---- (stage == 3) && /^int primitiveResponse\(/ { print; ! # print "primitiveResponse: adding primitive dispatch table" > "/dev/stderr"; print " PRIM_TABLE;\n"; ! # print "primitiveResponse: rewriting case labels" > "/dev/stderr"; stage= 4; ! FS=" "; ! # FS="[ :]+"; next; } ! (stage == 4) && /^ switch \(primitiveIndex\) \{/ { ! # print "primitiveResponse: adding primitive dispatch" > "/dev/stderr"; print " PRIM_DISPATCH;"; print; *************** *** 135,140 **** } ! (stage == 4) && /^ switch \(foo->primitiveIndex\) {/ { ! print "primitiveResponse: adding primitive dispatch" > "/dev/stderr"; print " PRIM_DISPATCH;"; print; --- 136,141 ---- } ! (stage == 4) && /^ switch \(foo->primitiveIndex\) \{/ { ! # print "primitiveResponse: adding primitive dispatch" > "/dev/stderr"; print " PRIM_DISPATCH;"; print; *************** *** 143,152 **** (stage == 4) && /^ case / { ! print " CASE(" $3 ")"; next; } (stage == 4) && /^\}/ { ! print "copying last section of file" > "/dev/stderr"; stage= 5; FS=" "; --- 144,154 ---- (stage == 4) && /^ case / { ! print " CASE(" (($NF) + 0) ")"; ! # print " CASE(" $3 ")"; next; } (stage == 4) && /^\}/ { ! # print "copying last section of file" > "/dev/stderr"; stage= 5; FS=" "; |
|
From: Ian P. <piu...@us...> - 2004-04-06 18:31:46
|
Update of /cvsroot/squeak/squeak/platforms/unix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8685 Modified Files: ChangeLog Log Message: Changes for 3.7b-5. Index: ChangeLog =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/ChangeLog,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** ChangeLog 3 Apr 2004 22:03:36 -0000 1.21 --- ChangeLog 6 Apr 2004 18:18:56 -0000 1.22 *************** *** 1,2 **** --- 1,13 ---- + 2004-04-06 Ian Piumarta <ian...@in...> + + * platforms/unix/config/configure.ac: Version is 3.7b-5. + + * platforms/unix/npsqueak/npsqueak.c: Add failureUrl to SqueakPlugin struct. + (NPP_New): Check for and use explicit imageName. + (NPP_New): Check for explicit failureUrl. + (NPP_New): Check for access on imageName, set failureUrl if missing. + (NPP_NewStream): Redirect to failureUrl if set. + (Run): Do not start VM if failureUrl set. + 2004-04-04 Ian Piumarta <ian...@in...> |
|
From: Ian P. <piu...@us...> - 2004-04-06 18:29:03
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8200 Modified Files: configure.ac Log Message: Advance to 3.7b-5. Index: configure.ac =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/configure.ac,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** configure.ac 3 Apr 2004 21:50:53 -0000 1.17 --- configure.ac 6 Apr 2004 18:16:12 -0000 1.18 *************** *** 38,46 **** # Author: Ian...@IN... # ! # Last edited: 2004-04-03 22:59:34 by piumarta on emilia.local AC_INIT([config.h.in]) ! AC_VM_VERSION(3,7b,3, 3,7b,5868) topdir=`cd ${srcdir}/../../..; pwd` --- 38,46 ---- # Author: Ian...@IN... # ! # Last edited: 2004-04-06 20:05:35 by piumarta on cartman.inria.fr AC_INIT([config.h.in]) ! AC_VM_VERSION(3,7b,5, 3,7b,5868) topdir=`cd ${srcdir}/../../..; pwd` |
|
From: Ian P. <piu...@us...> - 2004-04-06 18:27:15
|
Update of /cvsroot/squeak/squeak/platforms/unix/npsqueak In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7725 Modified Files: npsqueak.c Log Message: Handle imageName and failureUrl tags when loading NPSqueak plugin. Index: npsqueak.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/npsqueak/npsqueak.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** npsqueak.c 7 Aug 2003 02:44:53 -0000 1.3 --- npsqueak.c 6 Apr 2004 18:14:23 -0000 1.4 *************** *** 5,11 **** * Author: Bert Freudenberg <be...@is...> * ! * Last edited: Wed 02 Oct 2002 14:43:26 by bert on balloon * * History: * Oct 2002 - system-wide install * Sep 2002 - create hard links for streamed files --- 5,12 ---- * Author: Bert Freudenberg <be...@is...> * ! * Last edited: 2004-04-06 20:19:06 by piumarta on emilia.local * * History: + * Apr 2004 - (ikp) handle imageName and failureUrl tags * Oct 2002 - system-wide install * Sep 2002 - create hard links for streamed files *************** *** 106,109 **** --- 107,111 ---- char* srcFilename; int srcId; /* if requested */ + char *failureUrl; } SqueakPlugin; *************** *** 178,181 **** --- 180,184 ---- SqueakPlugin *plugin; char basedir[PATH_MAX]; + char *failureUrl= 0; if (instance == NULL) return NPERR_INVALID_INSTANCE_ERROR; *************** *** 208,211 **** --- 211,215 ---- plugin->srcFilename= NULL; plugin->srcId= -1; + plugin->failureUrl= 0; strcpy(plugin->vmName, basedir); strcat(plugin->vmName, "npsqueakvm"); *************** *** 224,227 **** --- 228,240 ---- int i; for (i= 0; i < argc; i++) { + if (!strcasecmp(argn[i], "imagename")) + { + strcpy(plugin->imageName, basedir); + strcat(plugin->imageName, argv[i]); + NPN_MemFree(plugin->argv[6]); + plugin->argv[6]= NPN_StrDup(plugin->imageName); + } + else if (!strcasecmp(argn[i], "failureurl")) + failureUrl= argv[i]; plugin->argv[plugin->argc++]= NPN_StrDup(argn[i]); plugin->argv[plugin->argc++]= NPN_StrDup(argv[i] ? argv[i] : ""); *************** *** 231,239 **** if (!plugin->srcUrl) plugin->srcUrl= NPN_StrDup(""); /* we were embedded without a SRC */ } else { /* if not embedded srcUrl will be set in NewStream */ plugin->srcUrl= NULL; } ! plugin->argv[plugin->argc]= 0; if (pipe(&plugin->pipes[SQUEAK_READ]) || pipe(&plugin->pipes[PLUGIN_READ])) { --- 244,262 ---- if (!plugin->srcUrl) plugin->srcUrl= NPN_StrDup(""); /* we were embedded without a SRC */ + if (access(plugin->imageName, R_OK)) + { + if (failureUrl) + plugin->failureUrl= NPN_StrDup(failureUrl); + else + { + fprintf(stderr, "Squeak Plugin: Image file not found: %s\n", plugin->imageName); + return NPERR_GENERIC_ERROR; + } + } } else { /* if not embedded srcUrl will be set in NewStream */ plugin->srcUrl= NULL; } ! plugin->argv[plugin->argc]= 0; if (pipe(&plugin->pipes[SQUEAK_READ]) || pipe(&plugin->pipes[PLUGIN_READ])) { *************** *** 279,282 **** --- 302,309 ---- plugin->srcFilename= NULL; } + if (plugin->failureUrl) { + NPN_MemFree(plugin->failureUrl); + plugin->failureUrl= NULL; + } if (plugin->argv) { for (i=0; i<plugin->argc; i++) { *************** *** 307,310 **** --- 334,339 ---- if (!plugin) return NPERR_GENERIC_ERROR; + if (plugin->failureUrl) + return NPERR_NO_ERROR; if (pNPWindow == NULL) return NPERR_NO_ERROR; *************** *** 326,341 **** { SqueakPlugin *plugin= (SqueakPlugin*) instance->pdata; ! DPRINT("NP: NewStream(%s, id=%i)\n", stream->url, stream->notifyData ? ((SqueakStream*) stream->notifyData)->id : -1); ! if (!stream->notifyData && !plugin->srcUrl) { ! /* We did not request this stream, so it is our SRC file. */ ! plugin->srcUrl= NPN_StrDup(stream->url); ! plugin->argv[plugin->argc++]= NPN_StrDup("SRC"); ! plugin->argv[plugin->argc++]= NPN_StrDup(plugin->srcUrl); ! DPRINT("NP: got srcUrl=%s\n", plugin->srcUrl); ! Run(plugin); ! } ! ! *stype= NP_ASFILEONLY; /* We want the file after download */ return NPERR_NO_ERROR; } --- 355,374 ---- { SqueakPlugin *plugin= (SqueakPlugin*) instance->pdata; ! DPRINT("NP: NewStream(%s, id=%i)\n", stream->url, stream->notifyData ? ((SqueakStream*) stream->notifyData)->id : -1); ! if (plugin->failureUrl) ! NPN_GetURL(instance, plugin->failureUrl, "_self"); ! else ! { ! if (!stream->notifyData && !plugin->srcUrl) { ! /* We did not request this stream, so it is our SRC file. */ ! plugin->srcUrl= NPN_StrDup(stream->url); ! plugin->argv[plugin->argc++]= NPN_StrDup("SRC"); ! plugin->argv[plugin->argc++]= NPN_StrDup(plugin->srcUrl); ! DPRINT("NP: got srcUrl=%s\n", plugin->srcUrl); ! Run(plugin); ! } ! *stype= NP_ASFILEONLY; /* We want the file after download */ ! } return NPERR_NO_ERROR; } *************** *** 516,520 **** Run(SqueakPlugin *plugin) { ! if (plugin->pid || !plugin->nswindow || !plugin->srcUrl) return; --- 549,553 ---- Run(SqueakPlugin *plugin) { ! if (plugin->pid || !plugin->nswindow || !plugin->srcUrl || plugin->failureUrl) return; |
|
From: Ian P. <piu...@us...> - 2004-04-03 22:16:00
|
Update of /cvsroot/squeak/squeak/platforms/unix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22068 Modified Files: ChangeLog Log Message: Latest changes for 3.7b-3. Index: ChangeLog =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/ChangeLog,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ChangeLog 3 Apr 2004 10:35:37 -0000 1.20 --- ChangeLog 3 Apr 2004 22:03:36 -0000 1.21 *************** *** 1,2 **** --- 1,16 ---- + 2004-04-04 Ian Piumarta <ian...@in...> + + * platforms/unix/vm-display-X11/sqUnixXdnd.c: New file. + XDND-based drag-and-drop support. + + * platforms/unix/vm-display-X11/sqUnixX11.c: New option "-noxdnd" + with attendant flag, command-line option, env var, and help entry. + Include "sqUnixXdnd.c" appropriately. + (handleEvent): Pass SelectionNotify to dnd if enabled. + (handleEvent): Pass ClientMessage to dnd if enabled. + (initWindow): Add EnterWindowMask to stParent event_mask if dnd + enabled. + (initWindow): Call dndInitialise() if dnd enabled. + 2004-04-03 Ian Piumarta <ian...@in...> |
|
From: Ian P. <piu...@us...> - 2004-04-03 22:03:15
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19982 Modified Files: configure.ac Log Message: Advance version to 3.7b-3. Index: configure.ac =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/configure.ac,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** configure.ac 3 Apr 2004 10:36:59 -0000 1.16 --- configure.ac 3 Apr 2004 21:50:53 -0000 1.17 *************** *** 3,16 **** # Process this file with autoconf to produce a configure script ! # Copyright (C) 1996-2003 Ian Piumarta and other authors/contributors ! # as listed elsewhere in this file. # All rights reserved. # - # You are NOT ALLOWED to distribute modified versions of this file - # under its original name. If you want to modify it and then make - # your modifications available publicly, rename the file first. - # # This file is part of Unix Squeak. # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --- 3,16 ---- # Process this file with autoconf to produce a configure script ! # Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors ! # listed elsewhere in this file. # All rights reserved. # # This file is part of Unix Squeak. # + # You are NOT ALLOWED to distribute modified versions of this file + # under its original name. If you modify this file then you MUST + # rename it before making your modifications available publicly. + # # This file is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *************** *** 38,46 **** # Author: Ian...@IN... # ! # Last edited: 2004-04-03 11:40:24 by piumarta on emilia.local AC_INIT([config.h.in]) ! AC_VM_VERSION(3,7b,2, 3,7b,5868) topdir=`cd ${srcdir}/../../..; pwd` --- 38,46 ---- # Author: Ian...@IN... # ! # Last edited: 2004-04-03 22:59:34 by piumarta on emilia.local AC_INIT([config.h.in]) ! AC_VM_VERSION(3,7b,3, 3,7b,5868) topdir=`cd ${srcdir}/../../..; pwd` |
|
From: Ian P. <piu...@us...> - 2004-04-03 22:01:20
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-display-X11 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19627 Modified Files: sqUnixX11.c Added Files: sqUnixXdnd.c Log Message: Add XDND-based drag-and-drop support. --- NEW FILE: sqUnixXdnd.c --- /* sqUnixXdnd.c -- drag-and-drop for the X Window System. -*- C -*- * * Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors * listed elsewhere in this file. * All rights reserved. * * This file is part of Unix Squeak. * * You are NOT ALLOWED to distribute modified versions of this file * under its original name. If you modify this file then you MUST * rename it before making your modifications available publicly. * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. * * You may use and/or distribute this file ONLY as part of Squeak, under * the terms of the Squeak License as described in `LICENSE' in the base of * this distribution, subject to the following additional restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment to the original author(s) (and any * other contributors mentioned herein) in the product documentation * would be appreciated but is not required. * * 2. You must not distribute (or make publicly available by any * means) a modified copy of this file unless you first rename it. * * 3. This notice must not be removed or altered in any source distribution. * * Using (or modifying this file for use) in any context other than Squeak * changes these copyright conditions. Read the file `COPYING' in the * directory `platforms/unix/doc' before proceeding with any such use. */ /* Author: Ian Piumarta <ian...@in...> * * Last edited: 2004-04-03 22:54:55 by piumarta on cartman.inria.fr * * BUGS * * - This only works with version 3 and higher of the XDND protocol. * No attempt whatsoever is made to check for and deal with earlier * versions. Since version 3 is at least six years old now, I doubt * this matters much. * * - Some memory could be released between drop operations, but it's * only a few tens of bytes so who cares? * * - Only filenames (MIME type text/uri-list) are handled, although * it would be trivial to extend the code to cope with dropping text * selections into the Squeak clipboard. I'm simply too lazy to be * bothered. * * - No attempt is made to verify that XDND protocol messages arrive * in the correct order. (If your WM or file manager is broken, you * get to keep all the shrapnel that will be left behind after * dragging something onto Squeak). */ #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <ctype.h> #include <X11/Xlib.h> #include <X11/Xatom.h> #define DEBUG_XDND 0 static Atom XdndVersion= (Atom)3; static Atom XdndAware; static Atom XdndSelection; static Atom XdndEnter; static Atom XdndLeave; static Atom XdndPosition; static Atom XdndDrop; static Atom XdndFinished; static Atom XdndStatus; static Atom XdndActionCopy; static Atom XdndActionMove; static Atom XdndTypeList; static Atom XdndTextUriList; static Atom XdndSelectionAtom; static Window xdndSourceWindow= 0; static Atom *xdndTypeList= 0; static int xdndWillAccept= 0; #define xdndEnter_sourceWindow(evt) ( (evt)->data.l[0]) #define xdndEnter_version(evt) ( (evt)->data.l[1] >> 24) #define xdndEnter_hasThreeTypes(evt) (((evt)->data.l[1] & 0x1UL) == 0) #define xdndEnter_typeAt(evt, idx) ( (evt)->data.l[2 + (idx)]) #define xdndPosition_sourceWindow(evt) ((Window)((evt)->data.l[0])) #define xdndPosition_rootX(evt) ((evt)->data.l[2] >> 16) #define xdndPosition_rootY(evt) ((evt)->data.l[2] & 0xffffUL) #define xdndPosition_action(evt) ((Atom)((evt)->data.l[4])) #define xdndStatus_targetWindow(evt) ((Window)((evt)->data.l[0])) #define xdndStatus_setWillAccept(evt, b) ((evt)->data.l[1]= (((evt)->data.l[1] & ~0x1UL) | !!(b))) #define xdndStatus_setWantPosition(evt, b) ((evt)->data.l[1]= (((evt)->data.l[1] & ~0x2UL) | !!(b))) #define xdndStatus_action(evt) ((evt)->data.l[4]) #define xdndDrop_sourceWindow(evt) ((Window)((evt)->data.l[0])) #define xdndDrop_time(evt) ((evt)->data.l[2]) #define xdndFinished_targetWindow(evt) ((Window)((evt)->data.l[0])) static void dprintf(const char *fmt, ...) { #if (DEBUG_XDND) va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fprintf(stderr, "\n"); #endif } static void *xmalloc(size_t size) { void *ptr= malloc(size); if (!ptr) { fprintf(stderr, "out of memory\n"); exit(1); } return ptr; } static void *xcalloc(size_t nmemb, size_t size) { void *ptr= calloc(nmemb, size); if (!ptr) { fprintf(stderr, "out of memory\n"); exit(1); } return ptr; } static void *xrealloc(void *ptr, size_t size) { ptr= realloc(ptr, size); if (!ptr) { fprintf(stderr, "out of memory\n"); exit(1); } return ptr; } static int hexValue(const int c) { if (c < '0') return 0; if (c <= '9') return c - '0'; if (c < 'A') return 0; if (c <= 'F') return c - 'A' + 10; if (c < 'a') return 0; if (c <= 'f') return c - 'a' + 10; return 0; } static char *uri2string(const char *uri) { size_t len= strlen(uri); char *string= (char *)xmalloc(len + 3); /* whoever wrote the URL stuff in the the image was too damn stupid to understand file URIs */ if (!strncmp(uri, "file:", 5)) { char *in= string, *out= string; strncpy(string, uri + 5, len); while (*in) if ((in[0] == '%') && isxdigit(in[1]) && isxdigit(in[2])) { *out++= hexValue(in[1]) * 16 + hexValue(in[2]); in += 3; } else *out++= *in++; *out= '\0'; } else { strncpy(string, uri, len); } dprintf("uri2string: <%s>", string); return string; } static void dndGetTypeList(XClientMessageEvent *evt) { if (xdndTypeList) { free(xdndTypeList); xdndTypeList= 0; } xdndWillAccept= 0; if (xdndEnter_hasThreeTypes(evt)) { int i; dprintf(" 3 types"); xdndTypeList= (Atom *)xcalloc(3 + 1, sizeof(Atom)); for (i= 0; i < 3; ++i) xdndTypeList[i]= xdndEnter_typeAt(evt, i); xdndTypeList[3]= 0; } else { Atom type, *atoms; int format; unsigned long i, count, remaining; unsigned char *data= 0; XGetWindowProperty(stDisplay, xdndSourceWindow, XdndTypeList, 0, 0x8000000L, False, XA_ATOM, &type, &format, &count, &remaining, &data); if ((type != XA_ATOM) || (format != 32) || (count == 0) || !data) { if (data) XFree(data); fprintf(stderr, "XGetWindowProperty failed in xdndGetTypeList\n"); return; } xdndTypeList= (Atom *)xcalloc(count + 1, sizeof(Atom)); atoms= (Atom *)data; for (i= 0; i < count; ++i) xdndTypeList[i]= atoms[i]; xdndTypeList[count]= 0; XFree(data); dprintf(" %ld types", count); } /* We only accept filenames (MIME type "text/uri-list"). */ { int i; for (i= 0; xdndTypeList[i]; ++i) { dprintf(" type %d == %ld %s", i, xdndTypeList[i], XGetAtomName(stDisplay, xdndTypeList[i])); if (XdndTextUriList == xdndTypeList[i]) xdndWillAccept= 1; } } } static void dndSendStatus(Window target, int willAccept, Atom action) { XClientMessageEvent evt; memset(&evt, 0, sizeof(evt)); evt.type = ClientMessage; evt.display = stDisplay; evt.window = xdndSourceWindow; evt.message_type = XdndStatus; evt.format = 32; xdndStatus_targetWindow(&evt)= target; xdndStatus_setWillAccept(&evt, willAccept); xdndStatus_setWantPosition(&evt, 0); xdndStatus_action(&evt)= action; XSendEvent(stDisplay, xdndSourceWindow, 0, 0, (XEvent *)&evt); dprintf("sent status to %ld will accept %d data %ld action %ld %s", xdndSourceWindow, willAccept, evt.data.l[1], action, XGetAtomName(stDisplay, action)); } static void dndSendFinished(Window target) { XClientMessageEvent evt; memset (&evt, 0, sizeof(evt)); evt.type = ClientMessage; evt.display = stDisplay; evt.window = xdndSourceWindow; evt.message_type = XdndFinished; evt.format = 32; xdndFinished_targetWindow(&evt)= target; XSendEvent(stDisplay, xdndSourceWindow, 0, 0, (XEvent *)&evt); dprintf("sent finished to %ld", xdndSourceWindow); } static void dndEnter(XClientMessageEvent *evt) { dprintf("dndEnter"); if (xdndEnter_version(evt) < 3) { fprintf(stderr, "xdnd: protocol version %ld not supported\n", xdndEnter_version(evt)); return; } xdndSourceWindow= xdndEnter_sourceWindow(evt); dndGetTypeList(evt); if (xdndWillAccept) recordDragEvent(DragEnter, 1); } static void dndLeave(XClientMessageEvent *evt) { dprintf("dndLeave"); if (xdndWillAccept) recordDragEvent(DragLeave, 1); } static void dndPosition(XClientMessageEvent *evt) { dprintf("dndPosition"); if (xdndSourceWindow != xdndPosition_sourceWindow(evt)) { dprintf("dndPosition: wrong source window"); return; } { Window root; unsigned int x, y, w, h, b, d; XGetGeometry(stDisplay, stWindow, &root, &x, &y, &w, &h, &b, &d); mousePosition.x= xdndPosition_rootX(evt) - x; mousePosition.y= xdndPosition_rootY(evt) - y; } if (xdndWillAccept) { Atom action= xdndPosition_action(evt); dprintf(" action = %ld %s", action, XGetAtomName(stDisplay, action)); xdndWillAccept= ((action == XdndActionMove) | (action == XdndActionCopy)); } recordDragEvent(DragMove, 1); if (xdndWillAccept) { dprintf("accepting"); dndSendStatus(evt->window, 1, XdndActionCopy); } else /* won't accept */ { dprintf("not accepting"); dndSendStatus(evt->window, 0, 0); } } static void dndDrop(XClientMessageEvent *evt) { dprintf("dndDrop"); if (xdndSourceWindow != xdndDrop_sourceWindow(evt)) { fprintf(stderr, "dndDrop: wrong source window\n"); return; } if (xdndWillAccept) { Window owner; dprintf("converting selection"); if (!(owner= XGetSelectionOwner(stDisplay, XdndSelection))) { fprintf(stderr, "dndDrop: XGetSelectionOwner failed\n"); } else { XConvertSelection(stDisplay, XdndSelection, XdndTextUriList, XdndSelectionAtom, stWindow, CurrentTime); } if (uxDropFileCount) { int i; assert(uxDropFileNames); for (i= 0; i < uxDropFileCount; ++i) free(uxDropFileNames[i]); free(uxDropFileNames); uxDropFileCount= 0; uxDropFileNames= 0; } } else { dprintf("refusing selection -- finishing"); dndSendFinished(evt->window); dndLeave(evt); } } static void dndGetSelection(Window owner, Atom property) { unsigned long remaining; unsigned char *data= 0; Atom actual; int format; unsigned long count; if (Success != XGetWindowProperty(stDisplay, owner, property, 0, 65536, 1, AnyPropertyType, &actual, &format, &count, &remaining, &data)) fprintf(stderr, "dndGetSelection: XGetWindowProperty failed\n"); else if (remaining) /* a little violent perhaps */ fprintf(stderr, "dndGetSelection: XGetWindowProperty has more than 64K (why?)\n"); else { char *tokens= data; char *item= 0; while ((item= strtok(tokens, "\n\r"))) { dprintf("got filename <%s>", item); if (!strncmp(item, "file:", 5)) { if (uxDropFileCount) uxDropFileNames= (char **)xrealloc(uxDropFileNames, (uxDropFileCount + 1) * sizeof(char *)); else uxDropFileNames= (char **)xcalloc(1, sizeof(char *)); uxDropFileNames[uxDropFileCount++]= uri2string(item); } tokens= 0; } if (uxDropFileCount) recordDragEvent(DragDrop, uxDropFileCount); } XFree(data); } int dndHandleSelectionNotify(XSelectionEvent *evt) { if (evt->property == XdndSelectionAtom) { dndGetSelection(evt->requestor, evt->property); dndSendFinished(evt->requestor); dndLeave((XClientMessageEvent *)evt); return 1; } return 0; } int dndHandleClientMessage(XClientMessageEvent *evt) { int handled= 1; Atom type= evt->message_type; if (type == XdndEnter) dndEnter(evt); else if (type == XdndPosition) dndPosition(evt); else if (type == XdndDrop) dndDrop(evt); else if (type == XdndLeave) dndLeave(evt); else handled= 0; return handled; } void dndInitialise(void) { XdndAware= XInternAtom(stDisplay, "XdndAware", False); XdndSelection= XInternAtom(stDisplay, "XdndSelection", False); XdndEnter= XInternAtom(stDisplay, "XdndEnter", False); XdndLeave= XInternAtom(stDisplay, "XdndLeave", False); XdndPosition= XInternAtom(stDisplay, "XdndPosition", False); XdndDrop= XInternAtom(stDisplay, "XdndDrop", False); XdndFinished= XInternAtom(stDisplay, "XdndFinished", False); XdndStatus= XInternAtom(stDisplay, "XdndStatus", False); XdndActionCopy= XInternAtom(stDisplay, "XdndActionCopy", False); XdndActionMove= XInternAtom(stDisplay, "XdndActionMove", False); XdndTypeList= XInternAtom(stDisplay, "XdndTypeList", False); XdndTextUriList= XInternAtom(stDisplay, "text/uri-list", False); XdndSelectionAtom= XInternAtom(stDisplay, "XdndSqueakSelection", False); XChangeProperty (stDisplay, stParent, XdndAware, XA_ATOM, 32, PropModeReplace, (unsigned char *)&XdndVersion, 3); } #if (TEST_XDND) #define fail(why) do { fprintf(stderr, "%s\n", why); exit(1); } while (0) static void run(void) { for (;;) { XEvent evt; XNextEvent(stDisplay, &evt); switch (evt.type) { case MotionNotify: printf("MotionNotify\n"); break; case EnterNotify: printf("EnterNotify\n"); break; case LeaveNotify: printf("LeaveNotify\n"); break; case ButtonPress: printf("ButtonPress\n"); break; case ButtonRelease: printf("ButtonRelease\n"); break; case KeyPress: printf("KeyPress\n"); break; case KeyRelease: printf("KeyRelease\n"); break; case SelectionClear: printf("SelectionClear\n"); break; case SelectionRequest: printf("SelectionRequest\n"); break; case PropertyNotify: printf("PropertyNotify\n"); break; case Expose: printf("Expose\n"); break; case MapNotify: printf("MapNotify\n"); break; case UnmapNotify: printf("UnmapNotify\n"); break; case ConfigureNotify: printf("ConfigureNotify\n"); break; case MappingNotify: printf("MappingNotify\n"); break; case ClientMessage: dndHandleClientMessage(&evt.xclient); break; case SelectionNotify: dndHandleSelectionNotify(&evt.xselection); break; default: printf("unknown event type %d\n", evt.type); break; } } } int main() { stDisplay= XOpenDisplay(0); if (!stDisplay) fail("cannot open display"); dndInitialise(); { XSetWindowAttributes attributes; unsigned long valuemask= 0; attributes.event_mask= ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask | ExposureMask; valuemask |= CWEventMask; win= XCreateWindow(stDisplay, DefaultRootWindow(stDisplay), 100, 100, 100, 100, // geom 0, // border CopyFromParent, // depth CopyFromParent, // class CopyFromParent, // visual valuemask, &attributes); } if (!win) fail("cannot create window"); XChangeProperty (stDisplay, win, XdndAware, XA_ATOM, 32, PropModeReplace, (unsigned char *)&XdndVersion, 3); XMapWindow(stDisplay, stWindow); run(); XCloseDisplay(stDisplay); return 0; } #endif /* TEST_XDND */ Index: sqUnixX11.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm-display-X11/sqUnixX11.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** sqUnixX11.c 3 Apr 2004 10:31:18 -0000 1.14 --- sqUnixX11.c 3 Apr 2004 21:48:57 -0000 1.15 *************** *** 1,14 **** /* sqUnixX11.c -- support for display via the X Window System. * ! * Copyright (C) 1996-2003 Ian Piumarta and other authors/contributors ! * as listed elsewhere in this file. * All rights reserved. * - * You are NOT ALLOWED to distribute modified versions of this file - * under its original name. If you want to modify it and then make - * your modifications available publicly, rename the file first. - * * This file is part of Unix Squeak. * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --- 1,14 ---- /* sqUnixX11.c -- support for display via the X Window System. * ! * Copyright (C) 1996-2004 by Ian Piumarta and other authors/contributors ! * listed elsewhere in this file. * All rights reserved. * * This file is part of Unix Squeak. * + * You are NOT ALLOWED to distribute modified versions of this file + * under its original name. If you modify this file then you MUST + * rename it before making your modifications available publicly. + * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *************** *** 37,41 **** /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-04-02 14:44:31 by piumarta on emilia.local * * Support for more intelligent CLIPBOARD selection handling contributed by: --- 37,41 ---- /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-04-03 22:19:32 by piumarta on cartman.inria.fr * * Support for more intelligent CLIPBOARD selection handling contributed by: *************** *** 217,220 **** --- 217,222 ---- int headless= 0; + int useXdnd= 1; /* true if we should handle XDND protocol messages */ + typedef int (*x2sqKey_t)(XKeyEvent *xevt); *************** *** 1236,1239 **** --- 1238,1244 ---- + #include "sqUnixXdnd.c" + + static void handleEvent(XEvent *evt) { *************** *** 1377,1380 **** --- 1382,1395 ---- break; + case SelectionNotify: + if (useXdnd) + dndHandleSelectionNotify(&evt->xselection); + break; + + case ClientMessage: + if (useXdnd) + dndHandleClientMessage(&evt->xclient); + break; + case Expose: { *************** *** 1834,1837 **** --- 1849,1855 ---- attributes.backing_store= NotUseful; + if (useXdnd) + attributes.event_mask |= EnterWindowMask; + valuemask= CWEventMask | CWBackingStore | CWBorderPixel | CWBackPixel; parentValuemask= CWEventMask | CWBackingStore | CWBorderPixel; *************** *** 1978,1981 **** --- 1996,2002 ---- XInternAtoms(stDisplay, selectionAtomNames, SELECTION_ATOM_COUNT, False, selectionAtoms); + + if (useXdnd) + dndInitialise(); } *************** *** 4272,4275 **** --- 4293,4297 ---- printf(" -nointl disable international keyboard support\n"); printf(" -notitle disable the Squeak window title bar\n"); + printf(" -noxdnd disable X drag-and-drop protocol support\n"); printf(" -optmod <n> map Mod<n> to the Option key\n"); printf(" -swapbtn swap yellow (middle) and blue (right) buttons\n"); *************** *** 4299,4302 **** --- 4321,4325 ---- if (getenv("SQUEAK_NOINTL")) x2sqKey= x2sqKeyPlain; if (getenv("SQUEAK_NOTITLE")) noTitle= 1; + if (getenv("SQUEAK_NOXDND")) useXdnd= 0; if (getenv("SQUEAK_FULLSCREEN")) fullScreen= 1; if (getenv("SQUEAK_ICONIC")) iconified= 1; *************** *** 4330,4333 **** --- 4353,4357 ---- else if (!strcmp(arg, "-iconic")) iconified= 1; else if (!strcmp(arg, "-nointl")) x2sqKey= x2sqKeyPlain; + else if (!strcmp(arg, "-noxdnd")) useXdnd= 0; else if (argv[1]) /* option requires an argument */ { |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:51:11
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5170 Modified Files: acinclude.m4 Log Message: Quote all names in AC_DEFUN()s. Index: acinclude.m4 =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/acinclude.m4,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** acinclude.m4 1 Sep 2003 08:31:47 -0000 1.7 --- acinclude.m4 3 Apr 2004 10:38:51 -0000 1.8 *************** *** 36,42 **** # Author: Ian...@IN... # ! # Last edited: 2003-08-08 15:34:41 by piumarta on emilia.inria.fr ! AC_DEFUN(AC_CHECK_VMM_DIR,[ AC_MSG_CHECKING([sanity of VMMaker src directory]) vmmcheck () { --- 36,42 ---- # Author: Ian...@IN... # ! # Last edited: 2004-04-02 15:00:23 by piumarta on emilia.local ! AC_DEFUN([AC_CHECK_VMM_DIR],[ AC_MSG_CHECKING([sanity of VMMaker src directory]) vmmcheck () { *************** *** 58,62 **** ! AC_DEFUN(AC_VM_VERSION,[ VM_MAJOR=$1 VM_MINOR=$2 --- 58,62 ---- ! AC_DEFUN([AC_VM_VERSION],[ VM_MAJOR=$1 VM_MINOR=$2 *************** *** 69,73 **** ! AC_DEFUN(AC_CHECK_VERSION,[ gendir="${vmmdir}/vm" version=`${cfgdir}/version ${gendir}/interp.c` --- 69,73 ---- ! AC_DEFUN([AC_CHECK_VERSION],[ gendir="${vmmdir}/vm" version=`${cfgdir}/version ${gendir}/interp.c` *************** *** 80,84 **** AC_SUBST(LD) ! AC_DEFUN(AC_REQUIRE_SIZEOF,[ AC_MSG_CHECKING("size of $1") AC_TRY_RUN([#include <sys/types.h> --- 80,84 ---- AC_SUBST(LD) ! AC_DEFUN([AC_REQUIRE_SIZEOF],[ AC_MSG_CHECKING("size of $1") AC_TRY_RUN([#include <sys/types.h> *************** *** 91,95 **** # NOTE: `long long' is 64 bits in ANSI C99 [ISO/IEC 9899:1999 (E)]. ! AC_DEFUN(AC_CHECK_INT64_T,[ AC_CACHE_CHECK([for 64-bit integer type],ac_cv_int64_t, AC_TRY_RUN([int main(){return(sizeof(long) == 8)?0:1;}], --- 91,95 ---- # NOTE: `long long' is 64 bits in ANSI C99 [ISO/IEC 9899:1999 (E)]. ! AC_DEFUN([AC_CHECK_INT64_T],[ AC_CACHE_CHECK([for 64-bit integer type],ac_cv_int64_t, AC_TRY_RUN([int main(){return(sizeof(long) == 8)?0:1;}], *************** *** 105,109 **** ! AC_DEFUN(AC_NEED_SUNOS_H, [case "$host" in *-sunos*) AC_DEFINE(NEED_SUNOS_H, 1) --- 105,109 ---- ! AC_DEFUN([AC_NEED_SUNOS_H], [case "$host" in *-sunos*) AC_DEFINE(NEED_SUNOS_H, 1) *************** *** 111,120 **** ! AC_DEFUN(AC_PROG_CC_WALL, [AC_PROG_CC test "$GCC" = yes && WFLAGS="-Wall -Wno-unknown-pragmas" AC_SUBST(WFLAGS)]) ! AC_DEFUN(AC_GNU_OPT, [AC_MSG_CHECKING([for $host_cpu optimization flags]) ac_optflags="no" --- 111,120 ---- ! AC_DEFUN([AC_PROG_CC_WALL], [AC_PROG_CC test "$GCC" = yes && WFLAGS="-Wall -Wno-unknown-pragmas" AC_SUBST(WFLAGS)]) ! AC_DEFUN([AC_GNU_OPT], [AC_MSG_CHECKING([for $host_cpu optimization flags]) ac_optflags="no" *************** *** 136,140 **** fi]) ! AC_DEFUN(AC_GNU_INTERP, [INTERP="interp" AC_SUBST(INTERP) --- 136,140 ---- fi]) ! AC_DEFUN([AC_GNU_INTERP], [INTERP="interp" AC_SUBST(INTERP) *************** *** 164,168 **** fi]) ! AC_DEFUN(AC_PROG_AS_GNU, [AC_CHECK_PROG(AS,as,as) AC_MSG_CHECKING(for GNU as) --- 164,168 ---- fi]) ! AC_DEFUN([AC_PROG_AS_GNU], [AC_CHECK_PROG(AS,as,as) AC_MSG_CHECKING(for GNU as) *************** *** 176,180 **** AC_MSG_RESULT($GAS)]) ! AC_DEFUN(AC_CHECK_ATEXIT, [AC_CACHE_CHECK([for atexit or on_exit], ac_cv_atexit, AC_TRY_COMPILE([#include <stdlib.h>],[atexit(0);], ac_cv_atexit="atexit", --- 176,180 ---- AC_MSG_RESULT($GAS)]) ! AC_DEFUN([AC_CHECK_ATEXIT], [AC_CACHE_CHECK([for atexit or on_exit], ac_cv_atexit, AC_TRY_COMPILE([#include <stdlib.h>],[atexit(0);], ac_cv_atexit="atexit", *************** *** 185,189 **** fi]) ! AC_DEFUN(AC_CHECK_SOCKLEN_T, [AC_CACHE_CHECK([for socklen_t in sys/socket.h], ac_cv_socklen_t, AC_TRY_COMPILE([#include <sys/socket.h>],[sizeof(socklen_t);], --- 185,189 ---- fi]) ! AC_DEFUN([AC_CHECK_SOCKLEN_T], [AC_CACHE_CHECK([for socklen_t in sys/socket.h], ac_cv_socklen_t, AC_TRY_COMPILE([#include <sys/socket.h>],[sizeof(socklen_t);], *************** *** 191,195 **** test "$ac_cv_socklen_t" != "yes" && AC_DEFINE(socklen_t, int)]) ! AC_DEFUN(AC_CHECK_TZSET, [AC_CACHE_CHECK([for tzset], ac_cv_tzset, AC_TRY_COMPILE([#include <time.h>],[tzet();], --- 191,195 ---- test "$ac_cv_socklen_t" != "yes" && AC_DEFINE(socklen_t, int)]) ! AC_DEFUN([AC_CHECK_TZSET], [AC_CACHE_CHECK([for tzset], ac_cv_tzset, AC_TRY_COMPILE([#include <time.h>],[tzet();], *************** *** 197,201 **** test "$ac_cv_tzset" != "no" && AC_DEFINE(HAVE_TZSET)]) ! AC_DEFUN(AC_CHECK_GMTOFF, [AC_CACHE_CHECK([for gmtoff in struct tm], ac_cv_tm_gmtoff, AC_TRY_COMPILE([#include <time.h>],[struct tm tm; tm.tm_gmtoff;], --- 197,201 ---- test "$ac_cv_tzset" != "no" && AC_DEFINE(HAVE_TZSET)]) ! AC_DEFUN([AC_CHECK_GMTOFF], [AC_CACHE_CHECK([for gmtoff in struct tm], ac_cv_tm_gmtoff, AC_TRY_COMPILE([#include <time.h>],[struct tm tm; tm.tm_gmtoff;], *************** *** 203,207 **** test "$ac_cv_tm_gmtoff" != "no" && AC_DEFINE(HAVE_TM_GMTOFF)]) ! AC_DEFUN(AC_CHECK_TIMEZONE, [AC_CACHE_CHECK([for timezone and daylight variables], ac_cv_timezone, AC_TRY_COMPILE([extern long timezone; extern int daylight;],[timezone;daylight;], --- 203,207 ---- test "$ac_cv_tm_gmtoff" != "no" && AC_DEFINE(HAVE_TM_GMTOFF)]) ! AC_DEFUN([AC_CHECK_TIMEZONE], [AC_CACHE_CHECK([for timezone and daylight variables], ac_cv_timezone, AC_TRY_COMPILE([extern long timezone; extern int daylight;],[timezone;daylight;], *************** *** 209,213 **** test "$ac_cv_timezone" != "no" && AC_DEFINE(HAVE_TIMEZONE)]) ! AC_DEFUN(AC_CHECK_GETHOSTNAME, [AC_CACHE_CHECK([for gethostname in unistd.h], ac_cv_gethostname_p, AC_TRY_COMPILE([#include <unistd.h>],[return (int)gethostname;], --- 209,213 ---- test "$ac_cv_timezone" != "no" && AC_DEFINE(HAVE_TIMEZONE)]) ! AC_DEFUN([AC_CHECK_GETHOSTNAME], [AC_CACHE_CHECK([for gethostname in unistd.h], ac_cv_gethostname_p, AC_TRY_COMPILE([#include <unistd.h>],[return (int)gethostname;], *************** *** 227,231 **** ! AC_DEFUN(AC_C_BYTEORDER, [AC_C_BIGENDIAN if test $ac_cv_c_bigendian != yes --- 227,231 ---- ! AC_DEFUN([AC_C_BYTEORDER], [AC_C_BIGENDIAN if test $ac_cv_c_bigendian != yes *************** *** 234,238 **** ! AC_DEFUN(AC_C_DOUBLE_ALIGNMENT, [AC_CACHE_CHECK([whether unaligned access to doubles is ok], ac_cv_double_align, AC_TRY_RUN([f(int i){*(double *)i=*(double *)(i+4);} --- 234,238 ---- ! AC_DEFUN([AC_C_DOUBLE_ALIGNMENT], [AC_CACHE_CHECK([whether unaligned access to doubles is ok], ac_cv_double_align, AC_TRY_RUN([f(int i){*(double *)i=*(double *)(i+4);} *************** *** 241,245 **** test "$ac_cv_double_align" = "no" && AC_DEFINE(DOUBLE_WORD_ALIGNMENT)]) ! AC_DEFUN(AC_C_DOUBLE_ORDER, [AC_CACHE_CHECK([whether doubles are stored in Squeak order], ac_cv_double_order, AC_TRY_RUN([union { double d; int i[[2]]; } d; --- 241,245 ---- test "$ac_cv_double_align" = "no" && AC_DEFINE(DOUBLE_WORD_ALIGNMENT)]) ! AC_DEFUN([AC_C_DOUBLE_ORDER], [AC_CACHE_CHECK([whether doubles are stored in Squeak order], ac_cv_double_order, AC_TRY_RUN([union { double d; int i[[2]]; } d; *************** *** 250,254 **** # this assumes that libtool has already been configured and built -- # if not then err on the side of conservatism. ! AC_DEFUN(AC_MODULE_LIB_PREFIX, [AC_CACHE_CHECK([for prefix to use for loadable modules], ac_cv_module_prefix, if test -x ./libtool && --- 250,254 ---- # this assumes that libtool has already been configured and built -- # if not then err on the side of conservatism. ! AC_DEFUN([AC_MODULE_LIB_PREFIX], [AC_CACHE_CHECK([for prefix to use for loadable modules], ac_cv_module_prefix, if test -x ./libtool && *************** *** 260,264 **** test "$ac_cv_module_prefix" = lib && mkfrags_lib_prefix=lib]) ! AC_DEFUN(AC_64BIT_ARCH, [AC_MSG_CHECKING(for compiler flags to force 32-bit addresses) case $host in --- 260,264 ---- test "$ac_cv_module_prefix" = lib && mkfrags_lib_prefix=lib]) ! AC_DEFUN([AC_64BIT_ARCH], [AC_MSG_CHECKING(for compiler flags to force 32-bit addresses) case $host in *************** *** 276,295 **** # AC_PLUGIN_SUBST(varname,value) ! AC_DEFUN(AC_PLUGIN_DISABLE_PLUGIN,[ AC_MSG_RESULT([******** disabling $1]) disabled_plugins="${disabled_plugins} $1"]) ! AC_DEFUN(AC_PLUGIN_DISABLE,[ AC_PLUGIN_DISABLE_PLUGIN(${plugin})]) ! AC_DEFUN(AC_PLUGIN_USE_LIB,[ plibs="${plibs} $1"]) ! AC_DEFUN(AC_PLUGIN_DEFINE_UNQUOTED,[ echo 's%[\['$1'\]]%'$2'%g' >> ${plugin}.sub]) # AC_PLUGIN_SEARCH_LIBS(function,libs...) ! AC_DEFUN(AC_PLUGIN_SEARCH_LIBS,[ AC_SEARCH_LIBS($1,$2,, AC_MSG_RESULT([******** disabling ${plugin} due to missing libraries]) --- 276,295 ---- # AC_PLUGIN_SUBST(varname,value) ! AC_DEFUN([AC_PLUGIN_DISABLE_PLUGIN],[ AC_MSG_RESULT([******** disabling $1]) disabled_plugins="${disabled_plugins} $1"]) ! AC_DEFUN([AC_PLUGIN_DISABLE],[ AC_PLUGIN_DISABLE_PLUGIN(${plugin})]) ! AC_DEFUN([AC_PLUGIN_USE_LIB],[ plibs="${plibs} $1"]) ! AC_DEFUN([AC_PLUGIN_DEFINE_UNQUOTED],[ echo 's%[\['$1'\]]%'$2'%g' >> ${plugin}.sub]) # AC_PLUGIN_SEARCH_LIBS(function,libs...) ! AC_DEFUN([AC_PLUGIN_SEARCH_LIBS],[ AC_SEARCH_LIBS($1,$2,, AC_MSG_RESULT([******** disabling ${plugin} due to missing libraries]) *************** *** 298,302 **** # AC_PLUGIN_CHECK_LIB(lib,func,ok,bad) ! AC_DEFUN(AC_PLUGIN_CHECK_LIB,[ AC_CHECK_LIB($1,$2, plibs="${plibs} $1", --- 298,302 ---- # AC_PLUGIN_CHECK_LIB(lib,func,ok,bad) ! AC_DEFUN([AC_PLUGIN_CHECK_LIB],[ AC_CHECK_LIB($1,$2, plibs="${plibs} $1", |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:49:18
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4842 Modified Files: configure.ac Log Message: Advance version to 3.7b-2. Index: configure.ac =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/configure.ac,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** configure.ac 2 Apr 2004 00:54:06 -0000 1.15 --- configure.ac 3 Apr 2004 10:36:59 -0000 1.16 *************** *** 38,46 **** # Author: Ian...@IN... # ! # Last edited: 2004-04-01 14:57:04 by piumarta on emilia.local AC_INIT([config.h.in]) ! AC_VM_VERSION(3,6,3, 3,6,5429) topdir=`cd ${srcdir}/../../..; pwd` --- 38,46 ---- # Author: Ian...@IN... # ! # Last edited: 2004-04-03 11:40:24 by piumarta on emilia.local AC_INIT([config.h.in]) ! AC_VM_VERSION(3,7b,2, 3,7b,5868) topdir=`cd ${srcdir}/../../..; pwd` |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:48:01
|
Update of /cvsroot/squeak/squeak/platforms/unix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4629 Modified Files: ChangeLog Log Message: Changes for 3.6 "final" since 3.4. Latest changes for 3.7b-2. Index: ChangeLog =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/ChangeLog,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ChangeLog 16 Sep 2003 07:59:42 -0000 1.19 --- ChangeLog 3 Apr 2004 10:35:37 -0000 1.20 *************** *** 1,2 **** --- 1,90 ---- + 2004-04-03 Ian Piumarta <ian...@in...> + + * platforms/unix/vm/dlfcn-dyld.c (dlsym): Don't automatically + return on error from NSIsSymbolNameDefinedInImage(). + (dlinit): Install error handlers for multiply-defined symbols to + choose definition from most recently loaded plugin. + + 2004-04-02 Ian Piumarta <ian...@in...> + + * platforms/unix/vm-sound-NAS/Makefile.inc (PLIBS): Add -laudio to + the link command. + + * platforms/unix/config/acinclude.m4: Quote all macro names in + AC_DEFUN()s. + + * platforms/unix/vm/sqGnu.h: Use __asm__() instead of asm(). + + * platforms/unix/vm-display-fbdev/sqUnixFBDev.c (DEBUG): Only + define if not already defined. + + * platforms/unix/vm-display-X11/sqUnixX11.c: Remove unused globals + 'current' and 'allRenderer'. + (sendSelection): Clean up targets[] initialisation. + (sendSelection): Clean up list[] initialisation. + (getSelectionFrom): Remove unused variable 'xreturn'. + (display_ioGLcreateRenderer): Remove unused variable 'index'. + (printVisual): Reset gl error flag at end. + (display_winOpen): Get saved window size only if debugging. + (display_printUsage): Add new flag '-glxdebug'. + (display_parseArgument): Add new flag '-glxdebug'. + + * platforms/unix/vm/sqUnixMain.c (ioRelinquishProcessorForMicroseconds): + Calculate relinquish time only if a delay is pending. + + * platforms/unix/vm/sqUnixExternalPrims.c (ioFindExternalFunctionIn): + Squash error messages for shutdownModule when sqIgnorePluginErrors + is set. + + * platforms/unix/plugins/SocketPlugin/sqUnixSocket.c: Additional + checks for null privateSocketStruct. + + ---------------------------------------------------------------- + + 2004-04-02 Ian Piumarta <ian...@in...> + + * 3.6-3 Released. + + 2004-04-02 Ian Piumarta <ian...@in...> + + * vm-sound-MacOSX/sqUnixSoundMacOSX.c: Substantial rewrite for OS + 10.3. + + * vm-display-fbdev/sqUnixFBDevMousePS2.c: Increase all timeouts to + 100ms. + + * vm-display-fbdev/sqUnixFBDevKeyboard.c: Add diagnostic code. + + * vm-display-fbdev/sqUnixFBDevFramebuffer.c: Use accessors for all + struct members. Fix problems when xres * bytesPerPix != bytes per + line. + + * vm-display-fbdev/sqUnixFBDev.c: Add diagnostic code. + + * vm-display-X11/sqUnixX11.c (initCharmap): Fix prototype. + (x2sqKeyInput): Print more useful diagnostic on setlocale() + failure. + + * vm-display-X11/Makefile.in (XINCLUDES): Include + /usr/X11R6/include explicitly. + + * vm/sqUnixMain.c: Add runInterpreter (for display modules to + inhibit entry to interpreter loop). Reinstate -nomixer as a + global option. + + * vm/sqUnixCharConv.c: Use Solaris encoding names on Sparc. + + * vm/glibc.h: Force all ctype operations to functions. Alias + realpath() to glibc version 2.0. + + * plugins/SocketPlugin/sqUnixSocket.c (sqSocketConnectionStatus): + Don't check for connection closed by peer. + + 2003-10-28 Ian Piumarta <ian...@in...> + + * platforms/unix/plugins/FilePlugin/sqUnixFile.c: Use ctime for + creationDate and mtime for modificationDate (consistent with 'ls + -l'). + 2003-09-16 Ian Piumarta <ian...@in...> |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:46:23
|
Update of /cvsroot/squeak/squeak/platforms/unix/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4390 Added Files: 3.6-3.RELEASE_NOTES Log Message: Release notes for 3.6 "final". --- NEW FILE: 3.6-3.RELEASE_NOTES --- 3.6-3 released on 2004-04-03. This release finalises the long series of 3.6 beta and gamma releases and includes significant changes in the VM since 3.4. It should be compatible with all image versions. Changes since 3.4-2: VM: Substantial rewrite of Mac OS X sound code for OS 10.3 (Panther). Better scroll wheel and 3-button mouse behaviour on OS X. Improved dock icon behaviour on OSX. New icons for OSX (thanks to Bert Freudenberg). Improvements to character set conversion on Solaris. Date/time reported on files now consistent with output from "ls". New dead key support for X11 (activated if LC_CTYPE/LC_ALL set) New option "-nointl" turns off dead key support in X11. Various OpenGL fixes. Improved timing for Delays. Copy/paste compatibility problems with Qt fixed (thanks to Ned Konz). Display/sound drivers are now dynamically loaded (and can be selected) at startup. New display driver "fbdev" for running on the Linux console. Plugins: New OSProcessPlugin from Dave Lewis. Support for new Socket primitive listenOn:backlogSize:interface:. Problems with plugin and shared library searching fixed. Build: Mac OS X dependency on libiconv removed. Dependencies on glibc2.3 in the 386 GNU/Linux version removed. RPMs have "root.bin" ownership on everything. Please report bugs to: ian...@in... |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:45:33
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4219 Modified Files: sqUnixFBDevKeyboard.c Log Message: Print more detailed diagnostics when debugging. Index: sqUnixFBDevKeyboard.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev/sqUnixFBDevKeyboard.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** sqUnixFBDevKeyboard.c 22 Aug 2003 17:07:15 -0000 1.3 --- sqUnixFBDevKeyboard.c 3 Apr 2004 10:33:14 -0000 1.4 *************** *** 80,84 **** if (kstate & (1 << KG_ALT)) modifierState |= CommandKeyBit; if (kstate & (1 << KG_ALTGR)) modifierState |= OptionKeyBit; ! dprintf("state %2d %02x mod %2d %02x\n", kstate, modifierState); } --- 80,84 ---- if (kstate & (1 << KG_ALT)) modifierState |= CommandKeyBit; if (kstate & (1 << KG_ALTGR)) modifierState |= OptionKeyBit; ! dprintf("state %02x mod %02x\n", kstate, modifierState); } *************** *** 104,111 **** static void kb_post(_self, int code, int up) { - dprintf("KEY %3d %02x %c %s state %02x mod %02x\n", - code, code, ((code > 32) && (code < 127)) ? code : ' ', - up ? "UP" : "DOWN", self->state, modifierState); - if (code == 127) code= 8; //xxx OPTION!!! self->callback(code, up, modifierState); --- 104,107 ---- *************** *** 119,126 **** --- 115,126 ---- int rep= (!up) && (prev == code); prev= up ? 0 : code; + + dprintf("+++ code %d up %d prev %d rep %d map %p\n", code, up, prev, rep, keyMap); + if (keyMap) { int sym= keyMap[code]; int type= KTYP(sym); + dprintf("+++ sym %x (%02x) type %d\n", sym, sym & 255, type); sym &= 255; if (type >= 0xf0) // shiftable *************** *** 128,131 **** --- 128,132 ---- if (KT_LETTER == type) // lockable type= KT_LATIN; + dprintf("+++ type %d\n", type); switch (type) { *************** *** 182,190 **** static int kb_handleEvents(_self) { while (fdReadable(self->fd, 0)) { unsigned char buf; if (1 == read(self->fd, &buf, 1)) ! kb_translate(self, buf & 127, (buf >> 7) & 1); } return 0; --- 183,195 ---- static int kb_handleEvents(_self) { + dprintf("+++ kb_handleEvents\n"); while (fdReadable(self->fd, 0)) { unsigned char buf; if (1 == read(self->fd, &buf, 1)) ! { ! dprintf("+++ kb_translate %3d %02x + %d\n", buf & 127, buf & 127, (buf >> 7) & 1); ! kb_translate(self, buf & 127, (buf >> 7) & 1); ! } } return 0; |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:44:47
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4114 Modified Files: sqUnixFBDev.c Log Message: Don't redefine DEBUG if already defined. Index: sqUnixFBDev.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm-display-fbdev/sqUnixFBDev.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** sqUnixFBDev.c 2 Apr 2004 01:09:37 -0000 1.4 --- sqUnixFBDev.c 3 Apr 2004 10:32:20 -0000 1.5 *************** *** 3,7 **** * Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2003-08-22 16:35:25 by piumarta on emilia.inria.fr */ --- 3,7 ---- * Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-04-02 14:46:52 by piumarta on emilia.local */ *************** *** 69,73 **** #include <assert.h> ! #define DEBUG 0 --- 69,75 ---- #include <assert.h> ! #if !defined(DEBUG) ! # define DEBUG 0 ! #endif |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:43:36
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-display-X11 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3874 Modified Files: sqUnixX11.c Log Message: Add option '-glxdebug'. Various trivial cleanups in aggregate initialisation. Index: sqUnixX11.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm-display-X11/sqUnixX11.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** sqUnixX11.c 2 Apr 2004 01:08:32 -0000 1.13 --- sqUnixX11.c 3 Apr 2004 10:31:18 -0000 1.14 *************** *** 37,41 **** /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-01-30 02:53:20 by piumarta on emilia.local * * Support for more intelligent CLIPBOARD selection handling contributed by: --- 37,41 ---- /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-04-02 14:44:31 by piumarta on emilia.local * * Support for more intelligent CLIPBOARD selection handling contributed by: *************** *** 608,615 **** * Qt/KDE apps) don't accept pastes from Squeak. Of course, they'll use * UTF8_STRING anyway... */ ! Atom targets[]= { ! xaTargets, xaMultiple, xaTimestamp, /* required by ICCCM */ ! xaUTF8String, XA_STRING, xaCompoundText ! }; xError= XChangeProperty(requestEv->display, requestEv->requestor, --- 608,618 ---- * Qt/KDE apps) don't accept pastes from Squeak. Of course, they'll use * UTF8_STRING anyway... */ ! Atom targets[6]; ! targets[0]= xaTargets; ! targets[1]= xaMultiple; ! targets[2]= xaTimestamp; /* required by ICCCM */ ! targets[3]= xaUTF8String; ! targets[4]= XA_STRING; ! targets[5]= xaCompoundText; xError= XChangeProperty(requestEv->display, requestEv->requestor, *************** *** 622,627 **** int len= strlen(stPrimarySelection); char *buf= (char *)malloc(len * 3 + 1); - char *list[]= { buf, NULL }; XTextProperty textProperty; /* convert our locale text to CTEXT */ --- 625,633 ---- int len= strlen(stPrimarySelection); char *buf= (char *)malloc(len * 3 + 1); XTextProperty textProperty; + char *list[2]; + + list[0]= buf; + list[1]= NULL; /* convert our locale text to CTEXT */ *************** *** 678,682 **** else { ! int i; for (i= 0; i < numberOfItems; i+= 2) { --- 684,688 ---- else { ! unsigned long i; for (i= 0; i < numberOfItems; i+= 2) { *************** *** 766,770 **** XEvent ev; fd_set fdMask; - int xreturn; Time timestamp= getXTimestamp(); --- 772,775 ---- *************** *** 862,866 **** fprintf(stderr, "getprop type "); printAtomName(type); ! fprintf(stderr, " format %d nitems %d bytesAfter %d\ndata=", format, nitems, bytesAfter); dumpSelectionData(data, nitems, 1); --- 867,871 ---- fprintf(stderr, "getprop type "); printAtomName(type); ! fprintf(stderr, " format %d nitems %ld bytesAfter %ld\ndata=", format, nitems, bytesAfter); dumpSelectionData(data, nitems, 1); *************** *** 3979,3985 **** static void listVisuals(); - static glRenderer *current= NULL; - static glRenderer allRenderer[MAX_RENDERER]; - static int visualAttributes[]= { GLX_STENCIL_SIZE, 0, /* filled in later - must be first item! */ --- 3984,3987 ---- *************** *** 4009,4013 **** { XVisualInfo* visinfo= 0; - int index= -1; if (flags & B3D_STENCIL_BUFFER) --- 4011,4014 ---- *************** *** 4160,4166 **** if (slow != GLX_SLOW_CONFIG) ! DPRINTF(3, (fp,"===> OpenGL visual\r")) else ! DPRINTF(3, (fp,"---> slow OpenGL visual\r")); DPRINTF(3, (fp,"rgbaBits = %i+%i+%i+%i\r", red, green, blue, alpha)); --- 4161,4167 ---- if (slow != GLX_SLOW_CONFIG) ! { DPRINTF(3, (fp,"===> OpenGL visual\r")) } else ! { DPRINTF(3, (fp,"---> slow OpenGL visual\r")) } DPRINTF(3, (fp,"rgbaBits = %i+%i+%i+%i\r", red, green, blue, alpha)); *************** *** 4168,4171 **** --- 4169,4173 ---- DPRINTF(3, (fp,"depthBits = %i\r", depth)); } + glGetError(); /* reset error flag */ } *************** *** 4230,4235 **** static void display_winOpen(void) { - int sws= getSavedWindowSize(); #if defined(DEBUG_WINDOW) fprintf(stderr, "saved window size is %d %d\n", sws >> 16, sws & 0xffff); #endif --- 4232,4237 ---- static void display_winOpen(void) { #if defined(DEBUG_WINDOW) + int sws= getSavedWindowSize(); fprintf(stderr, "saved window size is %d %d\n", sws >> 16, sws & 0xffff); #endif *************** *** 4274,4277 **** --- 4276,4282 ---- printf(" -xasync don't serialize display updates\n"); printf(" -xshm use X shared memory extension\n"); + #if (USE_X11_GLX) + printf(" -glxdebug <n> set GLX debug verbosity level to <n>\n"); + #endif } *************** *** 4333,4337 **** else if (!strcmp(arg, "-browserWindow")) { ! sscanf(argv[1], "%li", &browserWindow); if (browserWindow == 0) { --- 4338,4342 ---- else if (!strcmp(arg, "-browserWindow")) { ! sscanf(argv[1], "%lu", (unsigned long *)&browserWindow); if (browserWindow == 0) { *************** *** 4360,4363 **** --- 4365,4374 ---- return 3; } + # if (USE_X11_GLX) + else if (!strcmp(arg, "-glxdebug")) + { + sscanf(argv[1], "%d", &verboseLevel); + } + # endif else n= 0; /* not recognised */ |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:42:06
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3369 Modified Files: dlfcn-dyld.c Log Message: Install link edit error handlers. Explicitly resolve multiply-defined symbols to the most recently loaded image. Disable unhandled return for NSLookupSymbolInImage(). Index: dlfcn-dyld.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/dlfcn-dyld.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dlfcn-dyld.c 1 Sep 2003 08:31:53 -0000 1.6 --- dlfcn-dyld.c 3 Apr 2004 10:29:43 -0000 1.7 *************** *** 36,40 **** * directory `platforms/unix/doc' before proceeding with any such use. * ! * Last edited: 2003-08-07 08:53:27 by piumarta on emilia.inria.fr */ --- 36,40 ---- * directory `platforms/unix/doc' before proceeding with any such use. * ! * Last edited: 2004-04-03 11:33:44 by piumarta on emilia.local */ *************** *** 73,76 **** --- 73,110 ---- + static void dlUndefined(const char *symbol) + { + fprintf(stderr, "dyld: undefined symbol: %s\n", symbol); + } + + static NSModule dlMultiple(NSSymbol s, NSModule oldModule, NSModule newModule) + { + dprintf((stderr, "dyld: %s: %s previously defined in %s, new definition in %s\n", + NSNameOfSymbol(s), NSNameOfModule(oldModule), NSNameOfModule(newModule))); + return newModule; + } + + static void dlLinkEdit(NSLinkEditErrors errorClass, int errorNumber, + const char *fileName, const char *errorString) + + { + fprintf(stderr, "dyld: %s: %s\n", fileName, errorString); + } + + static NSLinkEditErrorHandlers errorHandlers= + { + dlUndefined, + dlMultiple, + dlLinkEdit + }; + + static void dlinit(void) + { + NSInstallLinkEditErrorHandlers(&errorHandlers); + } + + static int dlInitialised= 0; + + static void *dlopen(const char *path, int mode) { *************** *** 78,81 **** --- 112,121 ---- NSObjectFileImage ofi= 0; + if (!dlInitialised) + { + dlinit(); + dlInitialised= 1; + } + if (!path) return DL_APP_CONTEXT; *************** *** 98,101 **** --- 138,143 ---- dlSetError("could not load shared object: %s", path); + dprintf((stderr, "dlopen: %s => %d\n", path, (int)handle)); + return handle; } *************** *** 126,138 **** { if (( (MH_MAGIC == ((struct mach_header *)handle)->magic)) /* ppc */ ! || (MH_CIGAM == ((struct mach_header *)handle)->magic)) /* 386 */ { if (NSIsSymbolNameDefinedInImage((struct mach_header *)handle, _symbol)) ! nsSymbol= NSLookupSymbolInImage ! ((struct mach_header *)handle, ! _symbol, ! NSLOOKUPSYMBOLINIMAGE_OPTION_BIND ! | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR); ! dprintf((stderr, "dlsym: bundle (image) lookup returned %p\n", nsSymbol)); } else --- 168,184 ---- { if (( (MH_MAGIC == ((struct mach_header *)handle)->magic)) /* ppc */ ! || (MH_CIGAM == ((struct mach_header *)handle)->magic)) /* 386 */ { if (NSIsSymbolNameDefinedInImage((struct mach_header *)handle, _symbol)) ! { ! nsSymbol= NSLookupSymbolInImage ! ((struct mach_header *)handle, ! _symbol, ! NSLOOKUPSYMBOLINIMAGE_OPTION_BIND ! /*| NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR*/); ! dprintf((stderr, "dlsym: bundle (image) lookup returned %p\n", nsSymbol)); ! } ! else ! dprintf((stderr, "dlsym: bundle (image) symbol not defined\n")); } else |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:39:16
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm-sound-NAS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3213 Added Files: Makefile.inc Log Message: Plugin depends explicitly on libaudio. |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:37:44
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2954 Modified Files: sqUnixExternalPrims.c Log Message: Don't complain about shutdownModule not being defined. Index: sqUnixExternalPrims.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/sqUnixExternalPrims.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** sqUnixExternalPrims.c 3 Sep 2003 18:08:23 -0000 1.11 --- sqUnixExternalPrims.c 3 Apr 2004 10:25:25 -0000 1.12 *************** *** 37,41 **** /* Author: Ian...@IN... * ! * Last edited: 2003-09-03 18:06:25 by piumarta on emilia.inria.fr */ --- 37,41 ---- /* Author: Ian...@IN... * ! * Last edited: 2004-04-03 11:26:58 by piumarta on emilia.local */ *************** *** 305,309 **** int ioFindExternalFunctionIn(char *lookupName, int moduleHandle) { ! void *fn= dlsym((void *)moduleHandle, lookupName); dprintf((stderr, "ioFindExternalFunctionIn(%s, %d)\n", --- 305,318 ---- int ioFindExternalFunctionIn(char *lookupName, int moduleHandle) { ! char buf[256]; ! void *fn; ! ! #ifdef HAVE_SNPRINTF ! snprintf(buf, sizeof(buf), "%s", lookupName); ! #else ! sprintf(buf, "%s", lookupName); ! #endif ! ! fn= dlsym((void *)moduleHandle, buf); dprintf((stderr, "ioFindExternalFunctionIn(%s, %d)\n", *************** *** 312,315 **** --- 321,325 ---- if ((fn == 0) && (!sqIgnorePluginErrors) && strcmp(lookupName, "initialiseModule") + && strcmp(lookupName, "shutdownModule") && strcmp(lookupName, "setInterpreter") && strcmp(lookupName, "getModuleName")) |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:36:29
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2777 Modified Files: sqUnixMain.c Log Message: Avoid calling ioMSecs() when no timer is pending. Index: sqUnixMain.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/sqUnixMain.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** sqUnixMain.c 2 Apr 2004 01:04:58 -0000 1.14 --- sqUnixMain.c 3 Apr 2004 10:24:11 -0000 1.15 *************** *** 37,41 **** /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2003-11-23 13:23:43 by piumarta on emilia.local */ --- 37,41 ---- /* Author: Ian Piumarta <ian...@in...> * ! * Last edited: 2004-04-02 14:30:12 by piumarta on emilia.local */ *************** *** 454,463 **** { int nwt= getNextWakeupTick(); - int now= (ioMSecs() & 0x1fffffff); int ms= 0; ! if (nwt <= now) ! ms= (nwt ? 0 : (1000/60)); ! else ! ms= nwt - now; if (ms < (1000/60)) /* < 1 timeslice? */ { --- 454,465 ---- { int nwt= getNextWakeupTick(); int ms= 0; ! ! if (nwt) ! { ! int now= (ioMSecs() & 0x1fffffff); ! ms= ((nwt <= now) ? (1000/60) : nwt - now); ! } ! if (ms < (1000/60)) /* < 1 timeslice? */ { |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:35:28
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2585 Modified Files: sqGnu.h Log Message: Use __asm__() instead of asm(). Index: sqGnu.h =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/sqGnu.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** sqGnu.h 16 Sep 2003 07:55:58 -0000 1.8 --- sqGnu.h 3 Apr 2004 10:23:11 -0000 1.9 *************** *** 37,41 **** /* Author: Ian...@in... * ! * Last edited: 2003-09-10 06:01:29 by piumarta on emilia.inria.fr * * NOTES: --- 37,41 ---- /* Author: Ian...@in... * ! * Last edited: 2004-04-02 14:51:09 by piumarta on emilia.local * * NOTES: *************** *** 172,194 **** */ #if defined(__mips__) ! # define IP_REG asm("$16") ! # define SP_REG asm("$17") ! # define CB_REG asm("$18") #endif #if defined(__sparc__) ! # define IP_REG asm("%l0") ! # define SP_REG asm("%l1") ! # define CB_REG asm("%l2") #endif #if defined(__alpha__) ! # define IP_REG asm("$9") ! # define SP_REG asm("$10") ! # define CB_REG asm("$11") #endif #if defined(__i386__) ! # define IP_REG asm("%esi") ! # define SP_REG asm("%edi") # if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 95)) ! # define CB_REG asm("%ebx") # else # define CB_REG /* avoid undue register pressure */ --- 172,194 ---- */ #if defined(__mips__) ! # define IP_REG __asm__("$16") ! # define SP_REG __asm__("$17") ! # define CB_REG __asm__("$18") #endif #if defined(__sparc__) ! # define IP_REG __asm__("%l0") ! # define SP_REG __asm__("%l1") ! # define CB_REG __asm__("%l2") #endif #if defined(__alpha__) ! # define IP_REG __asm__("$9") ! # define SP_REG __asm__("$10") ! # define CB_REG __asm__("$11") #endif #if defined(__i386__) ! # define IP_REG __asm__("%esi") ! # define SP_REG __asm__("%edi") # if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 95)) ! # define CB_REG __asm__("%ebx") # else # define CB_REG /* avoid undue register pressure */ *************** *** 196,214 **** #endif #if defined(__powerpc__) || defined(PPC) || defined(_POWER) || defined(_IBMR2) || defined(__ppc__) ! # define GP_REG asm("24") ! # define JP_REG asm("25") ! # define IP_REG asm("26") ! # define SP_REG asm("27") ! # define CB_REG asm("28") #endif #if defined(__hppa__) ! # define IP_REG asm("%r18") ! # define SP_REG asm("%r17") ! # define CB_REG asm("%r16") #endif #if defined(__mc68000__) ! # define IP_REG asm("a5") ! # define SP_REG asm("a4") ! # define CB_REG asm("d7") #endif --- 196,214 ---- #endif #if defined(__powerpc__) || defined(PPC) || defined(_POWER) || defined(_IBMR2) || defined(__ppc__) ! # define GP_REG __asm__("24") ! # define JP_REG __asm__("25") ! # define IP_REG __asm__("26") ! # define SP_REG __asm__("27") ! # define CB_REG __asm__("28") #endif #if defined(__hppa__) ! # define IP_REG __asm__("%r18") ! # define SP_REG __asm__("%r17") ! # define CB_REG __asm__("%r16") #endif #if defined(__mc68000__) ! # define IP_REG __asm__("a5") ! # define SP_REG __asm__("a4") ! # define CB_REG __asm__("d7") #endif |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:34:28
|
Update of /cvsroot/squeak/squeak/platforms/unix/plugins/SocketPlugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2361 Modified Files: sqUnixSocket.c Log Message: Disable aio on disconnection. Additional tests for pss == NULL. Index: sqUnixSocket.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** sqUnixSocket.c 2 Apr 2004 00:58:33 -0000 1.13 --- sqUnixSocket.c 3 Apr 2004 10:22:04 -0000 1.14 *************** *** 37,41 **** /* Author: Ian...@in... * ! * Last edited: 2003-09-16 20:06:06 by piumarta on emilia.inria.fr * * Support for BSD-style "accept" primitives contributed by: --- 37,41 ---- /* Author: Ian...@in... * ! * Last edited: 2004-04-02 14:21:17 by piumarta on emilia.local * * Support for BSD-style "accept" primitives contributed by: *************** *** 368,371 **** --- 368,372 ---- pss->sockState= Invalid; perror("acceptHandler"); + aioDisable(fd); close(fd); fprintf(stderr, "acceptHandler: aborting server %d pss=%p\n", fd, pss); *************** *** 433,436 **** --- 434,443 ---- FPRINTF((stderr, "dataHandler(%d=%d, %p, %d)\n", fd, pss->s, data, flags)); + if (pss == NULL) + { + fprintf(stderr, "dataHandler: pss is NULL fd=%d data=%p flags=0x%x\n", fd, data, flags); + return; + } + if (flags & AIO_R) { *************** *** 438,442 **** if (n == 0) { ! fprintf(stderr, "dataHandler: selected socket would block (why?)\n"); } if (n != 1) --- 445,449 ---- if (n == 0) { ! fprintf(stderr, "dataHandler: selected socket fd=%d flags=0x%x would block (why?)\n", fd, flags); } if (n != 1) *************** *** 545,548 **** --- 552,561 ---- /* private socket structure */ pss= (privateSocketStruct *)calloc(1, sizeof(privateSocketStruct)); + if (pss == NULL) + { + fprintf(stderr, "acceptFrom: out of memory\n"); + interpreterProxy->success(false); + return; + } pss->s= newSocket; pss->connSema= semaIndex; *************** *** 745,749 **** if (PSP(serverSocket)->acceptedSock < 0) { ! printf("acceptFrom: no socket available\n"); interpreterProxy->success(false); return; --- 758,762 ---- if (PSP(serverSocket)->acceptedSock < 0) { ! fprintf(stderr, "acceptFrom: no socket available\n"); interpreterProxy->success(false); return; *************** *** 752,759 **** /* got connection -- fill in the structure */ s->sessionID= 0; ! pss= calloc(1, sizeof(*pss)); if (pss == NULL) { ! printf("acceptFrom: out of memory\n"); interpreterProxy->success(false); return; --- 765,772 ---- /* got connection -- fill in the structure */ s->sessionID= 0; ! pss= (privateSocketStruct *)calloc(1, sizeof(privateSocketStruct)); if (pss == NULL) { ! fprintf(stderr, "acceptFrom: out of memory\n"); interpreterProxy->success(false); return; |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:32:02
|
Update of /cvsroot/squeak/squeak/platforms/unix/npsqueak In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2072 Modified Files: Makefile Log Message: Bring built-in version number up to date with trunk. Index: Makefile =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/npsqueak/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile 23 Aug 2003 11:20:55 -0000 1.5 --- Makefile 3 Apr 2004 10:19:44 -0000 1.6 *************** *** 13,17 **** imgdir= /usr/local/lib/squeak SQ_DIR= /usr/local/lib/squeak ! VM_VERSION= 3.2-5devel libdir= $(imgdir)/$(VM_VERSION) --- 13,17 ---- imgdir= /usr/local/lib/squeak SQ_DIR= /usr/local/lib/squeak ! VM_VERSION= 3.7b-2 libdir= $(imgdir)/$(VM_VERSION) |
|
From: Ian P. <piu...@us...> - 2004-04-03 10:30:24
|
Update of /cvsroot/squeak/squeak/platforms/unix/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1780 Modified Files: Makefile.install Log Message: Move docfile compression command out of the copy loop. Index: Makefile.install =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/config/Makefile.install,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile.install 2 Apr 2004 00:53:20 -0000 1.7 --- Makefile.install 3 Apr 2004 10:18:04 -0000 1.8 *************** *** 3,7 **** # Author: ian...@in... # ! # Last edited: 2004-02-09 10:28:52 by piumarta on emilia.local DOCFILES = COPYING COPYRIGHT LICENSE \ --- 3,7 ---- # Author: ian...@in... # ! # Last edited: 2004-04-02 04:17:33 by piumarta on emilia.local DOCFILES = COPYING COPYRIGHT LICENSE \ *************** *** 63,68 **** echo $(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \ $(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \ - gzip -f9 $(ROOT)$(docdir)/* done $(MKINSTALLDIRS) $(ROOT)$(mandir)/man1 $(INSTALL_DATA) squeak.1 $(ROOT)$(mandir)/man1 --- 63,68 ---- echo $(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \ $(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \ done + gzip -f9 $(ROOT)$(docdir)/* $(MKINSTALLDIRS) $(ROOT)$(mandir)/man1 $(INSTALL_DATA) squeak.1 $(ROOT)$(mandir)/man1 |