You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: David B. <dav...@us...> - 2004-12-05 18:02:20
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31838 Modified Files: Tag: sidewinder-branch langpython.c Log Message: overzealous locking leads to dead applications Index: langpython.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langpython.c,v retrieving revision 1.2.4.27 retrieving revision 1.2.4.28 diff -C2 -d -r1.2.4.27 -r1.2.4.28 *** langpython.c 5 Dec 2004 02:19:06 -0000 1.2.4.27 --- langpython.c 5 Dec 2004 18:02:06 -0000 1.2.4.28 *************** *** 1512,1515 **** --- 1512,1519 ---- static PyObject * + Script_getattr(frontier_ScriptObject *self, char *name) { + } + + static PyObject * Script_call(frontier_ScriptObject *self, PyObject *args, PyObject *kw) { tyvaluerecord params, retval; *************** *** 1544,1556 **** // call the script ! releasepythonlock(); if (!langexternalgetquotedpath(self->parent, self->name, funcname)) { ! getpythonlock(); goto exitnone; } if (!langrunscript(funcname, ¶ms, nil, &retval)) { ! getpythonlock(); goto exitnone; } --- 1548,1560 ---- // call the script ! //releasepythonlock(); if (!langexternalgetquotedpath(self->parent, self->name, funcname)) { ! //getpythonlock(); goto exitnone; } if (!langrunscript(funcname, ¶ms, nil, &retval)) { ! //getpythonlock(); goto exitnone; } *************** *** 1760,1771 **** } static int checkstatus(PyObject *o, PyFrameObject *frame, int what, PyObject *arg) { - //printf("check\n"); - //if (keyboardescape()) { if (!langbackgroundtask(false)) { - //printf("hit\n"); PyErr_SetInterrupt(); } return 0; } --- 1764,1778 ---- } + static int checkCount = 0; + static int checkQuantum = 100; + static int checkstatus(PyObject *o, PyFrameObject *frame, int what, PyObject *arg) { if (!langbackgroundtask(false)) { PyErr_SetInterrupt(); } + checkCount++; + if ((checkCount % checkQuantum) == 0) + processyield(); return 0; } |
|
From: David B. <dav...@us...> - 2004-12-05 02:19:15
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14548/source Modified Files: Tag: sidewinder-branch about.c langpython.c Log Message: can call odb objects from frontier, tweaked version number in about.c Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.4.4.1 retrieving revision 1.4.4.2 diff -C2 -d -r1.4.4.1 -r1.4.4.2 *** about.c 28 Nov 2004 06:51:47 -0000 1.4.4.1 --- about.c 5 Dec 2004 02:19:05 -0000 1.4.4.2 *************** *** 797,800 **** --- 797,804 ---- filegetprogramversion (bs); + + #ifdef FRONTIER_PYTHON + pushstring ("\x07" "-Python", bs); + #endif #ifdef fltrialsize Index: langpython.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langpython.c,v retrieving revision 1.2.4.26 retrieving revision 1.2.4.27 diff -C2 -d -r1.2.4.26 -r1.2.4.27 *** langpython.c 2 Dec 2004 07:59:33 -0000 1.2.4.26 --- langpython.c 5 Dec 2004 02:19:06 -0000 1.2.4.27 *************** *** 41,45 **** //#include "op.h" //#include "opinternal.h" ! //#include "oplist.h" //#include "opverbs.h" #include "kernelverbs.h" --- 41,45 ---- //#include "op.h" //#include "opinternal.h" ! #include "oplist.h" //#include "opverbs.h" #include "kernelverbs.h" *************** *** 97,100 **** --- 97,101 ---- #include <time.h> + extern boolean langpushlistval (hdllistrecord hlist, ptrstring pkey, tyvaluerecord *val); #if defined(WIN95VERSION) || (defined(MACVERSION) && TARGET_RT_MAC_MACHO) *************** *** 239,242 **** --- 240,245 ---- PyGILState_STATE (*ptr_PyGILState_Ensure) (void); void (*ptr_PyGILState_Release) (PyGILState_STATE); + + void (*ptr__PyObject_Dump) (PyObject *); } py; *************** *** 354,357 **** --- 357,362 ---- #define PyGILState_Release (*py.ptr_PyGILState_Release) + #define _PyObject_Dump (*py.ptr__PyObject_Dump) + static boolean importsymbol (typythonlib hm, char *symbol, void **ptraddress) { *************** *** 503,506 **** --- 508,513 ---- fl = fl && IMPORTSYMBOL (hm, PyGILState_Release); + fl = fl && IMPORTSYMBOL (hm, _PyObject_Dump); + if (fl) { *************** *** 562,569 **** /* forward declarations */ ! static PyObject *newTableObject(hdlhashtable hdl); static PyObject *newOutlineObject(void); static PyObject *newWPTextObject(void); ! static PyObject *newScriptObject(void); static PyObject *newInternalValueObject(tyvaluetype vt); static PyObject *newExternalValueObject(tyexternalid ei); --- 569,576 ---- /* forward declarations */ ! static PyObject *newTableObject(hdlhashtable parent, bigstring loc, hdlhashtable hdl); static PyObject *newOutlineObject(void); static PyObject *newWPTextObject(void); ! static PyObject *newScriptObject(hdlhashtable parent, bigstring loc, tyvaluerecord *tvr); static PyObject *newInternalValueObject(tyvaluetype vt); static PyObject *newExternalValueObject(tyexternalid ei); *************** *** 695,699 **** } ! return false; } --- 702,706 ---- } ! return true; } *************** *** 800,804 **** static boolean ! convertfrontiervalue(tyvaluerecord *tvr, PyObject **pptr) { tyexternalid extType = ctexternalprocessors; --- 807,811 ---- static boolean ! convertfrontiervalue(hdlhashtable tbl, bigstring loc, tyvaluerecord *tvr, PyObject **pptr) { tyexternalid extType = ctexternalprocessors; *************** *** 909,913 **** return false; ! *pptr = newTableObject(table); break; --- 916,920 ---- return false; ! *pptr = newTableObject(tbl, loc, table); break; *************** *** 930,934 **** case idscriptprocessor: { ! *pptr = newScriptObject(); break; --- 937,941 ---- case idscriptprocessor: { ! *pptr = newScriptObject(tbl, loc, tvr); break; *************** *** 1012,1016 **** copyptocstring(loc, cname); ! if (!convertfrontiervalue(&val, &result)) { PyErr_SetString(PyExc_SystemError, "Cannot convert value"); return NULL; --- 1019,1023 ---- copyptocstring(loc, cname); ! if (!convertfrontiervalue(adr, loc, &val, &result)) { PyErr_SetString(PyExc_SystemError, "Cannot convert value"); return NULL; *************** *** 1067,1071 **** } ! if (!convertfrontiervalue(&v, &result)) { PyErr_SetString(PyExc_SystemError, "Couldn't execute because of an error converting the UserTalk return value."); releasepythonlock(); --- 1074,1078 ---- } ! if (!convertfrontiervalue(nil, zerostring, &v, &result)) { PyErr_SetString(PyExc_SystemError, "Couldn't execute because of an error converting the UserTalk return value."); releasepythonlock(); *************** *** 1150,1153 **** --- 1157,1162 ---- PyObject_HEAD hdlhashtable table; + hdlhashtable parent; + bigstring name; } frontier_TableObject; *************** *** 1180,1184 **** } ! if (!convertfrontiervalue(&val, &result)) { char msg[300]; sprintf(msg, "Cannot convert table entry named %s.", name); --- 1189,1193 ---- } ! if (!convertfrontiervalue(self->table, loc, &val, &result)) { char msg[300]; sprintf(msg, "Cannot convert table entry named %s.", name); *************** *** 1251,1255 **** } ! if (!convertfrontiervalue(&((**node).val), &result)) { PyErr_SetString(PyExc_ValueError, "Cannot convert value"); releasepythonlock(); --- 1260,1264 ---- } ! if (!convertfrontiervalue(self->table, (**node).hashkey, &((**node).val), &result)) { PyErr_SetString(PyExc_ValueError, "Cannot convert value"); releasepythonlock(); *************** *** 1388,1392 **** } ! nt = newTableObject(newTable); releasepythonlock(); --- 1397,1401 ---- } ! nt = newTableObject(newTable, loc, newTable); releasepythonlock(); *************** *** 1497,1502 **** --- 1506,1574 ---- typedef struct { PyObject_HEAD + tyvaluerecord value; + hdlhashtable parent; + bigstring name; } frontier_ScriptObject; + static PyObject * + Script_call(frontier_ScriptObject *self, PyObject *args, PyObject *kw) { + tyvaluerecord params, retval; + int len, i; + PyObject *returned; + bigstring funcname; + + //printf("__call__\n"); + + getpythonlock(); + + // get python args + //_PyObject_Dump(args); + //_PyObject_Dump(kw); + + // convert python args to vparams + // get a new frontier list + setnilvalue(¶ms); + if (!coercevalue(¶ms, listvaluetype)) + goto exitnone; + + // for each python parameter, convert and push a new value + len = PyTuple_GET_SIZE(args); + for (i = 0; i < len; i++) { + PyObject *obj = PyTuple_GET_ITEM(args, i); + tyvaluerecord arg; + if (!pythontofrontier(obj, &arg)) + goto exitnone; + if (!langpushlistval(params.data.listvalue, nil, &arg)) + goto exitnone; + } + + // call the script + releasepythonlock(); + + if (!langexternalgetquotedpath(self->parent, self->name, funcname)) { + getpythonlock(); + goto exitnone; + } + + if (!langrunscript(funcname, ¶ms, nil, &retval)) { + getpythonlock(); + goto exitnone; + } + + // convert result to python + if (!convertfrontiervalue(nil, zerostring, &retval, &returned)) + goto exitnone; + + releasepythonlock(); + + //return result + return returned; + + exitnone: + releasepythonlock(); + Py_XINCREF(Py_None); + return Py_None; + } + static PyTypeObject frontier_ScriptType = { PyObject_HEAD_INIT(NULL) *************** *** 1515,1519 **** 0, /*tp_as_mapping*/ 0, /*tp_hash */ ! 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ --- 1587,1591 ---- 0, /*tp_as_mapping*/ 0, /*tp_hash */ ! (ternaryfunc)Script_call, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ *************** *** 1571,1575 **** static PyObject * ! newTableObject(hdlhashtable hdl) { PyObject *class; frontier_TableObject *obj; --- 1643,1647 ---- static PyObject * ! newTableObject(hdlhashtable parent, bigstring loc, hdlhashtable hdl) { PyObject *class; frontier_TableObject *obj; *************** *** 1578,1581 **** --- 1650,1655 ---- obj = PyObject_New(frontier_TableObject, (PyTypeObject *)class); obj->table = hdl; + obj->parent = parent; + copystring(loc, obj->name); return (PyObject *)obj; *************** *** 1605,1609 **** static PyObject * ! newScriptObject() { PyObject *class; frontier_ScriptObject *obj; --- 1679,1683 ---- static PyObject * ! newScriptObject(hdlhashtable parent, bigstring loc, tyvaluerecord *tvr) { PyObject *class; frontier_ScriptObject *obj; *************** *** 1611,1614 **** --- 1685,1691 ---- class = PyObject_GetAttrString(frontierModule, "Script"); obj = PyObject_New(frontier_ScriptObject, (PyTypeObject *)class); + obj->value = *tvr; + obj->parent = parent; + copystring(loc, obj->name); return (PyObject *)obj; *************** *** 1817,1825 **** (**thisNode).link = nil; if ((**thisNode).nodetype == constop) { ! convertfrontiervalue(&((**thisNode).nodeval), &arg); } else { tyvaluerecord tvr; evaluatetree(thisNode, &tvr); ! convertfrontiervalue(&tvr, &arg); } PyList_Append(argList, arg); --- 1894,1902 ---- (**thisNode).link = nil; if ((**thisNode).nodetype == constop) { ! convertfrontiervalue(nil, zerostring, &((**thisNode).nodeval), &arg); } else { tyvaluerecord tvr; evaluatetree(thisNode, &tvr); ! convertfrontiervalue(nil, zerostring, &tvr, &arg); } PyList_Append(argList, arg); |
|
From: Seth D. <set...@us...> - 2004-12-05 00:09:28
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20576 Modified Files: stringverbs.c Log Message: optimization - midfunc (ie string.mid) now uses a readonly handle for the input string, and copies only the results to the output string, for performance Index: stringverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/stringverbs.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** stringverbs.c 28 Oct 2004 22:30:43 -0000 1.3 --- stringverbs.c 5 Dec 2004 00:09:15 -0000 1.4 *************** *** 1359,1362 **** --- 1359,1365 ---- 6.1d5 AR: added urlSplit, hasSuffix. string.dateString and string.timeString now optionally accept a date parameter. + + 12/4/2004 smd: optimization - midfunc (ie string.mid) now uses a readonly handle for + the input string, and copies only the results to the output string, for performance */ *************** *** 1533,1536 **** --- 1536,1542 ---- case midfunc: { + + /* 12/4/2004 smd: optimized */ + Handle hstring; Handle x; *************** *** 1538,1541 **** --- 1544,1548 ---- long len; + if (!getpositivelongvalue (hp1, 2, &ix)) return (false); *************** *** 1546,1569 **** return (false); ! if (!getexempttextvalue (hp1, 1, &hstring)) /*get last to simplify error handling*/ return (false); - x = hstring; /*copy into register*/ - if (ix > 0) --ix; /*convert to zero-base*/ ! len = min (len, gethandlesize (x) - ix); ! ! if ((len > 0) && (ix > 0)) ! moveleft (*x + ix, *x, len); ! ! sethandlesize (x, max (len, 0)); ! /* ! if (!loadfromhandletohandle (hstring, &ix, len, &x)) ! if (!newemptyhandle (&x)) ! return (false); ! */ return (setheapvalue (x, stringvaluetype, v)); --- 1553,1571 ---- return (false); ! if (!getreadonlytextvalue (hp1, 1, &hstring)) /*get last to simplify error handling*/ return (false); if (ix > 0) --ix; /*convert to zero-base*/ ! len = min (len, gethandlesize (hstring) - ix); ! if (len > 0) { ! if (!loadfromhandletohandle(hstring, &ix, len, false, &x)) ! if (!newemptyhandle (&x)) ! return (false); ! } ! else if (!newemptyhandle (&x)) ! return false; return (setheapvalue (x, stringvaluetype, v)); |
|
From: Andre R. <and...@us...> - 2004-12-04 22:23:49
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30744/Common/source Modified Files: Tag: New_Tables_Experiment-branch cancoon.c langhash.c langstartup.c odbengine.c tablecompare.c Log Message: Moved table sorting functions from tablecompare.c to hashcompare.c and made some minor optimizations. By default, tables are now always sorted by name, even during startup before the UserTalk interpreter is fully initialized. Index: cancoon.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/cancoon.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** cancoon.c 1 Nov 2004 12:21:31 -0000 1.4 --- cancoon.c 4 Dec 2004 22:23:38 -0000 1.4.2.1 *************** *** 1780,1783 **** --- 1780,1785 ---- + #if 0 /*2004-12-04 aradke: not used anymore*/ + static short cccomparenodes (hdlhashtable htable, hdlhashnode hnode1, hdlhashnode hnode2) { *************** *** 1785,1788 **** --- 1787,1792 ---- } /*cccomparenodes*/ + #endif + static boolean ccsaveglobals (void) { *************** *** 1858,1862 **** langcallbacks.symbolinsertedcallback = &ccsymbolinserted; ! langcallbacks.comparenodescallback = &cccomparenodes; langcallbacks.saveglobalscallback = &ccsaveglobals; --- 1862,1866 ---- langcallbacks.symbolinsertedcallback = &ccsymbolinserted; ! //langcallbacks.comparenodescallback = &cccomparenodes; /*2004-12-04 aradke: not used anymore*/ langcallbacks.saveglobalscallback = &ccsaveglobals; Index: odbengine.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/odbengine.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** odbengine.c 1 Nov 2004 12:21:31 -0000 1.4 --- odbengine.c 4 Dec 2004 22:23:39 -0000 1.4.2.1 *************** *** 344,348 **** langcallbacks.symbolunlinkingcallback = &odbsymbolunlinking; ! langcallbacks.comparenodescallback = &tablecomparenames; } /*initlangcallbacks*/ --- 344,348 ---- langcallbacks.symbolunlinkingcallback = &odbsymbolunlinking; ! //langcallbacks.comparenodescallback = &tablecomparenames; /*2004-12-04 aradke: not used anymore*/ } /*initlangcallbacks*/ Index: tablecompare.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/tablecompare.c,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** tablecompare.c 15 Nov 2004 20:52:24 -0000 1.4.2.1 --- tablecompare.c 4 Dec 2004 22:23:39 -0000 1.4.2.2 *************** *** 34,38 **** --- 34,42 ---- + /* + 2004-12-04 aradke: the comparison functions moved to langhash.c. + */ + #if 0 static short tablecomparenames (hdlhashnode hnode1, hdlhashnode hnode2) { *************** *** 236,239 **** #endif ! ! --- 240,242 ---- #endif ! #endif \ No newline at end of file Index: langhash.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhash.c,v retrieving revision 1.4.2.19 retrieving revision 1.4.2.20 diff -C2 -d -r1.4.2.19 -r1.4.2.20 *** langhash.c 3 Dec 2004 13:09:11 -0000 1.4.2.19 --- langhash.c 4 Dec 2004 22:23:39 -0000 1.4.2.20 *************** *** 114,117 **** --- 114,119 ---- + typedef int (*hashcomparefunc) (const void *hn1, const void *hn2); /*2004-12-04 aradke*/ + hdlhashtable currenthashtable = nil; *************** *** 1419,1422 **** --- 1421,1583 ---- #endif + /* + 2004-12-04 aradke: the comparison functions are primarily used to sort tables + and to insert items at the proper position in the current sort order. + both operations are critical to overall performance, so doing things like + looking up the correct comparison callback for every comparison is + a waste of time. + + while we're working on optimizing tables, also optimize the functions + in this file to work well with the C library's qsort and the code in langhash.c. + + the comparision functions moved from tablecompare.c to langhash.c + since this is the only place where we now use them. + */ + + static int hashcomparenames (const void *hnode1, const void *hnode2) { + + /* + 2004-12-04 aradke: moved from tablecompare.c, changed defintion + to be compatible with qsort + */ + + return (compareidentifiers ((***(hdlhashnode *)hnode1).hashkey, (***(hdlhashnode *)hnode2).hashkey)); + } /*hashcomparenames*/ + + + #if !flruntime + + static int hashcomparekinds (const void *hnode1, const void *hnode2) { + + /* + 2004-12-04 aradke: moved from tablecompare.c, changed defintion + to be compatible with qsort + */ + + tyvaluerecord val1, val2; + register tyvaluetype t1, t2; + + val1 = (***(hdlhashnode *)hnode1).val; + + val2 = (***(hdlhashnode *)hnode2).val; + + t1 = val1.valuetype; + + t2 = val2.valuetype; + + if ((t1 == externalvaluetype) && (t2 == externalvaluetype)) { + + register hdlexternalhandle h1 = (hdlexternalhandle) val1.data.externalvalue; + register hdlexternalhandle h2 = (hdlexternalhandle) val2.data.externalvalue; + register tyexternalid id1 = (tyexternalid) (**h1).id; + register tyexternalid id2 = (tyexternalid) (**h2).id; + + if (id1 == id2) + return (hashcomparenames (hnode1, hnode2)); + + return (langexternalcomparetypes (id1, id2)); + } + + if (t1 == externalvaluetype) /*scalars sort before externals*/ + return (1); + + if (t2 == externalvaluetype) /*scalars sort before externals*/ + return (-1); + + if (t1 == t2) + return (hashcomparenames (hnode1, hnode2)); + + return (sgn (t1 - t2)); + } /*hashcomparekinds*/ + + + static int hashcomparevalues (const void *hnode1, const void *hnode2) { + + /* + 2.1b2 dmb: new version, corrects bugs that led to semi-random sorts. now + only values of the same kind are compared, and the valuetype is a strict + secondary sort. + + 2004-12-04 aradke: moved from tablecompare.c, changed defintion + to be compatible with qsort. we allocate temp values in the temp stack + of a table that is supposed to be pushed by the caller. + */ + + register hdlhashnode h1 = *(hdlhashnode *)hnode1; + register hdlhashnode h2 = *(hdlhashnode *)hnode2; + tyvaluerecord val1, val2, vreturned; + register boolean fllessthan = false; + register boolean flequal = false; + boolean flcomparable; + + flcomparable = (**h1).val.valuetype == (**h2).val.valuetype; + + if (flcomparable) { + + //pushhashtable (htable); /*any temps are allocated in this table*/ + + disablelangerror (); /*protect us from error dialogs*/ + + copyvaluerecord ((**h1).val, &val1); + + copyvaluerecord ((**h2).val, &val2); + + flcomparable = LTvalue (val1, val2, &vreturned); + + cleartmpstack (); /*temps no longer needed*/ + + fllessthan = vreturned.data.flvalue; + + if (flcomparable && !fllessthan) { + + copyvaluerecord ((**h1).val, &val1); + + copyvaluerecord ((**h2).val, &val2); + + flcomparable = EQvalue (val1, val2, &vreturned); + + cleartmpstack (); /*temps no longer needed*/ + + flequal = vreturned.data.flvalue; + } + + enablelangerror (); + + //pophashtable (); + } + + if ((!flcomparable) || flequal) + return (hashcomparekinds (hnode1, hnode2)); + + if (fllessthan) + return (-1); + else + return (1); + } /*hashcomparevalues*/ + + #endif + + + static hashcomparefunc hashgetcomparefunc (hdlhashtable htable) { + + #if! flruntime + + switch ((**htable).sortorder) { + + case sortbyvalue: + return (&hashcomparevalues); + + case sortbykind: + return (&hashcomparekinds); + + } /*switch*/ + + #endif + + return (&hashcomparenames); + } /*hashgetcomparefunc*/ + + + #if 0 static int hashcompare (const void *h1, const void *h2) { *************** *** 1425,1428 **** --- 1586,1591 ---- } /*hashcompare*/ + #endif + static boolean hashsortedinsert (hdlhashnode hnode) { *************** *** 1432,1440 **** if ((**currenthashtable).sortedlist == nil) return (true); - - if (langcallbacks.comparenodescallback == (langcomparenodescallback) &falsenoop) - return (listappend ((**currenthashtable).sortedlist, (Handle) hnode)); ! return (listsortedinsert ((**currenthashtable).sortedlist, (Handle) hnode, &hashcompare)); #else --- 1595,1600 ---- if ((**currenthashtable).sortedlist == nil) return (true); ! return (listsortedinsert ((**currenthashtable).sortedlist, (Handle) hnode, hashgetcomparefunc (currenthashtable))); #else *************** *** 1444,1447 **** --- 1604,1608 ---- register hdlhashnode nomad = (**ht).hfirstsort; register hdlhashnode nomadprev = nil; + hashcomparefunc comparefunc = hashgetcomparefunc (currenthashtable); short comparison; *************** *** 1457,1461 **** while (true) { ! comparison = (*langcallbacks.comparenodescallback) (ht, hn, nomad); if (comparison < 0) { --- 1618,1622 ---- while (true) { ! comparison = (*comparefunc) (&hn, &nomad); if (comparison < 0) { *************** *** 1501,1508 **** if ((**currenthashtable).sortedlist == nil) return; - - assert (langcallbacks.comparenodescallback != (langcomparenodescallback) &falsenoop); ! (void) listsorteddelete ((**currenthashtable).sortedlist, (Handle) hnodedelete, &hashcompare); #else --- 1662,1667 ---- if ((**currenthashtable).sortedlist == nil) return; ! (void) listsorteddelete ((**currenthashtable).sortedlist, (Handle) hnodedelete, hashgetcomparefunc (currenthashtable)); #else *************** *** 2621,2627 **** assert ((**ht).ctnodes == listcount ((**ht).sortedlist)); ! pushhashtable (ht); /*required by hashcompare*/ ! listsort ((**ht).sortedlist, &hashcompare); pophashtable (); --- 2780,2786 ---- assert ((**ht).ctnodes == listcount ((**ht).sortedlist)); ! pushhashtable (ht); /*required by comparison function*/ ! listsort ((**ht).sortedlist, hashgetcomparefunc (ht)); pophashtable (); *************** *** 2662,2670 **** #ifdef THINK_C ! qsort (*hlist, ctitems, sizeof (hdlhashnode), (__cmp_func) &hashcompare); #else ! qsort (*hlist, ctitems, sizeof (hdlhashnode), &hashcompare); #endif --- 2821,2829 ---- #ifdef THINK_C ! qsort (*hlist, ctitems, sizeof (hdlhashnode), (__cmp_func) hashgetcomparefunc (ht)); #else ! qsort (*hlist, ctitems, sizeof (hdlhashnode), hashgetcomparefunc (ht)); #endif *************** *** 2725,2729 **** return (hashquicksort (ht)); ! pushhashtable (ht); #ifdef fltablesortorderisarray --- 2884,2888 ---- return (hashquicksort (ht)); ! pushhashtable (ht); /*required by comparison function*/ #ifdef fltablesortorderisarray *************** *** 2731,2735 **** assert ((**ht).sortedlist != nil); ! listresort ((**ht).sortedlist, ix, &hashcompare); #else --- 2890,2894 ---- assert ((**ht).sortedlist != nil); ! listresort ((**ht).sortedlist, ix, hashgetcomparefunc (ht)); #else *************** *** 4251,4255 **** pushhashtable (htable); /*for hashcompare*/ ! flfound = listbinarysearchexact ((**htable).sortedlist, (Handle) hnode, index, &hashcompare); pophashtable (); --- 4410,4414 ---- pushhashtable (htable); /*for hashcompare*/ ! flfound = listbinarysearchexact ((**htable).sortedlist, (Handle) hnode, index, hashgetcomparefunc (htable)); pophashtable (); Index: langstartup.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langstartup.c,v retrieving revision 1.3.2.2 retrieving revision 1.3.2.3 diff -C2 -d -r1.3.2.2 -r1.3.2.3 *** langstartup.c 1 Dec 2004 19:44:45 -0000 1.3.2.2 --- langstartup.c 4 Dec 2004 22:23:39 -0000 1.3.2.3 *************** *** 824,828 **** langcallbacks.symbolinsertedcallback = (langsymbolinsertedcallback) &truenoop; ! langcallbacks.comparenodescallback = (langcomparenodescallback) &falsenoop; langcallbacks.debuggercallback = (langtreenodecallback) &truenoop; --- 824,828 ---- langcallbacks.symbolinsertedcallback = (langsymbolinsertedcallback) &truenoop; ! //langcallbacks.comparenodescallback = (langcomparenodescallback) &falsenoop; /*2004-12-04 aradke: not used anymore*/ langcallbacks.debuggercallback = (langtreenodecallback) &truenoop; |
|
From: Andre R. <and...@us...> - 2004-12-04 22:23:49
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30744/Common/headers Modified Files: Tag: New_Tables_Experiment-branch lang.h tableinternal.h Log Message: Moved table sorting functions from tablecompare.c to hashcompare.c and made some minor optimizations. By default, tables are now always sorted by name, even during startup before the UserTalk interpreter is fully initialized. Index: lang.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/lang.h,v retrieving revision 1.4.2.8 retrieving revision 1.4.2.9 diff -C2 -d -r1.4.2.8 -r1.4.2.9 *** lang.h 3 Dec 2004 13:09:10 -0000 1.4.2.8 --- lang.h 4 Dec 2004 22:23:38 -0000 1.4.2.9 *************** *** 475,478 **** --- 475,483 ---- + #define sortbyname 0 /*values for tyhashtable.sortorder*/ + #define sortbyvalue 1 + #define sortbykind 2 + + typedef struct tyhashtable { *************** *** 631,635 **** typedef boolean (*langsymbolchangedcallback) (hdlhashtable, const bigstring, hdlhashnode, boolean); ! typedef short (*langcomparenodescallback)(hdlhashtable, hdlhashnode, hdlhashnode); typedef boolean (*langhashnodetreenodecallback)(hdlhashnode, hdltreenode *); --- 636,640 ---- typedef boolean (*langsymbolchangedcallback) (hdlhashtable, const bigstring, hdlhashnode, boolean); ! //typedef short (*langcomparenodescallback)(hdlhashtable, hdlhashnode, hdlhashnode); /*2004-12-04 aradke: not used anymore*/ typedef boolean (*langhashnodetreenodecallback)(hdlhashnode, hdltreenode *); *************** *** 666,670 **** langsymbolinsertedcallback symbolinsertedcallback; ! langcomparenodescallback comparenodescallback; langtreenodecallback debuggercallback; --- 671,675 ---- langsymbolinsertedcallback symbolinsertedcallback; ! //langcomparenodescallback comparenodescallback; /*2004-12-04 aradke: not used anymore*/ langtreenodecallback debuggercallback; Index: tableinternal.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/tableinternal.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** tableinternal.h 20 Nov 2004 23:03:19 -0000 1.1.2.1 --- tableinternal.h 4 Dec 2004 22:23:38 -0000 1.1.2.2 *************** *** 52,60 **** - #define sortbyname 0 /*values for "sortorder"*/ - #define sortbyvalue 1 - #define sortbykind 2 - - #define tablestringlist 165 #define systemtabletypestring 1 --- 52,55 ---- *************** *** 131,138 **** --- 126,141 ---- + #if 0 + + /* + 2004-12-04 aradke: temporarily overriding the sort order is no longer supported + */ + extern void tableoverridesort (hdlhashnode); /*tablecompare.c*/ extern void tablerestoresort (void); + #endif + extern boolean tableeditsetglobals (void); /*tableedit.c*/ |
|
From: Andre R. <and...@us...> - 2004-12-04 22:20:52
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30206/Common/source Modified Files: Tag: New_Tables_Experiment-branch arraylist.c Log Message: In listresort, fixed a bug where the function didn't do anything if the caller asked for the first item to be resorted. Added more debugging code for the sorting functions. Index: arraylist.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/Attic/arraylist.c,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -C2 -d -r1.1.2.7 -r1.1.2.8 *** arraylist.c 20 Nov 2004 23:24:44 -0000 1.1.2.7 --- arraylist.c 4 Dec 2004 22:20:43 -0000 1.1.2.8 *************** *** 32,35 **** --- 32,37 ---- + //#define fldebugsorting 1 /*2004-12-04 aradke: for enabling additional checks on sorting functions*/ + /* Implementation of a simple list type based on an array. *************** *** 487,491 **** assert (hlist != nil); ! return (ex < (**hlist).ctitems); } /*listvalidindex*/ --- 489,493 ---- assert (hlist != nil); ! return ((0 <= ex) && (ex < (**hlist).ctitems)); } /*listvalidindex*/ *************** *** 499,503 **** assert (hlist != nil); ! assert (ex < (**hlist).ctitems); return ((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, ex)]); --- 501,505 ---- assert (hlist != nil); ! assert (listvalidindex (hlist, ex)); return ((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, ex)]); *************** *** 513,517 **** assert (hlist != nil); ! assert (ex < (**hlist).ctitems); (**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, ex)] = hdata; --- 515,519 ---- assert (hlist != nil); ! assert (listvalidindex (hlist, ex)); (**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, ex)] = hdata; *************** *** 740,743 **** --- 742,747 ---- /* insert handle at position ex, moving current item ex out of the way to the right + + 2004-12-04 aradke: to clarify, the new item will be at position ex when we're done. */ *************** *** 816,819 **** --- 820,828 ---- deleting it from the list, and re-inserting it at ixdest, except we move as few other handles around as possible. + + 2004-12-04 aradke: clarification and bug fix, before we start moving stuff + around, the item is at position exsrc. when we are done moving, the item + ends up at position exdest, whether exsrc is to the left or to the right + of exdest. if exsrc is equal to exdest, there's nothing to do. */ *************** *** 846,865 **** if (exsrc < exdest) { rotateright (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, 0), exsrc); ! rotateright (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exdest), (**hlist).ctitems - exdest); ! ! if ((**hlist).ix_offset == (**hlist).ix_mask) /*first rotate moved first item to right*/ (**hlist).ix_offset = 0; /*wrap around*/ else (**hlist).ix_offset++; } else { ! rotateleft (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, 0), exdest + 1); ! ! rotateleft (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc + 1), (**hlist).ctitems - exdest - 1); ! if ((**hlist).ix_offset == 0) /*first rotate moved first item to left*/ (**hlist).ix_offset = (**hlist).ix_mask; /*wrap around*/ else --- 855,878 ---- if (exsrc < exdest) { + /*close gap at exsrc first*/ rotateright (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, 0), exsrc); ! if ((**hlist).ix_offset == (**hlist).ix_mask) /*rotatation moved first item to right, adjust offset*/ (**hlist).ix_offset = 0; /*wrap around*/ else (**hlist).ix_offset++; + + /*open new gap at exdest*/ + rotateright (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exdest), ((**hlist).ctitems - 1) - exdest); } else { ! /*close gap at exsrc first*/ ! rotateleft (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc + 1), ((**hlist).ctitems - 1) - exsrc); ! ! /*open new gap at exdest*/ ! rotateleft (hlist, LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, 0), exdest); ! if ((**hlist).ix_offset == 0) /*rotatation moved first item to left, adjust offset*/ (**hlist).ix_offset = (**hlist).ix_mask; /*wrap around*/ else *************** *** 867,871 **** } } ! listset (hlist, exdest, hdata); } /*listmove*/ --- 880,884 ---- } } ! listset (hlist, exdest, hdata); } /*listmove*/ *************** *** 934,937 **** --- 947,994 ---- + #ifdef fldebugsorting + + static boolean listcheckpartialsortorder (hdllist hlist, long ixmin, long ixmax, int (*comparefunc)(const void *, const void *)) { + + /* + determine whether the given part of the list is sorted according to the given comparefunc + + the caller is responsible for locking hlist if comparefunc requires it + */ + + long k = ixmin; + long kmax = ixmax; + Handle h1, h2; + + while (k < kmax) { + + h1 = listget (hlist, k); + + ++k; + + h2 = listget (hlist, k); + + if ((*comparefunc) (&h1, &h2) > 0) + return (false); + } /*for*/ + + return (true); + } /*listcheckpartialsortorder*/ + + + static boolean listchecksortorder (hdllist hlist, int (*comparefunc)(const void *, const void *)) { + + /* + determine whether the list is sorted according to the given comparefunc + + the caller is responsible for locking hlist if comparefunc requires it + */ + + return (listcheckpartialsortorder (hlist, 0, listcount (hlist) - 1, comparefunc)); + } /*listchecksortorder*/ + + #endif + + static boolean runbinarysearch (hdllist hlist, Handle hdata, long ixmin, long ixmax, *************** *** 962,965 **** --- 1019,1026 ---- assert (ixmax < (**hlist).ix_offset + (**hlist).ctitems); + #ifdef fldebugsorting + assert (listcheckpartialsortorder (hlist, ixmin, ixmax, comparefunc)); + #endif + while (ixmin <= ixmax) { *************** *** 1226,1238 **** into the proper slot. Assume that the rest of the list is still sorted properly. */ ! long exdest, ixdest; int resleft = 0; int resright = 0; assert (hlist != nil); ! assert (exsrc < (**hlist).ctitems); if ((**hlist).ctitems < 2) --- 1287,1303 ---- into the proper slot. Assume that the rest of the list is still sorted properly. + + 2004-12-04 aradke: fixed a bug where the first item in the list + would never get resorted. [reported by Jeff Imig] */ ! long exdest; int resleft = 0; int resright = 0; + Handle hdata; assert (hlist != nil); ! assert (listvalidindex (hlist, exsrc)); if ((**hlist).ctitems < 2) *************** *** 1240,1282 **** lockhandle ((Handle) hlist); ! if (exsrc > 0) { /*compare with left neighbour*/ ! resleft = (*comparefunc) (&((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc - 1)]), ! &((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc)])); } ! if ((resleft < 0) && (exsrc < (**hlist).ctitems - 1)) { /*compare with right neighbour*/ ! resright = (*comparefunc) (&((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc)]), ! &((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc + 1)])); } - ixdest = (**hlist).ix_offset + exsrc; /*default value*/ - if (resleft > 0) { /*left neighbour is greater, search partition on left*/ ! ! runbinarysearch (hlist, (**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc)], ! (**hlist).ix_offset, ! (**hlist).ix_offset + exsrc - 1, &ixdest, comparefunc); } else if (resright > 0) { /*right neighbour is less, search partition on right*/ ! runbinarysearch (hlist, (**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc)], ! (**hlist).ix_offset + exsrc + 1, ! (**hlist).ix_offset + (**hlist).ctitems - 1, &ixdest, comparefunc); } ! ! exdest = ixdest - (**hlist).ix_offset; ! ! assert (((resleft > 0) && (exdest < exsrc)) ! || ((resright > 0) && (exdest > exsrc)) ! || ((resleft <= 0) && (resright <= 0) && (exdest == exsrc))); ! ! listmove (hlist, exsrc, exdest); unlockhandle ((Handle) hlist); } /*listresort*/ - --- 1305,1358 ---- lockhandle ((Handle) hlist); ! ! hdata = (**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc)]; ! if (exsrc > 0) { /*compare with left neighbour*/ ! resleft = (*comparefunc) (&((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc - 1)]), &hdata); } ! else ! resleft = -1; /*2004-12-04 aradke: make sure we compare with right neighbour if its the first item*/ ! if ((resleft < 0) && (exsrc < (**hlist).ctitems - 1)) { /*compare with right neighbour*/ ! resright = (*comparefunc) (&hdata, &((**hlist).item[LIST_EXTERNAL_TO_INTERNAL_INDEX (hlist, exsrc + 1)])); } if (resleft > 0) { /*left neighbour is greater, search partition on left*/ ! ! long ixdest; ! ! runbinarysearch (hlist, hdata, ! (**hlist).ix_offset, (**hlist).ix_offset + exsrc - 1, &ixdest, comparefunc); + + exdest = ixdest - (**hlist).ix_offset; + + assert (exdest < exsrc); + + listmove (hlist, exsrc, exdest); } else if (resright > 0) { /*right neighbour is less, search partition on right*/ + + long ixdest; ! runbinarysearch (hlist, hdata, ! (**hlist).ix_offset + exsrc + 1, (**hlist).ix_offset + (**hlist).ctitems - 1, &ixdest, comparefunc); + + exdest = ixdest - (**hlist).ix_offset; + + assert (exsrc + 1 < exdest); + + exdest--; /*adjust for exsrc being to the left of exdest*/ + + listmove (hlist, exsrc, exdest); } ! ! #ifdef fldebugsorting ! assert (listchecksortorder (hlist, comparefunc)); ! #endif unlockhandle ((Handle) hlist); } /*listresort*/ |
|
From: Andre R. <and...@us...> - 2004-12-04 21:52:22
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24538/Common/source Modified Files: Tag: New_Tables_Experiment-branch about.c Log Message: Bump release counter to -NT4. Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.4.2.3 retrieving revision 1.4.2.4 diff -C2 -d -r1.4.2.3 -r1.4.2.4 *** about.c 3 Dec 2004 13:03:53 -0000 1.4.2.3 --- about.c 4 Dec 2004 21:52:13 -0000 1.4.2.4 *************** *** 798,802 **** #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT3", bs); #endif --- 798,802 ---- #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT4", bs); #endif |
|
From: creedon <icr...@us...> - 2004-12-04 21:02:04
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14260 Modified Files: command.c Log Message: changed cmdsavestring function, deal with nil (**hc).hscriptstring Index: command.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/command.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** command.c 31 Oct 2004 17:31:02 -0000 1.3 --- command.c 4 Dec 2004 21:01:56 -0000 1.4 *************** *** 65,68 **** --- 65,69 ---- */ + Handle h; /* 2004-12-03 creedon - temporary handle */ register hdlcancoonrecord hc; *************** *** 73,77 **** if (!equalhandles (htext, (**hc).hscriptstring)) { ! copyhandlecontents (htext, (**hc).hscriptstring); (**hc).fldirty = true; --- 74,83 ---- if (!equalhandles (htext, (**hc).hscriptstring)) { ! if ((**hc).hscriptstring == nil) { /* 2004-12-03 creedon, aradke */ ! copyhandle (htext, &h); ! (**hc).hscriptstring = h; ! } ! else ! copyhandlecontents (htext, (**hc).hscriptstring); (**hc).fldirty = true; |
|
From: Andre R. <and...@us...> - 2004-12-03 13:09:26
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9052/Common/source Modified Files: Tag: New_Tables_Experiment-branch langhash.c langexternal.c Log Message: Fixed a crashing bug in thelogic underlying langexternalgetfullpath and langexternalgetquotedpath. Local symbol tables don't maintain a sort order anymore, so we have to fall back to looping over the hash buckets in this case. Luckily, this doesn't happen very often. Index: langexternal.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langexternal.c,v retrieving revision 1.3.2.3 retrieving revision 1.3.2.4 diff -C2 -d -r1.3.2.3 -r1.3.2.4 *** langexternal.c 20 Nov 2004 18:59:48 -0000 1.3.2.3 --- langexternal.c 3 Dec 2004 13:09:11 -0000 1.3.2.4 *************** *** 1209,1253 **** } /*langexternalbracketname*/ long fullpathloopcount = 0; ! static boolean istableintable (hdlhashtable hparent, hdlhashtable hchild, hdlhashnode * hnode) { ! hdlhashnode x; hdlexternalvariable hv; - #ifdef fltablesortorderisarray - long k; - #endif ! *hnode = nil; ! ! if (hparent == nil) ! return (false); //defensive driving ! #ifdef fltablesortorderisarray ! for (k = 0; hashgetnthnode (hparent, k, &x); k++) ! #else ! for (x = (**hparent).hfirstsort; x != nil; x = (**x).sortedlink) ! #endif ! { ! if ((**x).val.valuetype == externalvaluetype) { ! ! hv = (hdlexternalvariable) (**x).val.data.externalvalue; ! if ((**hv).id == idtableprocessor) { ! if ((hdlhashtable)(**hv).variabledata == hchild) { ! *hnode = x; ! return (true); ! } } } ! } /*for*/ return (false); } /* istableintable */ ! static boolean fullpathsearch (hdlhashtable intable, hdlhashtable fortable, bigstring forname, boolean flonlyinmemory, boolean flquote, boolean flincludeself, bigstring bspath, hdlwindowinfo *hroot) { /* --- 1209,1331 ---- } /*langexternalbracketname*/ + long fullpathloopcount = 0; ! typedef struct tyistableintableinfo { ! hdlhashtable hchild; ! hdlhashnode hnode; ! } tyistableintableinfo; ! ! ! static boolean istableintablevisit (hdlhashnode x, ptrvoid refcon) { ! ! /* ! 2004-12-02 aradke: see istableintable below ! */ ! ! tyistableintableinfo *info = (tyistableintableinfo *) refcon; hdlexternalvariable hv; ! if ((**x).val.valuetype == externalvaluetype) { ! ! hv = (hdlexternalvariable) (**x).val.data.externalvalue; ! if ((**hv).id == idtableprocessor) { ! if ((hdlhashtable)(**hv).variabledata == info->hchild) { ! info->hnode = x; ! return (false); /*found it*/ } } ! } ! ! return (true); /*continue visit*/ ! } /*istableintablevisit*/ + + static boolean istableintable (hdlhashtable hparent, hdlhashtable hchild, hdlhashnode * hnode) { + + /* + 2004-12-02 aradke: use hashtablesortedvisit instead of looping over the sort order ourselves. + some tables are no longer maintaining a sort order. in that case, hashtablesortedvisit + will do the right thing and fall back to hashtablevisit. part of the former loop + body moved into istableintablevisit. + */ + + tyistableintableinfo info; + + *hnode = nil; + + if (hparent != nil) { //defensive driving + + info.hchild = hchild; + info.hnode = nil; + + if (!hashtablesortedvisit (hparent, &istableintablevisit, &info)) { /*found it*/ + + *hnode = info.hnode; + + return (true); + } + } + return (false); } /* istableintable */ ! typedef struct tyfullpathsearchinfo { ! hdlhashtable fortable; ! ptrstring forname; ! ptrstring bspath; ! hdlwindowinfo *hroot; ! hdlhashnode hnode; ! boolean flquote; ! } tyfullpathsearchinfo; ! ! ! /*forward declaration*/ ! ! static boolean fullpathsearch (hdlhashtable, hdlhashtable, bigstring, boolean, boolean, bigstring, hdlwindowinfo *); ! ! ! static boolean fullpathsearchvisit (hdlhashnode x, ptrvoid refcon) { ! ! /* ! 2004-12-03 aradke: see fullpathsearch below ! */ ! ! tyfullpathsearchinfo *info = (tyfullpathsearchinfo *) refcon; ! hdlexternalvariable hv; ! ! ++fullpathloopcount; ! ! if ((**x).val.valuetype != externalvaluetype) ! return (true); /*continue*/ ! ! hv = (hdlexternalvariable) (**x).val.data.externalvalue; ! ! if ((**hv).id != idtableprocessor) ! return (true); /*continue*/ ! ! if (!(**hv).flinmemory) /*the one we're looking for is in memory, so this can't be it*/ ! return (true); /*continue*/ ! ! //assert (tablesetdebugglobals (ht, x)); /*set debug globals*/ ! ! if (fullpathsearch ((hdlhashtable) (**hv).variabledata, info->fortable, info->forname, info->flquote, true, info->bspath, info->hroot)) { ! ! info->hnode = x; /*found it*/ ! ! return (false); /*unwind recursion*/ ! } ! ! return (true); /*keep looking*/ ! } /*fullpathsearchvisit*/ ! ! ! static boolean fullpathsearch (hdlhashtable intable, hdlhashtable fortable, bigstring forname, boolean flquote, boolean flincludeself, bigstring bspath, hdlwindowinfo *hroot) { /* *************** *** 1255,1262 **** 5.0a18 dmb: added hroot parameter, for guest databases. */ register hdlhashtable ht = intable; - register boolean fltempload; hdlhashnode x; register hdlexternalvariable hv = nil; --- 1333,1344 ---- 5.0a18 dmb: added hroot parameter, for guest databases. + + 2004-12-03 aradke: use hashtablesortedvisit instead of looping over the sort order ourselves. + some tables are no longer maintaining a sort order. in that case, hashtablesortedvisit + will do the right thing and fall back to hashtablevisit. part of the former loop + body moved into fullpathsearchvisit. */ register hdlhashtable ht = intable; hdlhashnode x; register hdlexternalvariable hv = nil; *************** *** 1265,1271 **** extern boolean tablesetdebugglobals (hdlhashtable, hdlhashnode); hdlhashtable pht; ! #ifdef fltablesortorderisarray ! long k; ! #endif pht = nil; --- 1347,1351 ---- extern boolean tablesetdebugglobals (hdlhashtable, hdlhashnode); hdlhashtable pht; ! tyfullpathsearchinfo info; pht = nil; *************** *** 1295,1299 **** } - if ((**fortable).parenthashtable != nil) { --- 1375,1378 ---- *************** *** 1323,1330 **** } - if (pht != nil) { /*Then lets follow the nodes up...*/ ! if (fullpathsearch (ht, pht, "", flonlyinmemory, flquote, flincludeself, bs, hroot)) { if ((ht != pht) || flincludeself) { --- 1402,1408 ---- } if (pht != nil) { /*Then lets follow the nodes up...*/ ! if (fullpathsearch (ht, pht, "", flquote, flincludeself, bs, hroot)) { if ((ht != pht) || flincludeself) { *************** *** 1349,1355 **** setemptystring (bspath); ! ! ! if (! isemptystring (forname)) { /*asking for specific name*/ if (hashtablesymbolexists (fortable, forname)) { //Make sure the symbol exists --- 1427,1431 ---- setemptystring (bspath); ! if (!isemptystring (forname)) { /*asking for specific name*/ if (hashtablesymbolexists (fortable, forname)) { //Make sure the symbol exists *************** *** 1366,1373 **** } ! // return (false); } if (hroot) { x = (**fortable).thistableshashnode; --- 1442,1450 ---- } ! //return (false); } if (hroot) { + x = (**fortable).thistableshashnode; *************** *** 1383,1461 **** return (false); } ! #ifdef fltablesortorderisarray ! for (k = 0; hashgetnthnode (ht, k, &x); k++) ! #else ! for (x = (**ht).hfirstsort; x != nil; x = (**x).sortedlink) ! #endif ! { /*chain through the hash list*/ ! ! fltempload = false; ! ! ++fullpathloopcount; ! ! if ((**x).val.valuetype != externalvaluetype) ! goto nextx; ! ! hv = (hdlexternalvariable) (**x).val.data.externalvalue; ! ! if ((**hv).id != idtableprocessor) ! goto nextx; ! ! if (!(**hv).flinmemory) { ! ! if (flonlyinmemory) /*can't find it if it isn't in memory*/ ! goto nextx; ! ! if (!tableverbinmemory (hv, x)) ! return (false); ! ! fltempload = true; ! } ! ///////// assert (tablesetdebugglobals (ht, x)); /*set debug globals*/ ! if (fullpathsearch ((hdlhashtable) (**hv).variabledata, fortable, forname, flonlyinmemory, flquote, true, bs, hroot)) { ! hdlhashtable cht; ! hdlhashnode nn; ! ! cht = ((hdlhashtable) (**hv).variabledata); ! /*we do not have an if statement here since the straight assignment is faster*/ ! (**cht).parenthashtable = ht; /*set the parent pointer for next time*/ ! if ((**cht).thistableshashnode == nil) ! if (istableintable (ht, cht, &nn)) ! (**cht).thistableshashnode = nn; ! if (flincludeself) { ! gethashkey (x, bspath); ! if (flquote) ! langexternalbracketname (bspath); ! if (stringlength (bs) > 0) { ! ! pushchar ('.', bspath); ! ! pushstring (bs, bspath); ! } } - else - copystring (bs, bspath); - - if (hroot && (*hroot == nil)) - if (langexternalvariablewindowopen (hv, &hinfo) && (hinfo != nil)) - getrootwindow ((**hinfo).macwindow, hroot); - - return (true); /*unwind recursion*/ } ! ! nextx: ! if (fltempload) ! tableverbunload (hv); ! } /*while*/ return (false); --- 1460,1511 ---- return (false); } + + info.fortable = fortable; + info.forname = (ptrstring) forname; + info.bspath = (ptrstring) bs; + info.hroot = hroot; + info.flquote = flquote; + + if (!hashtablesortedvisit (ht, &fullpathsearchvisit, &info)) { /*found it*/ ! hdlhashtable cht; ! hdlhashnode hn; ! hv = (hdlexternalvariable) (**(info.hnode)).val.data.externalvalue; ! cht = ((hdlhashtable) (**hv).variabledata); ! /*we do not have an if statement here since the straight assignment is faster*/ ! (**cht).parenthashtable = ht; /*set the parent pointer for next time*/ ! if ((**cht).thistableshashnode == nil) ! if (istableintable (ht, cht, &hn)) ! (**cht).thistableshashnode = hn; ! if (flincludeself) { ! ! gethashkey (info.hnode, bspath); ! ! if (flquote) ! langexternalbracketname (bspath); ! ! if (stringlength (bs) > 0) { ! /*bspath = bspath + "." + bs*/ ! pushchar ('.', bspath); ! pushstring (bs, bspath); } } ! else ! copystring (bs, bspath); ! if (hroot && (*hroot == nil)) ! if (langexternalvariablewindowopen (hv, &hinfo) && (hinfo != nil)) ! getrootwindow ((**hinfo).macwindow, hroot); ! ! return (true); /*unwind recursion*/ ! } return (false); *************** *** 1870,1873 **** --- 1920,1925 ---- searching the file window table if we're not quoting the path, to avoid file names in window titles. + + 2004-12-03 aradke: unwired flonlyinmemory feature -- it's never needed. */ *************** *** 1887,1894 **** if ((htable == filewindowtable) || (tablegetdatabase (htable) != tablegetdatabase (roottable))) ! if (fullpathsearch (filewindowtable, htable, bsname, true, flquote, flquote, bspath, hroot)) goto exit; ! if (fullpathsearch (roottable, htable, bsname, true, flquote, true, bspath, hroot)) goto exit; } --- 1939,1946 ---- if ((htable == filewindowtable) || (tablegetdatabase (htable) != tablegetdatabase (roottable))) ! if (fullpathsearch (filewindowtable, htable, bsname, flquote, flquote, bspath, hroot)) goto exit; ! if (fullpathsearch (roottable, htable, bsname, flquote, true, bspath, hroot)) goto exit; } *************** *** 1918,1922 **** for (ht = currenthashtable; ht != nil; ht = (**ht).prevhashtable) { ! if (fullpathsearch (ht, htable, bsname, true, flquote, true, bspath, hroot)) goto exit; } --- 1970,1974 ---- for (ht = currenthashtable; ht != nil; ht = (**ht).prevhashtable) { ! if (fullpathsearch (ht, htable, bsname, flquote, true, bspath, hroot)) goto exit; } *************** *** 1930,1937 **** } } - - // now try non-inmemory search - //if (fullpathsearch (roottable, htable, bsname, false, flquote, bspath, hroot)) - // goto exit; } --- 1982,1985 ---- Index: langhash.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhash.c,v retrieving revision 1.4.2.18 retrieving revision 1.4.2.19 diff -C2 -d -r1.4.2.18 -r1.4.2.19 *** langhash.c 1 Dec 2004 20:32:47 -0000 1.4.2.18 --- langhash.c 3 Dec 2004 13:09:11 -0000 1.4.2.19 *************** *** 2556,2559 **** --- 2556,2608 ---- + #if defined(fldebug) && defined(fltablesortorderisarray) + + static long ctdebughashtablesortedvisitfallbacks = 0; + + #endif + + + boolean hashtablesortedvisit (hdlhashtable htable, langtablevisitcallback visit, ptrvoid refcon) { + + /* + 2004-12-02 aradke: visit in sort order. if table is unsorted, fall back to hashtablevisit. + visit is not supposed to change the list behind our back. + */ + + #ifdef fltablesortorderisarray + + register hdllist hlist = (**htable).sortedlist; + register long k, kmax; + + if (hlist == nil) { /*fallback*/ + + #ifdef fldebug + ctdebughashtablesortedvisitfallbacks++; + #endif + + return (hashtablevisit (htable, visit, refcon)); + } + + for (k = 0, kmax = listcount (hlist); k < kmax; k++) + + if (!(*visit) ((hdlhashnode) listget (hlist, k), refcon)) + + return (false); + + #else + + register hdlhashnode x; + + for (x = (**htable).hfirstsort; x != nil; x = (**x).sortedlink) + + if (!(*visit) (x, refcon)) + + return (false); + #endif + + return (true); + } /*hashtablesortedvisit*/ + + static boolean hashquicksort (hdlhashtable htable) { |
|
From: Andre R. <and...@us...> - 2004-12-03 13:09:25
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9052/Common/headers Modified Files: Tag: New_Tables_Experiment-branch lang.h Log Message: Fixed a crashing bug in thelogic underlying langexternalgetfullpath and langexternalgetquotedpath. Local symbol tables don't maintain a sort order anymore, so we have to fall back to looping over the hash buckets in this case. Luckily, this doesn't happen very often. Index: lang.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/lang.h,v retrieving revision 1.4.2.7 retrieving revision 1.4.2.8 diff -C2 -d -r1.4.2.7 -r1.4.2.8 *** lang.h 24 Nov 2004 20:48:17 -0000 1.4.2.7 --- lang.h 3 Dec 2004 13:09:10 -0000 1.4.2.8 *************** *** 981,984 **** --- 981,986 ---- extern boolean hashtablevisit (hdlhashtable, langtablevisitcallback, ptrvoid); + extern boolean hashtablesortedvisit (hdlhashtable, langtablevisitcallback, ptrvoid); //2004-12-02 aradke + #ifdef fltablesortorderisarray extern boolean hashresort (hdlhashtable, hdlhashnode, long); |
|
From: Andre R. <and...@us...> - 2004-12-03 13:04:07
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8030/Common/source Modified Files: Tag: New_Tables_Experiment-branch about.c Log Message: Bump release counter to -NT3. Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.4.2.2 retrieving revision 1.4.2.3 diff -C2 -d -r1.4.2.2 -r1.4.2.3 *** about.c 2 Dec 2004 13:28:49 -0000 1.4.2.2 --- about.c 3 Dec 2004 13:03:53 -0000 1.4.2.3 *************** *** 798,802 **** #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT2", bs); #endif --- 798,802 ---- #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT3", bs); #endif |
|
From: Andre R. <and...@us...> - 2004-12-02 13:29:04
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18119/Common/source Modified Files: Tag: New_Tables_Experiment-branch about.c Log Message: Bump release counter to -NT2. Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** about.c 1 Dec 2004 14:53:35 -0000 1.4.2.1 --- about.c 2 Dec 2004 13:28:49 -0000 1.4.2.2 *************** *** 798,802 **** #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT1", bs); #endif --- 798,802 ---- #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) ! pushstring ("\x04" "-NT2", bs); #endif |
|
From: Andre R. <and...@us...> - 2004-12-02 13:20:46
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16375/Common/headers Modified Files: Tag: New_Tables_Experiment-branch frontierdefs.h Log Message: Disable code for tracking deleted local addresses in langhash.c Index: frontierdefs.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/frontierdefs.h,v retrieving revision 1.2.2.5 retrieving revision 1.2.2.6 diff -C2 -d -r1.2.2.5 -r1.2.2.6 *** frontierdefs.h 24 Nov 2004 20:48:16 -0000 1.2.2.5 --- frontierdefs.h 2 Dec 2004 13:20:25 -0000 1.2.2.6 *************** *** 111,115 **** ! #define fltracklocaladdresses 0 /* enable code for tracking deleted local addresses */ --- 111,115 ---- ! #undef fltracklocaladdresses /* disable code for tracking deleted local addresses */ |
|
From: David B. <dav...@us...> - 2004-12-02 07:59:42
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7246 Modified Files: Tag: sidewinder-branch langpython.c Log Message: added call to langbackgroundtask in our trace routine Index: langpython.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langpython.c,v retrieving revision 1.2.4.25 retrieving revision 1.2.4.26 diff -C2 -d -r1.2.4.25 -r1.2.4.26 *** langpython.c 30 Nov 2004 10:48:05 -0000 1.2.4.25 --- langpython.c 2 Dec 2004 07:59:33 -0000 1.2.4.26 *************** *** 46,49 **** --- 46,50 ---- #include "kernelverbdefs.h" //#include "timedate.h" + #include "kb.h" #ifdef MACVERSION *************** *** 64,67 **** --- 65,69 ---- #include <compile.h> #include <frameobject.h> + #include <pystate.h> #elif defined(MACVERSION) *************** *** 74,77 **** --- 76,80 ---- #include <Python/compile.h> #include <Python/frameobject.h> + #include <Python/pystate.h> #elif TARGET_RT_MAC_CFM *************** *** 195,202 **** --- 198,207 ---- PyObject ** ptr_PyExc_TypeError; PyObject ** ptr_PyExc_ValueError; + PyObject ** ptr_PyExc_KeyboardInterrupt; void (*ptr_PyErr_Clear) (void); PyObject * (*ptr_PyErr_Occurred) (void); void (*ptr_PyErr_Print) (void); void (*ptr_PyErr_SetString) (PyObject *, const char *); + void (*ptr_PyErr_SetInterrupt) (void); void (*ptr_Py_Finalize) (); /*pythonrun.h*/ *************** *** 227,233 **** --- 232,242 ---- PyThreadState * (*ptr_PyEval_SaveThread) (void); void (*ptr_PyEval_SetProfile) (Py_tracefunc, PyObject *); + void (*ptr_PyEval_SetTrace) (Py_tracefunc, PyObject *); void (*ptr_PyEval_InitThreads) (void); void (*ptr_PyEval_AcquireLock) (void); void (*ptr_PyEval_ReleaseLock) (void); + + PyGILState_STATE (*ptr_PyGILState_Ensure) (void); + void (*ptr_PyGILState_Release) (PyGILState_STATE); } py; *************** *** 307,310 **** --- 316,320 ---- #define PyErr_Print (*py.ptr_PyErr_Print) #define PyErr_SetString (*py.ptr_PyErr_SetString) + #define PyErr_SetInterrupt (*py.ptr_PyErr_SetInterrupt) #define Py_Finalize (*py.ptr_Py_Finalize) *************** *** 334,341 **** --- 344,357 ---- #define PyEval_RestoreThread (*py.ptr_PyEval_RestoreThread) #define PyEval_SetProfile (*py.ptr_PyEval_SetProfile) + #define PyEval_SetTrace (*py.ptr_PyEval_SetTrace) #define PyEval_InitThreads (*py.ptr_PyEval_InitThreads) #define PyEval_AcquireLock (*py.ptr_PyEval_AcquireLock) #define PyEval_ReleaseLock (*py.ptr_PyEval_ReleaseLock) + #define PyExc_KeyboardInterrupt (*py.ptr_PyExc_KeyboardInterrupt) + + #define PyGILState_Ensure (*py.ptr_PyGILState_Ensure) + #define PyGILState_Release (*py.ptr_PyGILState_Release) + static boolean importsymbol (typythonlib hm, char *symbol, void **ptraddress) { *************** *** 449,452 **** --- 465,469 ---- fl = fl && IMPORTSYMBOL (hm, PyErr_Print); fl = fl && IMPORTSYMBOL (hm, PyErr_SetString); + fl = fl && IMPORTSYMBOL (hm, PyErr_SetInterrupt); fl = fl && IMPORTSYMBOL (hm, Py_Finalize); *************** *** 477,484 **** --- 494,506 ---- fl = fl && IMPORTSYMBOL (hm, PyEval_RestoreThread); fl = fl && IMPORTSYMBOL (hm, PyEval_SetProfile); + fl = fl && IMPORTSYMBOL (hm, PyEval_SetTrace); fl = fl && IMPORTSYMBOL (hm, PyEval_InitThreads); fl = fl && IMPORTSYMBOL (hm, PyEval_AcquireLock); fl = fl && IMPORTSYMBOL (hm, PyEval_ReleaseLock); + fl = fl && IMPORTSYMBOL (hm, PyExc_KeyboardInterrupt); + fl = fl && IMPORTSYMBOL (hm, PyGILState_Ensure); + fl = fl && IMPORTSYMBOL (hm, PyGILState_Release); + if (fl) { *************** *** 552,558 **** --- 574,583 ---- static boolean locked = true; static int lockCount = 0; + //PyGILState_STATE gstate; static void getpythonlock() { + //gstate = PyGILState_Ensure(); + //* lockCount++; *************** *** 562,569 **** --- 587,597 ---- locked = true; PyEval_AcquireLock(); + // */ } static void releasepythonlock() { + //PyGILState_Release(gstate); + //* if (lockCount == 0) return; *************** *** 574,577 **** --- 602,606 ---- PyEval_ReleaseLock(); } + // */ } *************** *** 1656,1660 **** static int checkstatus(PyObject *o, PyFrameObject *frame, int what, PyObject *arg) { ! //langbackgroundtask(false); return 0; } --- 1685,1694 ---- static int checkstatus(PyObject *o, PyFrameObject *frame, int what, PyObject *arg) { ! //printf("check\n"); ! //if (keyboardescape()) { ! if (!langbackgroundtask(false)) { ! //printf("hit\n"); ! PyErr_SetInterrupt(); ! } return 0; } *************** *** 1667,1670 **** --- 1701,1705 ---- Py_Initialize(); PyEval_InitThreads(); + //getpythonlock(); initGlobals(); *************** *** 1676,1680 **** currentCookie = time(NULL); ! PyEval_SetProfile(checkstatus, NULL); releasepythonlock(); --- 1711,1715 ---- currentCookie = time(NULL); ! PyEval_SetTrace(checkstatus, NULL); releasepythonlock(); |
|
From: Andre R. <and...@us...> - 2004-12-01 20:33:16
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22959/Common/source Modified Files: Tag: New_Tables_Experiment-branch langhash.c Log Message: Fixed critical bug in lower-casing logic of hash function that would result in some table item names suddenly becoming sensitive to the case of the last character. Index: langhash.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langhash.c,v retrieving revision 1.4.2.17 retrieving revision 1.4.2.18 diff -C2 -d -r1.4.2.17 -r1.4.2.18 *** langhash.c 24 Nov 2004 20:48:17 -0000 1.4.2.17 --- langhash.c 1 Dec 2004 20:32:47 -0000 1.4.2.18 *************** *** 1367,1371 **** break; ! case 1: hash += *pkey; hash ^= hash << 10; hash += hash >> 1; --- 1367,1371 ---- break; ! case 1: hash += getuchar (*pkey); hash ^= hash << 10; hash += hash >> 1; |
|
From: Andre R. <and...@us...> - 2004-12-01 20:04:16
|
Update of /cvsroot/frontierkernel/Frontier/resources/Radio In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14559/Radio Added Files: Tag: New_Tables_Experiment-branch BNDL.r icns.r Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) --- NEW FILE: icns.r --- (This appears to be a binary file; contents omitted.) --- NEW FILE: BNDL.r --- data 'icl4' (0) { $"0000 0000 3333 3333 3333 3333 0000 0000" /* ....33333333.... */ $"0000 0003 3333 3333 3333 3333 3000 0000" /* ....333333330... */ $"0000 0033 3333 3333 3333 3333 3300 0000" /* ...3333333333... */ $"0000 0333 3333 333C 3333 3333 3330 0000" /* ...3333<333330.. */ $"0000 3333 3333 33CC C333 3333 3333 0000" /* ..33333ÌÃ33333.. */ $"0003 3333 333C 33CC C33C C333 3333 3000" /* ..333<3ÌÃ<Ã3330. */ $"0033 3333 33CC C3CC C3CC C333 3333 3300" /* .3333ÌÃÌÃÌÃ3333. */ $"0333 3333 33CC C3CC C3CC C333 3333 3330" /* .3333ÌÃÌÃÌÃ33330 */ $"3333 3333 C3CC C3CC C3CC C333 3333 3333" /* 3333ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC C3CC C3CC C333 3333 3333" /* 333<ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC C3CC C3CC C333 3333 3333" /* 333<ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC C3CC C3CC C333 3333 3333" /* 333<ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC C3CC C3CC C333 3333 3333" /* 333<ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC C3CC C3CC C333 3333 3333" /* 333<ÃÌÃÌÃÌÃ33333 */ $"3333 333C C3CC CCCC CCCC C333 CCC3 3333" /* 333<ÃÌÌÌÌÌÃ3ÌÃ33 */ $"3333 333C CCCC CCCC CCCC C33C CCC3 3333" /* 333<ÌÌÌÌÌÌÃ<ÌÃ33 */ $"3333 333C CCCC CCCC CCCC C33C CCC3 3333" /* 333<ÌÌÌÌÌÌÃ<ÌÃ33 */ $"3333 333C CCCC CCCC CCCC C3CC CC33 3333" /* 333<ÌÌÌÌÌÌÃÌÌ333 */ $"3333 333C CCCC CCCC CCCC CCCC CC33 3333" /* 333<ÌÌÌÌÌÌÌÌÌ333 */ $"3333 333C CCCC CCCC CCCC CCCC C333 3333" /* 333<ÌÌÌÌÌÌÌÌÃ333 */ $"3333 333C CCCC CCCC CCCC CCCC C333 3333" /* 333<ÌÌÌÌÌÌÌÌÃ333 */ $"3333 333C CCCC CCCC CCCC CCCC 3333 3333" /* 333<ÌÌÌÌÌÌÌÌ3333 */ $"3333 333C CCCC CCCC CCCC CCCC 3333 3333" /* 333<ÌÌÌÌÌÌÌÌ3333 */ $"3333 333C CCCC CCCC CCCC CCC3 3333 3333" /* 333<ÌÌÌÌÌÌÌÃ3333 */ $"3333 333C CCCC CCCC CCCC CCC3 3333 3333" /* 333<ÌÌÌÌÌÌÌÃ3333 */ $"0333 333C CCCC C3CC CCCC CC33 3333 3330" /* .33<ÌÌÃÌÌÌÌ33330 */ $"0033 3333 CCCC CC3C CCCC C333 3333 3300" /* .333ÌÌÌ<ÌÌÃ3333. */ $"0003 3333 3333 3333 3333 3333 3333 3000" /* ..3333333333330. */ $"0000 3333 3333 3333 3333 3333 3333 0000" /* ..333333333333.. */ $"0000 0333 3333 3333 3333 3333 3330 0000" /* ...33333333330.. */ $"0000 0033 3333 3333 3333 3333 3300 0000" /* ...3333333333... */ $"0000 0003 3333 3333 3333 3333 3000 0000" /* ....333333330... */ }; data 'icl4' (1) { $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 0000 0FFF FFFF FFFF FFFF FFFF FFFF" /* ð....ÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 0000 0FFF FFFF FFFF FFFF FFFF FFFF" /* ð....ÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 0000 0FFF FFFF FFFF FFFF FFFF FFFF" /* ð....ÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 0000 0FFF FFFF FFFF FFFF FFFF FFFF" /* ð....ÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 0000 0FFF FFFF FF00 0000 FFFF FFFF" /* ð....ÿÿÿÿ...ÿÿÿÿ */ $"F000 F000 0FFF FFFF 0000 0000 00FF FFFF" /* ð.ð..ÿÿÿ.....ÿÿÿ */ $"F000 F000 0FFF FFF0 0000 0000 000F FFFF" /* ð.ð..ÿÿð......ÿÿ */ $"F000 F000 0FFF FF00 0000 0000 0000 FFFF" /* ð.ð..ÿÿ.......ÿÿ */ $"F000 0000 0FFF F000 0000 0000 0000 0FFF" /* ð....ÿð........ÿ */ $"F000 0000 0FFF F000 0000 0000 0000 0FFF" /* ð....ÿð........ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0000 0FFF 0003 3303 3303 3300 00FF" /* ð....ÿ..3.3.3..ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0000 0FFF 0003 3303 3303 0300 00FF" /* ð....ÿ..3.3....ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0000 0FFF 0003 3303 0333 0000 00FF" /* ð....ÿ..3..3...ÿ */ $"F000 0000 0FFF 0000 0000 0000 0000 00FF" /* ð....ÿ.........ÿ */ $"F000 0FFF FFFF 0000 0000 0000 0000 00FF" /* ð..ÿÿÿ.........ÿ */ $"F000 000F FFFF 0003 3330 3330 3300 00FF" /* ð...ÿÿ..30303..ÿ */ $"F000 000F FFFF 0000 0000 0000 0000 0FFF" /* ð...ÿÿ.........ÿ */ $"F000 000F FFFF 0000 0000 0000 0000 0FFF" /* ð...ÿÿ.........ÿ */ $"F000 000F FFFF 0000 0000 0000 0000 FFFF" /* ð...ÿÿ........ÿÿ */ $"F000 000F FFF0 0000 0000 0000 000F FFFF" /* ð...ÿð........ÿÿ */ $"F000 FFFF F000 0000 0000 0000 0FFF FFFF" /* ð.ÿÿð........ÿÿÿ */ $"F000 000F FFFF FFFF FFFF FFFF FFFF FFFF" /* ð...ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 000F FFFF FFFF FFFF FFFF FFFF FFFF" /* ð...ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 000F FFFF FFFF FFFF FFFF FFFF FFFF" /* ð...ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"F000 000F FFFF FFFF FFFF FFFF FFFF FFFF" /* ð...ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ }; data 'icl4' (2) { $"0000 0000 0000 000F F000 0000 0000 0000" /* ........ð....... */ $"0000 0000 0000 00FF FF00 0000 0000 0000" /* .......ÿÿ....... */ $"0000 0000 0000 00FF FF00 0000 0000 0000" /* .......ÿÿ....... */ $"0000 0000 0000 0FF1 1FF0 0000 0000 0000" /* .......ñ.ð...... */ $"0000 0000 0000 0FF1 1FF0 0000 0000 0000" /* .......ñ.ð...... */ $"0000 0000 0000 FF11 11FF 0000 0000 0000" /* ......ÿ..ÿ...... */ $"0000 0000 0000 FF11 11FF 0000 0000 0000" /* ......ÿ..ÿ...... */ $"0000 0000 000F F111 111F F000 0000 0000" /* ......ñ...ð..... */ $"0000 0000 000F F11F F11F F000 0000 0000" /* ......ñ.ñ.ð..... */ $"0000 0000 00FF 11FF FF11 FF00 0000 0000" /* .....ÿ.ÿÿ.ÿ..... */ $"0000 0000 00FF 11FF FF11 FF00 0000 0000" /* .....ÿ.ÿÿ.ÿ..... */ $"0000 0000 0FF1 11FF FF11 1FF0 0000 0000" /* .....ñ.ÿÿ..ð.... */ $"0000 0000 0FF1 11FF FF11 1FF0 0000 0000" /* .....ñ.ÿÿ..ð.... */ $"0000 0000 FF11 11FF FF11 11FF 0000 0000" /* ....ÿ..ÿÿ..ÿ.... */ $"0000 0000 FF11 11FF FF11 11FF 0000 0000" /* ....ÿ..ÿÿ..ÿ.... */ $"0000 000F F111 11FF FF11 111F F000 0000" /* ....ñ..ÿÿ...ð... */ $"0000 000F F111 11FF FF11 111F F000 0000" /* ....ñ..ÿÿ...ð... */ $"0000 00FF 1111 11FF FF11 1111 FF00 0000" /* ...ÿ...ÿÿ...ÿ... */ $"0000 00FF 1111 11FF FF11 1111 FF00 0000" /* ...ÿ...ÿÿ...ÿ... */ $"0000 0FF1 1111 11FF FF11 1111 1FF0 0000" /* ...ñ...ÿÿ....ð.. */ $"0000 0FF1 1111 111F F111 1111 1FF0 0000" /* ...ñ....ñ....ð.. */ $"0000 FF11 1111 111F F111 1111 11FF 0000" /* ..ÿ.....ñ....ÿ.. */ $"0000 FF11 1111 1111 1111 1111 11FF 0000" /* ..ÿ..........ÿ.. */ $"000F F111 1111 1111 1111 1111 111F F000" /* ..ñ...........ð. */ $"000F F111 1111 111F F111 1111 111F F000" /* ..ñ.....ñ.....ð. */ $"00FF 1111 1111 11FF FF11 1111 1111 FF00" /* .ÿ.....ÿÿ.....ÿ. */ $"00FF 1111 1111 11FF FF11 1111 1111 FF00" /* .ÿ.....ÿÿ.....ÿ. */ $"0FF1 1111 1111 111F F111 1111 1111 1FF0" /* .ñ......ñ......ð */ $"0FF1 1111 1111 1111 1111 1111 1111 1FF0" /* .ñ.............ð */ $"FF11 1111 1111 1111 1111 1111 1111 11FF" /* ÿ..............ÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"0FFF FFFF FFFF FFFF FFFF FFFF FFFF FFF0" /* .ÿÿÿÿÿÿÿÿÿÿÿÿÿÿð */ }; data 'icl4' (128) { $"00DD DDDD DDDD DDDD DDDD DDDD DDDD DD00" /* .ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ. */ $"0D00 0000 0000 0000 0000 0000 0000 0CA0" /* ............... */ $"D00C CCCC C00C CCCC CCCC CCCC CCCC CCCA" /* Ð.ÌÌÀ.ÌÌÌÌÌÌÌÌÌÊ */ $"D0CC CCC0 0CCC CCCC CCCC CCCC CCCC CCCA" /* ÐÌÌÀ.ÌÌÌÌÌÌÌÌÌÌÊ */ $"D0CC CC0C CCCC CCDD DDCC CCCC CCCC CCCA" /* ÐÌÌ.ÌÌÌÝÝÌÌÌÌÌÌÊ */ $"D0CC C0CC CCCC CCCC CCCC DCCC CCCC CCCA" /* ÐÌÀÌÌÌÌÌÌÌÜÌÌÌÌÊ */ $"D0CC 00CC CCCC C000 000C CCCC CCCC CCCA" /* ÐÌ.ÌÌÌÀ...ÌÌÌÌÌÊ */ $"D0CC 0CCC CC00 0CCC CCC0 0CCC CCCC CCCA" /* ÐÌ.ÌÌ..ÌÌÀ.ÌÌÌÌÊ */ $"D0C0 CCCC C00C CCDD DDDC C00C CCCC CCCA" /* ÐÀÌÌÀ.ÌÝÝÜÀ.ÌÌÌÊ */ $"D0C0 CCCC 0CCC DCCC CCCD DCCC CCCC CCCA" /* ÐÀÌÌ.ÌÜÌÌÍÜÌÌÌÌÊ */ $"D00C CCCC CCCD CC00 000C CDCC CCCC CCCA" /* Ð.ÌÌÌÍÌ...ÍÌÌÌÌÊ */ $"D00C CCCC CCDC 0CCD DDC0 CCDC CCCC CCCA" /* Ð.ÌÌÌÜ.ÍÝÀÌÜÌÌÌÊ */ $"D0CC CCCC CDC0 CDDC DD5D 0CDC CCCC CCCA" /* ÐÌÌÌÍÀÍÜÝ].ÜÌÌÌÊ */ $"D0CC CCCC DCCC DCCC DD55 CCCD CCCC CCCA" /* ÐÌÌÌÜÌÜÌÝUÌÍÌÌÌÊ */ $"D0CC DCCC DCCC DCCD D556 ECCD CCCC CCCA" /* ÐÌÜÌÜÌÜÍÕVìÍÌÌÌÊ */ $"D0CC DCCC DCCD 5DD5 555E ECCD CCCC CCCA" /* ÐÌÜÌÜÍ]ÕU^ìÍÌÌÌÊ */ $"D0CC DCCC DCCD 5555 56EF ECCD CCCC CCCA" /* ÐÌÜÌÜÍUUVïìÍÌÌÌÊ */ $"D0CC CCCC DCCC 5556 6EFF ECCD CCCC CCCA" /* ÐÌÌÌÜÌUVnÿìÍÌÌÌÊ */ $"D0CC CCCC CCCC D6EE EFFE DCCC CCCC CCCA" /* ÐÌÌÌÌÌÖîïþÜÌÌÌÌÊ */ $"D0CC CCCC CCCC CEEF FFED CCDC CCCC CCCA" /* ÐÌÌÌÌÌÎïÿíÌÜÌÌÌÊ */ $"D0CC CCCC 0CDC CCDE EDDC CDC0 CCCC CCCA" /* ÐÌÌÌ.ÜÌÞíÜÍÀÌÌÌÊ */ $"D0CC CCCC C0CD CCCC CCCD DCCC CCCC CCCA" /* ÐÌÌÌÀÍÌÌÌÍÜÌÌÌÌÊ */ $"D0CC CCCC CC0C CDDD DDDD CC0C CCCC CCCA" /* ÐÌÌÌÌ.ÍÝÝÝÌ.ÌÌÌÊ */ $"D0CC C0CC CCC0 CCCC CCCC 00CC CCCC CCCA" /* ÐÌÀÌÌÀÌÌÌÌ.ÌÌÌÌÊ */ $"D0CC CC0C CCCC 0000 0000 0CCC C0CC CCCA" /* ÐÌÌ.ÌÌ.....ÌÀÌÌÊ */ $"D0CC CCC0 CCCC CC00 00CC CCCC 0CCC CCCA" /* ÐÌÌÀÌÌÌ..ÌÌÌ.ÌÌÊ */ $"D0CC CCCC 0CCC CCCC CCCC CCC0 CCCC CCCA" /* ÐÌÌÌ.ÌÌÌÌÌÌÀÌÌÌÊ */ $"D0CC CCCC C00C CCCC CCCC C00C CCCC C0CA" /* ÐÌÌÌÀ.ÌÌÌÌÀ.ÌÌÀÊ */ $"D0CC CCCC CC00 0000 0000 0CCC CCCC 0CCA" /* ÐÌÌÌÌ......ÌÌÌ.Ê */ $"DC0C CCCC CCCC C000 00CC CCCC CC00 CCDA" /* Ü.ÌÌÌÌÀ..ÌÌÌÌ.ÌÚ */ $"0ADC CCCC CCCC CCCC CCCC CCCC CCCC CDA0" /* ÂÜÌÌÌÌÌÌÌÌÌÌÌÌÍ */ $"00AA AAAA AAAA AAAA AAAA AAAA AAAA AA00" /* .ªªªªªªªªªªªªªª. */ }; data 'icl4' (129) { $"0000 FFFF FFFF FFFF FFFF FF00 0000 0000" /* ..ÿÿÿÿÿÿÿÿÿ..... */ $"0000 F000 0000 0000 0000 0FF0 0000 0000" /* ..ð........ð.... */ $"0000 F000 0000 0000 0000 0FCF 0000 0000" /* ..ð........Ï.... */ $"0000 F000 0000 0000 0000 0FCC F000 0000" /* ..ð........Ìð... */ $"0000 F000 0000 0000 0000 0FCC CF00 0000" /* ..ð........ÌÏ... */ $"0000 F000 0000 0000 0000 0FCC CCF0 0000" /* ..ð........ÌÌð.. */ $"0000 F000 0000 0000 0000 0FFF FFFF 0000" /* ..ð........ÿÿÿ.. */ $"0000 F000 0000 0DDD DDD0 0000 000F 0000" /* ..ð....ÝÝÐ...... */ $"0000 F000 000D D000 000D D000 000F 0000" /* ..ð...Ð...Ð..... */ $"0000 F000 0DD0 0000 0000 0DD0 000F 0000" /* ..ð..Ð.....Ð.... */ $"0000 F000 D000 00DD DD00 000D 000F 0000" /* ..ð.Ð..ÝÝ....... */ $"0000 F000 D000 DD00 00DD 000D 000F 0000" /* ..ð.Ð.Ý..Ý...... */ $"0000 F00D 000D 0000 0000 D000 D00F 0000" /* ..ð.......Ð.Ð... */ $"0000 F00D 00D0 00DD DD00 0D00 D00F 0000" /* ..ð..Ð.ÝÝ...Ð... */ $"0000 F0D0 00D0 0D00 0DD0 0D00 0D0F 0000" /* ..ðÐ.Ð...Ð...... */ $"0000 F0D0 0D00 D000 DD5D 00D0 0D0F 0000" /* ..ðÐ..Ð.Ý].Ð.... */ $"0000 F0D0 0D00 D000 D566 00D0 0D0F 0000" /* ..ðÐ..Ð.Õf.Ð.... */ $"0000 F0D0 0D00 D0DD 5EEE 00D0 0D0F 0000" /* ..ðÐ..ÐÝ^î.Ð.... */ $"0000 F0D0 0D00 DDD5 EFF5 00D0 0D0F 0000" /* ..ðÐ..ÝÕïõ.Ð.... */ $"0000 F0D0 00D0 0D56 FFE0 0D00 0D0F 0000" /* ..ðÐ.Ð.Vÿà...... */ $"0000 F00D 00D0 0056 E500 0D00 D00F 0000" /* ..ð..Ð.Vå...Ð... */ $"0000 F00D 000D 0000 0000 D000 D00F 0000" /* ..ð.......Ð.Ð... */ $"0000 F000 D000 DD00 00DD 000D 000F 0000" /* ..ð.Ð.Ý..Ý...... */ $"0000 F000 D000 00DD DD00 000D 000F 0000" /* ..ð.Ð..ÝÝ....... */ $"0000 F000 0DD0 0000 0000 0DD0 000F 0000" /* ..ð..Ð.....Ð.... */ $"0000 F000 000D D000 000D D000 000F 0000" /* ..ð...Ð...Ð..... */ $"0000 F000 0000 0DDD DDD0 0000 000F 0000" /* ..ð....ÝÝÐ...... */ $"0000 F000 0000 0000 0000 0000 000F 0000" /* ..ð............. */ $"0000 F000 0000 0000 0000 0000 000F 0000" /* ..ð............. */ $"0000 F000 0000 0000 0000 0000 000F 0000" /* ..ð............. */ $"0000 F000 0000 0000 0000 0000 000F 0000" /* ..ð............. */ $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000" /* ..ÿÿÿÿÿÿÿÿÿÿÿÿ.. */ }; data 'icl8' (0) { $"0000 0000 0000 0000 D8D8 D8D8 D8D8 D8D8" /* ........ØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 0000 0000 0000 0000" /* ØØØØØØØØ........ */ $"0000 0000 0000 00D8 D8D8 D8D8 D8D8 D8D8" /* .......ØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D800 0000 0000 0000" /* ØØØØØØØØØ....... */ $"0000 0000 0000 D8D8 D8D8 D8D8 D8D8 D8D8" /* ......ØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D8D8 0000 0000 0000" /* ØØØØØØØØØØ...... */ $"0000 0000 00D8 D8D8 D8D8 D8D8 D8D8 D808" /* .....ØØØØØØØØØØ. */ $"D8D8 D8D8 D8D8 D8D8 D8D8 D800 0000 0000" /* ØØØØØØØØØØØ..... */ $"0000 0000 D8D8 D8D8 D8D8 D8D8 D8D8 0808" /* ....ØØØØØØØØØØ.. */ $"08D8 D8D8 D8D8 D8D8 D8D8 D8D8 0000 0000" /* .ØØØØØØØØØØØ.... */ $"0000 00D8 D8D8 D8D8 D8D8 D808 D8D8 0808" /* ...ØØØØØØØØ.ØØ.. */ $"08D8 D808 08D8 D8D8 D8D8 D8D8 D800 0000" /* .ØØ..ØØØØØØØØ... */ $"0000 D8D8 D8D8 D8D8 D8D8 0808 08D8 0808" /* ..ØØØØØØØØ...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 0000" /* .Ø...ØØØØØØØØØ.. */ $"00D8 D8D8 D8D8 D8D8 D8D8 0808 08D8 0808" /* .ØØØØØØØØØ...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D800" /* .Ø...ØØØØØØØØØØ. */ $"D8D8 D8D8 D8D8 D8D8 08D8 0808 08D8 0808" /* ØØØØØØØØ.Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 08D8 0808" /* ØØØØØØØ..Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 08D8 0808" /* ØØØØØØØ..Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 08D8 0808" /* ØØØØØØØ..Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 08D8 0808" /* ØØØØØØØ..Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 08D8 0808" /* ØØØØØØØ..Ø...Ø.. */ $"08D8 0808 08D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .Ø...ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 08D8 0808 0808 0808" /* ØØØØØØØ..Ø...... */ $"0808 0808 08D8 D8D8 0808 08D8 D8D8 D8D8" /* .....ØØØ...ØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 08D8 D808 0808 08D8 D8D8 D8D8" /* .....ØØ....ØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 08D8 D808 0808 08D8 D8D8 D8D8" /* .....ØØ....ØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 08D8 0808 0808 D8D8 D8D8 D8D8" /* .....Ø....ØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 0808 0808 D8D8 D8D8 D8D8" /* ..........ØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 0808 08D8 D8D8 D8D8 D8D8" /* .........ØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 0808 08D8 D8D8 D8D8 D8D8" /* .........ØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 0808 D8D8 D8D8 D8D8 D8D8" /* ........ØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 0808 D8D8 D8D8 D8D8 D8D8" /* ........ØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 08D8 D8D8 D8D8 D8D8 D8D8" /* .......ØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D808 0808 0808 0808 0808" /* ØØØØØØØ......... */ $"0808 0808 0808 08D8 D8D8 D8D8 D8D8 D8D8" /* .......ØØØØØØØØØ */ $"00D8 D8D8 D8D8 D808 0808 0808 08D8 0808" /* .ØØØØØØ......Ø.. */ $"0808 0808 0808 D8D8 D8D8 D8D8 D8D8 D800" /* ......ØØØØØØØØØ. */ $"0000 D8D8 D8D8 D8D8 0808 0808 0808 D808" /* ..ØØØØØØ......Ø. */ $"0808 0808 08D8 D8D8 D8D8 D8D8 D8D8 0000" /* .....ØØØØØØØØØ.. */ $"0000 00D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* ...ØØØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D800 0000" /* ØØØØØØØØØØØØØ... */ $"0000 0000 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* ....ØØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 0000 0000" /* ØØØØØØØØØØØØ.... */ $"0000 0000 00D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* .....ØØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D8D8 D800 0000 0000" /* ØØØØØØØØØØØ..... */ $"0000 0000 0000 D8D8 D8D8 D8D8 D8D8 D8D8" /* ......ØØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D8D8 0000 0000 0000" /* ØØØØØØØØØØ...... */ $"0000 0000 0000 00D8 D8D8 D8D8 D8D8 D8D8" /* .......ØØØØØØØØØ */ $"D8D8 D8D8 D8D8 D8D8 D800 0000 0000 0000" /* ØØØØØØØØØ....... */ }; data 'icl8' (1) { $"FFFF FFFF FFFF FFFF FFFD FDFD FDFD FDFD" /* ÿÿÿÿÿÿÿÿÿýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 0808 08FD FDFD FDFD FDFD" /* ÿ........ýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 0808 08FD FDFD FDFD FDFD" /* ÿ........ýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 0808 08FD FDFD FDFD FDFD" /* ÿ........ýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 0808 08FD FDFD FDFD FDFD" /* ÿ........ýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 0808 08FD FDFD FDFD FDFD" /* ÿ........ýýýýýýý */ $"FDFD 2B2B 2B2B 2B2B FDFD FDFD FDFD FDFD" /* ýý++++++ýýýýýýýý */ $"FF08 0808 FF08 0808 08FD FDFD FDFD FDFD" /* ÿ...ÿ....ýýýýýýý */ $"2B2B 2B2B 2B2B 2B2B 2B2B FDFD FDFD FDFD" /* ++++++++++ýýýýýý */ $"FF08 0808 FF08 0808 08FD FDFD FDFD FD2B" /* ÿ...ÿ....ýýýýýý+ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD FDFD" /* +++++++++++ýýýýý */ $"FF08 0808 FF08 0808 08FD FDFD FDFD 2B2B" /* ÿ...ÿ....ýýýýý++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD FDFD" /* ++++++++++++ýýýý */ $"FF08 0808 0808 0808 08FD FDFD FD2B 2B2B" /* ÿ........ýýýý+++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD" /* +++++++++++++ýýý */ $"FF08 0808 0808 0808 08FD FDFD FD2B 2B2B" /* ÿ........ýýýý+++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD" /* +++++++++++++ýýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2BD8" /* ÿ........ýýý+++Ø */ $"D8D8 2BD8 D8D8 2BD8 D8D8 2B2B 2B2B FDFD" /* ØØ+ØØØ+ØØØ++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2BD8" /* ÿ........ýýý+++Ø */ $"D8D8 2BD8 D8D8 2BD8 2BD8 2B2B 2B2B FDFD" /* ØØ+ØØØ+Ø+Ø++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2BD8" /* ÿ........ýýý+++Ø */ $"D8D8 2BD8 2BD8 D8D8 2B2B 2B2B 2B2B FDFD" /* ØØ+Ø+ØØØ++++++ýý */ $"FF08 0808 0808 0808 08FD FDFD 2B2B 2B2B" /* ÿ........ýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 08FD FDFD FDFD FDFD 2B2B 2B2B" /* ÿ....ýýýýýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD" /* ++++++++++++++ýý */ $"FF08 0808 0808 08FD FDFD FDFD 2B2B 2BD8" /* ÿ......ýýýýý+++Ø */ $"D8D8 D82B D8D8 D82B D8D8 2B2B 2B2B FDFD" /* ØØØ+ØØØ+ØØ++++ýý */ $"FF08 0808 0808 08FD FDFD FDFD 2B2B 2B2B" /* ÿ......ýýýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD" /* +++++++++++++ýýý */ $"FF08 0808 0808 08FD FDFD FDFD 2B2B 2B2B" /* ÿ......ýýýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD" /* +++++++++++++ýýý */ $"FF08 0808 0808 08FD FDFD FDFD 2B2B 2B2B" /* ÿ......ýýýýý++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2B2B FDFD FDFD" /* ++++++++++++ýýýý */ $"FF08 0808 0808 08FD FDFD FD2B 2B2B 2B2B" /* ÿ......ýýýý+++++ */ $"2B2B 2B2B 2B2B 2B2B 2B2B 2BFD FDFD FDFD" /* +++++++++++ýýýýý */ $"FF08 0808 FDFD FDFD FD2B 2B2B 2B2B 2B2B" /* ÿ...ýýýýý+++++++ */ $"2B2B 2B2B 2B2B 2B2B 2BFD FDFD FDFD FDFD" /* +++++++++ýýýýýýý */ $"FF08 0808 0808 08FD FDFD FDFD FDFD FDFD" /* ÿ......ýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 08FD FDFD FDFD FDFD FDFD" /* ÿ......ýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 08FD FDFD FDFD FDFD FDFD" /* ÿ......ýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FF08 0808 0808 08FD FDFD FDFD FDFD FDFD" /* ÿ......ýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ $"FFFF FFFF FFFF FFFD FDFD FDFD FDFD FDFD" /* ÿÿÿÿÿÿÿýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ }; data 'icl8' (2) { $"0000 0000 0000 0000 0000 0000 0000 00FF" /* ...............ÿ */ $"FF00 0000 0000 0000 0000 0000 0000 0000" /* ÿ............... */ $"0000 0000 0000 0000 0000 0000 0000 FFFF" /* ..............ÿÿ */ $"FFFF 0000 0000 0000 0000 0000 0000 0000" /* ÿÿ.............. */ $"0000 0000 0000 0000 0000 0000 0000 FFFF" /* ..............ÿÿ */ $"FFFF 0000 0000 0000 0000 0000 0000 0000" /* ÿÿ.............. */ $"0000 0000 0000 0000 0000 0000 00FF FF05" /* .............ÿÿ. */ $"05FF FF00 0000 0000 0000 0000 0000 0000" /* .ÿÿ............. */ $"0000 0000 0000 0000 0000 0000 00FF FF05" /* .............ÿÿ. */ $"05FF FF00 0000 0000 0000 0000 0000 0000" /* .ÿÿ............. */ $"0000 0000 0000 0000 0000 0000 FFFF 0505" /* ............ÿÿ.. */ $"0505 FFFF 0000 0000 0000 0000 0000 0000" /* ..ÿÿ............ */ $"0000 0000 0000 0000 0000 0000 FFFF 0505" /* ............ÿÿ.. */ $"0505 FFFF 0000 0000 0000 0000 0000 0000" /* ..ÿÿ............ */ $"0000 0000 0000 0000 0000 00FF FF05 0505" /* ...........ÿÿ... */ $"0505 05FF FF00 0000 0000 0000 0000 0000" /* ...ÿÿ........... */ $"0000 0000 0000 0000 0000 00FF FF05 05FF" /* ...........ÿÿ..ÿ */ $"FF05 05FF FF00 0000 0000 0000 0000 0000" /* ÿ..ÿÿ........... */ $"0000 0000 0000 0000 0000 FFFF 0505 FFFF" /* ..........ÿÿ..ÿÿ */ $"FFFF 0505 FFFF 0000 0000 0000 0000 0000" /* ÿÿ..ÿÿ.......... */ $"0000 0000 0000 0000 0000 FFFF 0505 FFFF" /* ..........ÿÿ..ÿÿ */ $"FFFF 0505 FFFF 0000 0000 0000 0000 0000" /* ÿÿ..ÿÿ.......... */ $"0000 0000 0000 0000 00FF FF05 0505 FFFF" /* .........ÿÿ...ÿÿ */ $"FFFF 0505 05FF FF00 0000 0000 0000 0000" /* ÿÿ...ÿÿ......... */ $"0000 0000 0000 0000 00FF FF05 0505 FFFF" /* .........ÿÿ...ÿÿ */ $"FFFF 0505 05FF FF00 0000 0000 0000 0000" /* ÿÿ...ÿÿ......... */ $"0000 0000 0000 0000 FFFF 0505 0505 FFFF" /* ........ÿÿ....ÿÿ */ $"FFFF 0505 0505 FFFF 0000 0000 0000 0000" /* ÿÿ....ÿÿ........ */ $"0000 0000 0000 0000 FFFF 0505 0505 FFFF" /* ........ÿÿ....ÿÿ */ $"FFFF 0505 0505 FFFF 0000 0000 0000 0000" /* ÿÿ....ÿÿ........ */ $"0000 0000 0000 00FF FF05 0505 0505 FFFF" /* .......ÿÿ.....ÿÿ */ $"FFFF 0505 0505 05FF FF00 0000 0000 0000" /* ÿÿ.....ÿÿ....... */ $"0000 0000 0000 00FF FF05 0505 0505 FFFF" /* .......ÿÿ.....ÿÿ */ $"FFFF 0505 0505 05FF FF00 0000 0000 0000" /* ÿÿ.....ÿÿ....... */ $"0000 0000 0000 FFFF 0505 0505 0505 FFFF" /* ......ÿÿ......ÿÿ */ $"FFFF 0505 0505 0505 FFFF 0000 0000 0000" /* ÿÿ......ÿÿ...... */ $"0000 0000 0000 FFFF 0505 0505 0505 FFFF" /* ......ÿÿ......ÿÿ */ $"FFFF 0505 0505 0505 FFFF 0000 0000 0000" /* ÿÿ......ÿÿ...... */ $"0000 0000 00FF FF05 0505 0505 0505 FFFF" /* .....ÿÿ.......ÿÿ */ $"FFFF 0505 0505 0505 05FF FF00 0000 0000" /* ÿÿ.......ÿÿ..... */ $"0000 0000 00FF FF05 0505 0505 0505 05FF" /* .....ÿÿ........ÿ */ $"FF05 0505 0505 0505 05FF FF00 0000 0000" /* ÿ........ÿÿ..... */ $"0000 0000 FFFF 0505 0505 0505 0505 05FF" /* ....ÿÿ.........ÿ */ $"FF05 0505 0505 0505 0505 FFFF 0000 0000" /* ÿ.........ÿÿ.... */ $"0000 0000 FFFF 0505 0505 0505 0505 0505" /* ....ÿÿ.......... */ $"0505 0505 0505 0505 0505 FFFF 0000 0000" /* ..........ÿÿ.... */ $"0000 00FF FF05 0505 0505 0505 0505 0505" /* ...ÿÿ........... */ $"0505 0505 0505 0505 0505 05FF FF00 0000" /* ...........ÿÿ... */ $"0000 00FF FF05 0505 0505 0505 0505 05FF" /* ...ÿÿ..........ÿ */ $"FF05 0505 0505 0505 0505 05FF FF00 0000" /* ÿ..........ÿÿ... */ $"0000 FFFF 0505 0505 0505 0505 0505 FFFF" /* ..ÿÿ..........ÿÿ */ $"FFFF 0505 0505 0505 0505 0505 FFFF 0000" /* ÿÿ..........ÿÿ.. */ $"0000 FFFF 0505 0505 0505 0505 0505 FFFF" /* ..ÿÿ..........ÿÿ */ $"FFFF 0505 0505 0505 0505 0505 FFFF 0000" /* ÿÿ..........ÿÿ.. */ $"00FF FF05 0505 0505 0505 0505 0505 05FF" /* .ÿÿ............ÿ */ $"FF05 0505 0505 0505 0505 0505 05FF FF00" /* ÿ............ÿÿ. */ $"00FF FF05 0505 0505 0505 0505 0505 0505" /* .ÿÿ............. */ $"0505 0505 0505 0505 0505 0505 05FF FF00" /* .............ÿÿ. */ $"FFFF 0505 0505 0505 0505 0505 0505 0505" /* ÿÿ.............. */ $"0505 0505 0505 0505 0505 0505 0505 FFFF" /* ..............ÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF00" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ. */ }; data 'icl8' (128) { $"0000 5656 5656 5656 5656 5656 5656 5656" /* ..VVVVVVVVVVVVVV */ $"5656 5656 5656 5656 5656 5656 5656 0000" /* VVVVVVVVVVVVVV.. */ $"0056 0000 0000 0000 0000 0000 0000 0000" /* .V.............. */ $"0000 0000 0000 0000 0000 0000 00F6 FD00" /* .............öý. */ $"5600 00F6 F6F6 2B2B F6F5 F5F6 F6F6 F6F6" /* V..ööö++öõõööööö */ $"F6F6 F6F6 F6F6 F6F6 F62B 2BF6 F6F6 F7FD" /* ööööööööö++ööö÷ý */ $"5600 F6F6 F6F7 2BF5 F5F6 F6F6 F6F6 F6F6" /* V.ööö÷+õõööööööö */ $"F6F6 F6F6 F6F6 F6F6 F6F6 F62B F6F6 F7FD" /* ööööööööööö+öö÷ý */ $"5600 F6F6 F72B F5F6 F6F6 F62B F7F8 56F9" /* V.öö÷+õöööö+÷øVù */ $"F956 F8F7 F6F6 F6F6 F6F6 F6F6 2BF6 2BFD" /* ùVø÷öööööööö+ö+ý */ $"5600 F62B 2BF5 F6F6 F62B F8F8 F72B F6F6" /* V.ö++õööö+øø÷+öö */ $"F62B F7F8 56F8 F6F6 F6F6 F6F6 2B2B 2BFD" /* ö+÷øVøöööööö+++ý */ $"5600 2BF7 F5F5 F6F6 F7F8 F7F6 F6F5 F5F5" /* V.+÷õõöö÷ø÷ööõõõ */ $"F5F5 F5F6 F6F8 F82B F6F6 F6F6 F62B 2BFD" /* õõõööøø+ööööö++ý */ $"5600 F7F6 F5F6 F6F8 F8F6 F5F5 F5F6 F6F6" /* V.÷öõööøøöõõõööö */ $"F6F6 F6F5 F5F6 2BF8 F7F6 F6F6 F6F6 2BFD" /* öööõõö+ø÷ööööö+ý */ $"5600 2BF5 F6F6 F7F7 F6F5 F5F6 2BF8 F9FA" /* V.+õöö÷÷öõõö+øùú */ $"FAF9 56F7 F6F5 F52B F82B F6F6 F6F6 2BFD" /* úùV÷öõõ+ø+öööö+ý */ $"5600 F6F5 F62B F8F6 F5F6 F6F8 F9F8 F7F6" /* V.öõö+øöõööøùø÷ö */ $"F62B F856 562B F6F6 2BF8 F6F6 F6F6 2BFD" /* ö+øVV+öö+øöööö+ý */ $"5600 F5F6 F6F8 2BF6 F6F6 F856 2BF6 F5F5" /* V.õööø+öööøV+öõõ */ $"F5F5 F5F6 F8F9 2BF6 F6F8 F7F6 F6F6 2BFD" /* õõõöøù+ööø÷ööö+ý */ $"5600 F5F6 2BF8 F6F6 F6F8 56F6 F52B 557F" /* V.õö+øöööøVöõ+U. */ $"7F79 F7F5 F6F7 56F6 F62B F8F6 F6F6 2BFD" /* .y÷õö÷Vöö+øööö+ý */ $"5600 F6F6 F7F7 F6F6 F756 F7F5 F77F 7955" /* V.öö÷÷öö÷V÷õ÷.yU */ $"797F A4F9 F5F6 56F7 F6F6 F82B F6F6 2BFD" /* y.¤ùõöV÷ööø+öö+ý */ $"5600 F6F6 F82B F6F6 56F8 F6F6 7F55 F755" /* V.ööø+ööVøöö.U÷U */ $"797F A4AA 55F6 F756 F6F6 F7F7 F6F6 2BFD" /* y.¤ªUö÷Vöö÷÷öö+ý */ $"5600 F6F6 56F6 F6F6 F9F8 F655 7F55 5579" /* V.ööVöööùøöU.UUy */ $"7FA3 A4CE A5F6 2BF9 F6F6 F7F8 F6F6 2BFD" /* .£¤Î¥ö+ùöö÷øöö+ý */ $"5600 F6F6 F9F6 F6F6 FAF7 F67A A37F 7FA3" /* V.ööùöööú÷öz£..£ */ $"A3A4 AACF ABF7 F6FA F6F6 F7F8 F6F6 2BFD" /* £¤ªÏ«÷öúöö÷øöö+ý */ $"5600 F6F6 56F6 F6F6 F9F8 F6F9 A4A4 A4A4" /* V.ööVöööùøöù¤¤¤¤ */ $"A4CE CFF1 ABF8 F6F9 F6F6 F7F8 F6F6 2BFD" /* ¤ÎÏñ«øöùöö÷øöö+ý */ $"5600 F6F6 F82B F6F6 56F8 F6F8 AAAA AACE" /* V.ööø+ööVøöøªªªÎ */ $"CECF F1F2 FBF8 F756 F6F6 F7F7 F6F6 2BFD" /* ÎÏñòûø÷Vöö÷÷öö+ý */ $"5600 F6F6 F8F7 F6F6 F7F8 2BF6 81CE CFCF" /* V.ööø÷öö÷ø+öÎÏÏ */ $"CFF2 F2AB F9F7 F8F7 F6F6 F72B F6F6 2BFD" /* Ïòò«ù÷ø÷öö÷+öö+ý */ $"5600 F6F6 2BF8 F6F6 F6F8 F8F6 2BA5 CFF1" /* V.öö+øöööøøö+¥Ïñ */ $"F2F2 ABFA F8F8 F9F6 F62B F82B F6F6 2BFD" /* òò«úøøùöö+ø+öö+ý */ $"5600 F6F6 F6F8 2BF6 F52B 56F8 F62B F9FB" /* V.öööø+öõ+Vøö+ùû */ $"FB81 F9F8 F8F9 F7F5 F6F7 F7F6 F6F6 2BFD" /* ûùøøù÷õö÷÷ööö+ý */ $"5600 F6F6 F6F7 F7F6 F6F5 2B56 F8F7 F62B" /* V.ööö÷÷ööõ+Vø÷ö+ */ $"F7F8 F856 56F8 F6F6 2BF8 2BF6 F6F6 2BFD" /* ÷øøVVøöö+ø+ööö+ý */ $"5600 F6F6 F6F6 F82B F6F6 F52B F856 5656" /* V.ööööø+ööõ+øVVV */ $"5656 5656 F7F6 F5F6 F7F7 F6F6 F6F6 2BFD" /* VVVV÷öõö÷÷öööö+ý */ $"5600 2BF6 F6F5 2BF8 2BF6 F6F5 F62B F8F8" /* V.+ööõ+ø+ööõö+øø */ $"F8F8 F7F6 F5F5 F6F7 F7F6 F6F6 F6F6 2BFD" /* øø÷öõõö÷÷ööööö+ý */ $"5600 2B2B F6F6 F52B F8F7 F6F6 F5F5 F5F5" /* V.++ööõ+ø÷ööõõõõ */ $"F5F5 F5F5 F52B F7F8 F6F5 F6F6 F6F7 2BFD" /* õõõõõ+÷øöõööö÷+ý */ $"5600 F62B F6F6 F6F5 2BF8 F8F7 2BF6 F5F5" /* V.ö+öööõ+øø÷+öõõ */ $"F5F5 F62B F7F8 F7F6 F5F6 F6F6 2B2B 2BFD" /* õõö+÷ø÷öõööö+++ý */ $"5600 F6F6 2BF6 F6F6 F5F6 F7F8 F8F8 F7F7" /* V.öö+öööõö÷øøø÷÷ */ $"F7F8 F8F8 F82B F6F5 F6F6 F62B F7F6 2BFD" /* ÷øøøø+öõööö+÷ö+ý */ $"5600 F6F6 F62B 2BF6 F6F5 F5F6 2BF7 F8F8" /* V.ööö++ööõõö+÷øø */ $"F8F8 F72B F6F5 F5F6 F6F6 2BF7 F6F5 F7FD" /* øø÷+öõõööö+÷öõ÷ý */ $"5600 F6F6 F6F6 2B2B F6F6 F5F5 F5F5 F5F5" /* V.öööö++ööõõõõõõ */ $"F5F5 F5F5 F5F6 F6F6 F6F7 2BF6 F5F6 F8FD" /* õõõõõöööö÷+öõöøý */ $"56F7 00F6 F6F6 F6F6 2B2B F6F6 F6F5 F5F5" /* V÷.ööööö++öööõõõ */ $"F5F5 F6F6 F6F6 F62B F72B F5F5 F6F6 FAFD" /* õõööööö+÷+õõööúý */ $"00FD F9F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8" /* .ýùøøøøøøøøøøøøø */ $"F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F881 FD00" /* øøøøøøøøøøøøøý. */ $"0000 FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ..ýýýýýýýýýýýýýý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD 0000" /* ýýýýýýýýýýýýýý.. */ }; data 'icl8' (129) { $"0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF" /* ....ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF 0000 0000 0000 0000 0000" /* ÿÿÿÿÿÿ.......... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF FF00 0000 0000 0000 0000" /* õõõõõÿÿ......... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF 2BFF 0000 0000 0000 0000" /* õõõõõÿ+ÿ........ */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF 2B2B FF00 0000 0000 0000" /* õõõõõÿ++ÿ....... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF 2B2B 2BFF 0000 0000 0000" /* õõõõõÿ+++ÿ...... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF 2B2B 2B2B FF00 0000 0000" /* õõõõõÿ++++ÿ..... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5FF FFFF FFFF FFFF 0000 0000" /* õõõõõÿÿÿÿÿÿÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F7F8 F856" /* ....ÿõõõõõõõ÷øøV */ $"56F8 F8F7 F5F5 F5F5 F5F5 F5FF 0000 0000" /* Vøø÷õõõõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 2BF8 F8F7 2BF6" /* ....ÿõõõõõ+øø÷+ö */ $"F62B F7F8 F82B F5F5 F5F5 F5FF 0000 0000" /* ö+÷øø+õõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F7 F82B F6F6 F6F6" /* ....ÿõõõõ÷ø+öööö */ $"F6F6 F6F6 F756 F7F5 F5F5 F5FF 0000 0000" /* öööö÷V÷õõõõÿ.... */ $"0000 0000 FFF5 F5F5 F72B F6F6 F6F8 F9FA" /* ....ÿõõõ÷+öööøùú */ $"FAF9 F8F6 F62B F7F7 F5F5 F5FF 0000 0000" /* úùøöö+÷÷õõõÿ.... */ $"0000 0000 FFF5 F52B F82B F6F7 F9F9 F7F6" /* ....ÿõõ+ø+ö÷ùù÷ö */ $"F6F7 F9F9 F7F6 2B56 2BF6 F5FF 0000 0000" /* ö÷ùù÷ö+V+öõÿ.... */ $"0000 0000 FFF5 F6F8 2BF6 F7F9 F7F6 F6F6" /* ....ÿõöø+ö÷ù÷ööö */ $"F6F6 F6F7 F9F7 F6F7 F8F6 F5FF 0000 0000" /* ööö÷ù÷ö÷øöõÿ.... */ $"0000 0000 FFF6 F7F8 F6F6 F9F7 F6F6 4F55" /* ....ÿö÷øööù÷ööOU */ $"5555 F6F6 F7F9 F6F6 F82B F6FF 0000 0000" /* UUöö÷ùööø+öÿ.... */ $"0000 0000 FFF6 F8F7 F6F8 F9F6 F6F7 4F55" /* ....ÿöø÷öøùöö÷OU */ $"5579 564F F6F9 F8F6 F7F8 F6FF 0000 0000" /* UyVOöùøö÷øöÿ.... */ $"0000 0000 FFF6 F82B F6F9 F7F6 4F4F 4F55" /* ....ÿöø+öù÷öOOOU */ $"797A A49E 2BF8 F9F6 2BF8 F6FF 0000 0000" /* yz¤+øùö+øöÿ.... */ $"0000 0000 FFF6 56F6 F6FA F6F6 5555 5555" /* ....ÿöVööúööUUUU */ $"7AA4 CECE F72B FAF6 F656 F6FF 0000 0000" /* z¤ÎÎ÷+úööVöÿ.... */ $"0000 0000 FFF6 56F6 F6FA 2BF6 5555 797A" /* ....ÿöVööú+öUUyz */ $"A4CF CFCF F82B FAF6 2B56 F6FF 0000 0000" /* ¤ÏÏÏø+úö+Vöÿ.... */ $"0000 0000 FFF6 F82B F6F9 F7F6 5579 7AA4" /* ....ÿöø+öù÷öUyz¤ */ $"CFF2 F2A4 F8F8 F9F6 2BF8 F6FF 0000 0000" /* Ïòò¤øøùö+øöÿ.... */ $"0000 0000 FFF6 F8F7 F6F8 F9F6 F656 A4CE" /* ....ÿöø÷öøùööV¤Î */ $"F1F2 FC56 F7F9 F8F6 F7F8 F6FF 0000 0000" /* ñòüV÷ùøö÷øöÿ.... */ $"0000 0000 FFF6 F7F8 F6F6 F9F7 F64F A4CE" /* ....ÿö÷øööù÷öO¤Î */ $"CFA4 F9F8 F8F9 F6F6 F82B F6FF 0000 0000" /* Ϥùøøùööø+öÿ.... */ $"0000 0000 FFF5 F6F8 2BF6 F7F9 F7F6 2BF7" /* ....ÿõöø+ö÷ù÷ö+÷ */ $"F8F8 F7F8 F9F7 F6F7 F8F6 F5FF 0000 0000" /* øø÷øù÷ö÷øöõÿ.... */ $"0000 0000 FFF5 F62B 56F6 F6F7 F9F9 F82B" /* ....ÿõö+Vöö÷ùùø+ */ $"2BF8 F9F9 F7F6 2B56 2BF6 F5FF 0000 0000" /* +øùù÷ö+V+öõÿ.... */ $"0000 0000 FFF5 F5F5 F7F7 2BF6 F6F8 F9FA" /* ....ÿõõõ÷÷+ööøùú */ $"FAF9 F8F6 F62B F8F7 F6F5 F5FF 0000 0000" /* úùøöö+ø÷öõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F7 F8F7 F6F6 F6F6" /* ....ÿõõõõ÷ø÷öööö */ $"F6F6 F6F6 F7F8 F7F5 F5F5 F5FF 0000 0000" /* öööö÷ø÷õõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 2BF8 F8F7 2BF6" /* ....ÿõõõõõ+øø÷+ö */ $"F62B F756 F82B F6F5 F5F5 F5FF 0000 0000" /* ö+÷Vø+öõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 2BF8 5656" /* ....ÿõõõõõõõ+øVV */ $"56F8 F82B F6F5 F5F5 F5F5 F5FF 0000 0000" /* Vøø+öõõõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000 0000" /* õõõõõõõõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000 0000" /* õõõõõõõõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000 0000" /* õõõõõõõõõõõÿ.... */ $"0000 0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5" /* ....ÿõõõõõõõõõõõ */ $"F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000 0000" /* õõõõõõõõõõõÿ.... */ $"0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF" /* ....ÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000" /* ÿÿÿÿÿÿÿÿÿÿÿÿ.... */ }; data 'ICN#' (0) { $"00FF FF00 01FF FF80 03FF FFC0 07FE FFE0" /* .ÿÿ..ÿÿ.ÿÿÀ.þÿà */ $"0FFC 7FF0 1FEC 67F8 3FC4 47FC 7FC4 47FE" /* .ü.ð.ìgø?ÄGü.ÄGþ */ $"FF44 47FF FE44 47FF FE44 47FF FE44 47FF" /* ÿDGÿþDGÿþDGÿþDGÿ */ $"FE44 47FF FE44 47FF FE40 071F FE00 061F" /* þDGÿþDGÿþ@..þ... */ $"FE00 061F FE00 043F FE00 003F FE00 007F" /* þ...þ..?þ..?þ... */ $"FE00 007F FE00 00FF FE00 00FF FE00 01FF" /* þ...þ..ÿþ..ÿþ..ÿ */ $"FE00 01FF 7E04 03FE 3F02 07FC 1FFF FFF8" /* þ..ÿ~..þ?..ü.ÿÿø */ $"0FFF FFF0 07FF FFE0 03FF FFC0 01FF FF80" /* .ÿÿð.ÿÿà.ÿÿÀ.ÿÿ */ $"00FF FF00 01FF FF80 03FF FFC0 07FF FFE0" /* .ÿÿ..ÿÿ.ÿÿÀ.ÿÿà */ $"0FFF FFF0 1FFF FFF8 3FFF FFFC 7FFF FFFE" /* .ÿÿð.ÿÿø?ÿÿü.ÿÿþ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF 7FFF FFFE 3FFF FFFC 1FFF FFF8" /* ÿÿÿÿ.ÿÿþ?ÿÿü.ÿÿø */ $"0FFF FFF0 07FF FFE0 03FF FFC0 01FF FF80" /* .ÿÿð.ÿÿà.ÿÿÀ.ÿÿ */ }; data 'ICN#' (1) { $"FFFF FFFF 807F FFFF 807F FFFF 807F FFFF" /* ÿÿÿÿ.ÿÿ.ÿÿ.ÿÿ */ $"807F FFFF 807F C0FF 887F 003F 887E 001F" /* .ÿÿ.Àÿ..?~.. */ $"887C 000F 8078 0007 8078 0007 8070 0003" /* |..x..x..p.. */ $"8071 DDC3 8070 0003 8070 0003 8071 DD43" /* qÝÃp..p..qÝC */ $"8070 0003 8070 0003 8071 D703 8070 0003" /* p..p..q×.p.. */ $"87F0 0003 81F1 EEC3 81F0 0007 81F0 0007" /* ð..ñîÃð..ð.. */ $"81F0 000F 81E0 001F 8F80 007F 81FF FFFF" /* ð..à....ÿÿÿ */ $"81FF FFFF 81FF FFFF 81FF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ }; data 'ICN#' (2) { $"0001 8000 0003 C000 0003 C000 0006 6000" /* .....À...À...`. */ $"0006 6000 000C 3000 000C 3000 0018 1800" /* ..`...0...0..... */ $"0019 9800 0033 CC00 0033 CC00 0063 C600" /* ....3Ì..3Ì..cÆ. */ $"0063 C600 00C3 C300 00C3 C300 0183 C180" /* .cÆ..ÃÃ..ÃÃ..Á */ $"0183 C180 0303 C0C0 0303 C0C0 0603 C060" /* .Á..ÀÀ..ÀÀ..À` */ $"0601 8060 0C01 8030 0C00 0030 1800 0018" /* ..`..0...0.... */ $"1801 8018 3003 C00C 3003 C00C 6001 8006" /* ...0.À.0.À.`.. */ $"6000 0006 C000 0003 FFFF FFFF 7FFF FFFE" /* `...À...ÿÿÿÿ.ÿÿþ */ $"0001 8000 0003 C000 0003 C000 0007 E000" /* .....À...À...à. */ $"0007 E000 000F F000 000F F000 001F F800" /* ..à...ð...ð...ø. */ $"001F F800 003F FC00 003F FC00 007F FE00" /* ..ø..?ü..?ü...þ. */ $"007F FE00 00FF FF00 00FF FF00 01FF FF80" /* ..þ..ÿÿ..ÿÿ..ÿÿ */ $"01FF FF80 03FF FFC0 03FF FFC0 07FF FFE0" /* .ÿÿ.ÿÿÀ.ÿÿÀ.ÿÿà */ $"07FF FFE0 0FFF FFF0 0FFF FFF0 1FFF FFF8" /* .ÿÿà.ÿÿð.ÿÿð.ÿÿø */ $"1FFF FFF8 3FFF FFFC 3FFF FFFC 7FFF FFFE" /* .ÿÿø?ÿÿü?ÿÿü.ÿÿþ */ $"7FFF FFFE FFFF FFFF FFFF FFFF 7FFF FFFE" /* .ÿÿþÿÿÿÿÿÿÿÿ.ÿÿþ */ }; data 'ICN#' (128) { $"0000 0000 0000 0002 0000 0001 0000 0001" /* ................ */ $"0000 0001 0000 0001 0000 0001 0000 0001" /* ................ */ $"0001 8001 0000 0001 0000 0001 0001 8001" /* .............. */ $"0004 6001 0008 7001 0008 F801 008F F901" /* ..`...p...ø..ù. */ $"000F F801 000F F801 000F F001 0007 F001" /* ..ø...ø...ð...ð. */ $"0001 C001 0000 0001 0000 0001 0000 0001" /* ..À............. */ $"0000 0001 0000 0001 0000 0001 0000 0001" /* ................ */ $"0000 0001 0000 0003 4000 0006 3FFF FFFC" /* ........@...?ÿÿü */ $"3FFF FFFC 7FFF FFFE FFFF FFFF FFFF FFFF" /* ?ÿÿü.ÿÿþÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF 7FFF FFFE 3FFF FFFC" /* ÿÿÿÿÿÿÿÿ.ÿÿþ?ÿÿü */ }; data 'ICN#' (129) { $"0FFF FC00 0800 0600 0800 0500 0800 0480" /* .ÿü............ */ $"0800 0440 0800 0420 0800 07F0 0807 E010" /* ...@... ...ð..à. */ $"0818 1810 0860 0610 0883 C110 088C 3110" /* .....`...Á..1. */ $"0910 0890 0923 C490 0A24 2450 0A48 3250" /* Æ..Æ#ÄÂ$$PÂH2P */ $"0A48 7250 0A48 F250 0A49 F250 0A27 E450" /* ÂHrPÂHòPÂIòPÂ'äP */ $"0923 C490 0910 0890 088C 3110 0883 C110" /* Æ#ÄÆ...1..Á. */ $"0860 0610 0818 1810 0807 E010 0800 0010" /* .`........à..... */ $"0800 0010 0800 0010 0800 0010 0FFF FFF0" /* .............ÿÿð */ $"0FFF FC00 0FFF FE00 0FFF FF00 0FFF FF80" /* .ÿü..ÿþ..ÿÿ..ÿÿ */ $"0FFF FFC0 0FFF FFE0 0FFF FFF0 0FFF FFF0" /* .ÿÿÀ.ÿÿà.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ $"0FFF FFF0 0FFF FFF0 0FFF FFF0 0FFF FFF0" /* .ÿÿð.ÿÿð.ÿÿð.ÿÿð */ }; data 'BNDL' (128) { $"5261 6475 0000 0001 4652 4546 0002 0000" /* Radu....FREF.... */ $"0080 0001 0081 0002 0082 4943 4E23 0002" /* .......ICN#.. */ $"0000 0080 0001 0081 0002 0081" /* ......... */ }; data 'FREF' (128) { $"4150 504C 0000 00" /* APPL... */ }; data 'FREF' (129) { $"4F50 4D4C 0001 00" /* OPML... */ }; data 'FREF' (130) { $"2A2A 2A2A 0002 00" /* ****... */ }; data 'ics8' (128) { $"5656 5656 5656 5656 5656 5656 5656 F6FD" /* VVVVVVVVVVVVVVöý */ $"56F6 F7F5 F6F6 F6F6 F6F6 F6F6 F6F6 F6FD" /* Vö÷õöööööööööööý */ $"56F6 F7F6 F6F8 F8F9 F9F8 F8F6 F6F6 F6FD" /* Vö÷ööøøùùøøööööý */ $"56F7 F6F8 F8F7 F6F6 F6F6 F8F8 F7F6 F6FD" /* V÷öøø÷ööööøø÷ööý */ $"56F6 F6F8 F6F8 F9FA FAF8 F6F6 F8F6 F6FD" /* Vööøöøùúúøööøööý */ $"56F6 F8F6 F8F8 F6F5 F5F7 F9F6 F8F8 F6FD" /* Vöøöøøöõõ÷ùöøøöý */ $"56F6 F8F6 F8F7 F7F7 7FF9 F6F7 F6F8 F6FD" /* Vöøöø÷÷÷.ùö÷öøöý */ $"56F6 F9F6 FAF6 A3A3 A4CF F7FA F6F8 F6FD" /* Vöùöúö££¤Ï÷úöøöý */ $"56F6 F8F6 F9F9 AACE CFF2 FBF9 F6F8 F6FD" /* VöøöùùªÎÏòûùöøöý */ $"56F6 F8F6 F8F8 CEF1 F2FA F9F9 F6F8 F6FD" /* VöøöøøÎñòúùùöøöý */ $"56F6 F8F7 F6F8 F8FB FBF9 F9F7 F8F7 F6FD" /* Vöø÷öøøûûùù÷ø÷öý */ $"56F6 F6F8 F6F6 F8F8 F8F7 F7F7 F7F6 F6FD" /* Vööøööøøø÷÷÷÷ööý */ $"56F6 F6F6 F8F8 F6F5 F5F6 F8F8 F6F6 F7FD" /* Vöööøøöõõöøøöö÷ý */ $"56F6 F6F6 F6F8 F8F8 F8F8 F8F6 F6F7 F7FD" /* Vööööøøøøøøöö÷÷ý */ $"F7F6 F6F6 F6F6 F6F5 F5F6 F6F6 F7F6 F6FD" /* ÷ööööööõõööö÷ööý */ $"FDFD FDFD FDFD FDFD FDFD FDFD FDFD FDFD" /* ýýýýýýýýýýýýýýýý */ }; data 'ics8' (129) { $"0000 FFFF FFFF FFFF FFFF FFFF 0000 0000" /* ..ÿÿÿÿÿÿÿÿÿÿ.... */ $"0000 FFF5 F5F5 F5F5 F5F5 F5FF FF00 0000" /* ..ÿõõõõõõõõÿÿ... */ $"0000 FFF5 F5F5 F5F5 F5F5 F5FF 2BFF 0000" /* ..ÿõõõõõõõõÿ+ÿ.. */ $"0000 FFF5 F5F5 F5F5 F5F5 F5FF FFFF FF00" /* ..ÿõõõõõõõõÿÿÿÿ. */ $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5 FF00" /* ..ÿõõõõõõõõõõõÿ. */ $"0000 FFF5 F5F5 F54F 5555 4FF5 F5F5 FF00" /* ..ÿõõõõOUUOõõõÿ. */ $"0000 FFF5 F5F5 F74F 5555 79F7 F5F5 FF00" /* ..ÿõõõ÷OUUy÷õõÿ. */ $"0000 FFF5 F54F 4F4F 5579 7A7A 55F5 FF00" /* ..ÿõõOOOUyzzUõÿ. */ $"0000 FFF5 F54F 5555 557A A4CE CEF5 FF00" /* ..ÿõõOUUUz¤ÎÎõÿ. */ $"0000 FFF5 F555 5579 7980 CFCF CFF5 FF00" /* ..ÿõõUUyyÏÏÏõÿ. */ $"0000 FFF5 F54F 7955 7ACF F2F2 A4F5 FF00" /* ..ÿõõOyUzÏòò¤õÿ. */ $"0000 FFF5 F5F5 56A4 A4F1 F2FB F5F5 FF00" /* ..ÿõõõV¤¤ñòûõõÿ. */ $"0000 FFF5 F5F5 F5A4 A4CF 80F5 F5F5 FF00" /* ..ÿõõõõ¤¤Ïõõõÿ. */ $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5 FF00" /* ..ÿõõõõõõõõõõõÿ. */ $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5 FF00" /* ..ÿõõõõõõõõõõõÿ. */ $"0000 FFFF FFFF FFFF FFFF FFFF FFFF FF00" /* ..ÿÿÿÿÿÿÿÿÿÿÿÿÿ. */ }; data 'ics4' (128) { $"DDDD DDDD DDDD DDCA DCC0 CCCC CCCC CCCA" /* ÝÝÝÝÝÝÝÊÜÀÌÌÌÌÌÊ */ $"DCCC CCCD DCCC CCCA DCCC CCCC CCCC CCCA" /* ÜÌÌÍÜÌÌÊÜÌÌÌÌÌÌÊ */ $"DCCC CCDD DCCC CCCA DCCC CCC0 0CDC CCCA" /* ÜÌÌÝÜÌÌÊÜÌÌÀ.ÜÌÊ */ $"DCCC CCCC DDCC CCCA DCDC DC55 5ECD CCCA" /* ÜÌÌÌÝÌÌÊÜÜÜU^ÍÌÊ */ $"DCCC DD56 EFED CCCA DCCC CC6F FDDD CCCA" /* ÜÌÝVïíÌÊÜÌÌoýÝÌÊ */ $"DCCC CCCE EDDC CCCA DCCC CCCC CCCC CCCA" /* ÜÌÌÎíÜÌÊÜÌÌÌÌÌÌÊ */ $"DCCC CCC0 0CCC CCCA DCCC CCCC CCCC CCCA" /* ÜÌÌÀ.ÌÌÊÜÌÌÌÌÌÌÊ */ $"CCCC CCC0 0CCC CCCA AAAA AAAA AAAA AAAA" /* ÌÌÌÀ.ÌÌʪªªªªªªª */ }; data 'ics4' (129) { $"00FF FFFF FFFF 0000 00F0 0000 000F F000" /* .ÿÿÿÿÿ...ð....ð. */ $"00F0 0000 000F CF00 00F0 0000 000F FFF0" /* .ð....Ï..ð....ÿð */ $"00F0 0000 0000 00F0 00F0 000C CCC0 00F0" /* .ð.....ð.ð..ÌÀ.ð */ $"00F0 00CC CCDC 00F0 00F0 0CCC CDDD C0F0" /* .ð.ÌÌÜ.ð.ð.ÌÍÝÀð */ $"00F0 0CCC CD56 60F0 00F0 0CCD DDEE E0F0" /* .ð.ÌÍV`ð.ð.ÍÝîàð */ $"00F0 0CDC DEFF 50F0 00F0 00D5 5FFE 00F0" /* .ð.ÜÞÿPð.ð.Õ_þ.ð */ $"00F0 0005 5ED0 00F0 00F0 0000 0000 00F0" /* .ð..^Ð.ð.ð.....ð */ $"00F0 0000 0000 00F0 00FF FFFF FFFF FFF0" /* .ð.....ð.ÿÿÿÿÿÿð */ }; data 'ics#' (128) { $"0001 0001 0001 0001 0181 0001 0081 0BD1" /* .............Ñ */ $"03E1 03C1 0181 0001 0001 0001 0001 FFFF" /* .á.Á.........ÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */ }; data 'ics#' (129) { $"3FF0 2018 2014 201E 2002 21E2 2212 241A" /* ?ð . . . .!â".$. */ $"243A 247A 24FA 23F2 21E2 2002 2002 3FFE" /* $:$z$ú#ò!â . .?þ */ $"3FF0 3FF8 3FFC 3FFE 3FFE 3FFE 3FFE 3FFE" /* ?ð?ø?ü?þ?þ?þ?þ?þ */ $"3FFE 3FFE 3FFE 3FFE 3FFE 3FFE 3FFE 3FFE" /* ?þ?þ?þ?þ?þ?þ?þ?þ */ }; data 'Radu' (0, "Owner resource") { $"00" /* . */ }; data 'open' (0) { $"5261 6475 0000 0003 4F50 4D4C 5445 5854" /* Radu....OPMLTEXT */ $"2A2A 2A2A" /* **** */ }; |
|
From: Andre R. <and...@us...> - 2004-12-01 19:45:12
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/Common/source Modified Files: Tag: New_Tables_Experiment-branch CallMachOFrameWork.c langdll.c langstartup.c langverbs.c ops.c shell.c shellsysverbs.c wpengine.c Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) Index: shell.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shell.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** shell.c 1 Nov 2004 11:50:16 -0000 1.4 --- shell.c 1 Dec 2004 19:44:45 -0000 1.4.2.1 *************** *** 77,80 **** --- 77,81 ---- #include "services.h" #include "WinSockNetEvents.h" + #include "langdll.h" /*2004-11-29 aradke: for dllinitverbs*/ #ifdef flcomponent *************** *** 1322,1325 **** --- 1323,1328 ---- #endif + dllinitverbs (); /*2004-11-29 aradke: langdll.c*/ + if (keyboardescape ()) /*check again before landinit; after this, must do shellquit*/ exittooperatingsystem (); Index: ops.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/ops.c,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** ops.c 26 Oct 2004 10:24:57 -0000 1.3 --- ops.c 1 Dec 2004 19:44:45 -0000 1.3.2.1 *************** *** 39,44 **** - - static tydirection directions [ctdirections] = { --- 39,42 ---- *************** *** 865,869 **** gestalt (gestaltSystemVersion, &x); ! numbertostring (x >> 8, bs); /*high byte is major rev.*/ pushchar ('.', bs); --- 863,867 ---- gestalt (gestaltSystemVersion, &x); ! numbertostring (bcdtolong (x >> 8), bs); /* high byte is major rev., 2004-11-16 creedon - convert from bcd for correct display on Mac OS X */ pushchar ('.', bs); *************** *** 955,958 **** --- 953,974 ---- + unsigned long bcdtolong (unsigned long bcd) { /* 2004-11-23 creedon, aradke */ + + /* + convert a long value from BCD notation + */ + + unsigned long ret = 0; + unsigned long m = 1; + + do { + ret += m * (bcd & 0x0000000f); + m *= 10; + bcd >>= 4; + + } while (bcd != 0); + + return (ret); + } /* bcdtolong */ \ No newline at end of file Index: wpengine.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/wpengine.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** wpengine.c 31 Oct 2004 20:41:10 -0000 1.4 --- wpengine.c 1 Dec 2004 19:44:45 -0000 1.4.2.1 *************** *** 1846,1851 **** #endif ! if (updatergn == nil) pgErasePageArea (wpbuffer, MEM_NULL); --- 1846,1856 ---- #endif + + #ifdef gray3Dlook + pushbackcolor (&whitecolor); ! eraserect (rcontent); ! #endif ! if (updatergn == nil) pgErasePageArea (wpbuffer, MEM_NULL); *************** *** 1861,1865 **** #ifdef gray3Dlook ! popbackcolor (); #endif --- 1866,1870 ---- #ifdef gray3Dlook ! popbackcolor (); #endif Index: langstartup.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langstartup.c,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -C2 -d -r1.3.2.1 -r1.3.2.2 *** langstartup.c 21 Nov 2004 20:15:26 -0000 1.3.2.1 --- langstartup.c 1 Dec 2004 19:44:45 -0000 1.3.2.2 *************** *** 24,27 **** --- 24,28 ---- ******************************************************************************/ + #include "frontier.h" #include "standard.h" *************** *** 40,58 **** #include "resources.h" #include "WinSockNetEvents.h" ! #define str_isPike "\x06" "isPike" ! #define str_isRadio "\x07" "isRadio" ! #define str_isMac "\x05" "isMac" ! #define str_isWindows "\x09" "isWindows" ! #define str_osFlavor "\x08" "osFlavor" #define str_osMajorVersion "\x0e" "osMajorVersion" #define str_osMinorVersion "\x0e" "osMinorVersion" #define str_osBuildNumber "\x0d" "osBuildNumber" #define str_osVersionString "\x0f" "osVersionString" #define str_osFullNameForDisplay "\x14" "osFullNameForDisplay" #define str_winServicePackNumber "\x14" "winServicePackNumber" ! #define str_isCarbon "\x08" "isCarbon" ! #define str_maxTcpConnections "\x11" "maxTcpConnections" --- 41,65 ---- #include "resources.h" #include "WinSockNetEvents.h" + #if TARGET_API_MAC_CARBON == 1 + #include "CallMachOFrameWork.h" /* 2004-11-19 creedon */ + #endif ! #define str_isPike "\x06" "isPike" ! #define str_isRadio "\x07" "isRadio" ! #define str_isMac "\x05" "isMac" ! #define str_isMacOsClassic "\x0e" "isMacOsClassic" /* 2004-11-19 creedon */ ! #define str_isServer "\x08" "isServer" /* 2004-11-19 creedon */ ! #define str_isWindows "\x09" "isWindows" ! #define str_osFlavor "\x08" "osFlavor" #define str_osMajorVersion "\x0e" "osMajorVersion" #define str_osMinorVersion "\x0e" "osMinorVersion" + #define str_osPointVersion "\x0e" "osPointVersion" /* 2004-11-19 creedon */ #define str_osBuildNumber "\x0d" "osBuildNumber" #define str_osVersionString "\x0f" "osVersionString" #define str_osFullNameForDisplay "\x14" "osFullNameForDisplay" #define str_winServicePackNumber "\x14" "winServicePackNumber" ! #define str_isCarbon "\x08" "isCarbon" ! #define str_maxTcpConnections "\x11" "maxTcpConnections" *************** *** 214,220 **** #ifdef MACVERSION ! bigstring bsversion; unsigned long x; gestalt (gestaltSystemVersion, &x); --- 221,238 ---- #ifdef MACVERSION ! bigstring bsversion, bsos; /* 2004-11-19 creedon - added bsos*/ ! boolean isMacOsClassic, isServer; /* 2004-11-19 creedon */ unsigned long x; + #if TARGET_API_MAC_CARBON == 1 /*PBS 7.028: system.environment.isCarbon*/ + + /* 2004-11-19 creedon - added hcommand, hreturn, bs, response */ + Handle hcommand, hreturn; + bigstring bs; + UInt32 response; + OSErr err; + + #endif + gestalt (gestaltSystemVersion, &x); *************** *** 225,249 **** //langassignstringvalue (ht, str_osFlavor, zerostring); ! langassignlongvalue (ht, str_osMajorVersion, x >> 8); langassignlongvalue (ht, str_osMinorVersion, (x & 0x00f0) >> 4); ! getsystemversionstring (bsversion, nil); langassignstringvalue (ht, str_osVersionString, bsversion); - - langassignstringvalue (ht, str_osFullNameForDisplay, "\x09" "Macintosh"); #if TARGET_API_MAC_CARBON == 1 /*PBS 7.028: system.environment.isCarbon*/ ! langassignbooleanvalue (ht, str_isCarbon, true); #else langassignbooleanvalue (ht, str_isCarbon, false); #endif #endif --- 243,329 ---- //langassignstringvalue (ht, str_osFlavor, zerostring); ! langassignlongvalue (ht, str_osMajorVersion, bcdtolong (x >> 8)); /* 2004-11-19 creedon - convert from bcd for correct display on Mac OS X */ langassignlongvalue (ht, str_osMinorVersion, (x & 0x00f0) >> 4); ! ! langassignlongvalue (ht, str_osPointVersion, x & 0x0f); /* 2004-11-19 creedon */ getsystemversionstring (bsversion, nil); langassignstringvalue (ht, str_osVersionString, bsversion); + /* langassignstringvalue (ht, str_osFullNameForDisplay, "\x09" "Macintosh"); 2004-11-19 creedon - moved to later in code*/ #if TARGET_API_MAC_CARBON == 1 /*PBS 7.028: system.environment.isCarbon*/ ! langassignbooleanvalue (ht, str_isCarbon, true); + /* 2004-11-19 creedon - get mac os build number, full display name, is server*/ + + /* get mac os build number */ + + newtexthandle ("\psw_vers -buildVersion", &hcommand); + + newemptyhandle (&hreturn); + + unixshellcall (hcommand, hreturn); + + texthandletostring (hreturn, bs); + + sethandlesize (hreturn, 0); + + setstringlength (bs, stringlength (bs) - 1); + + langassignstringvalue (ht, str_osBuildNumber, bs); /* get mac os build number */ + + /* get os full display name */ + + copystring ("sw_vers -productName", bs); + + sethandlecontents (bs, stringsize (bs), hcommand); + + unixshellcall (hcommand, hreturn); + + texthandletostring (hreturn, bsos); + + setstringlength (bsos, stringlength (bsos) - 1); /* get os full display name */ + + disposehandle (hcommand); + disposehandle (hreturn); /* get mac os build number and full display name*/ + + /* 2004-11-19 creedon - is mac os classic */ + /* This needs to be checked on Mac OS Classic as well as Mac OS 9 proper. */ + + err = gestalt (gestaltMacOSCompatibilityBoxAttr, &response); + + if ((err == noErr) && ((response & (1 << gestaltMacOSCompatibilityBoxPresent)) != 0)) + isMacOsClassic = true; + else + isMacOsClassic = false; + + /* 2004-11-19 creedon - is server */ + + if (equalstrings (bsos, "\pMac OS X Server")) + isServer = true; + else + isServer = false; /* is server */ + #else langassignbooleanvalue (ht, str_isCarbon, false); + + copystring ("\x06" "Mac OS", bsos); /* 2004-11-19 creedon - Mac OS, used to be Macintosh*/ + + isMacOsClassic = true; /* 2004-11-19 creedon */ + + isServer = false; /* 2004-11-19 creedon */ #endif + langassignbooleanvalue (ht, str_isMacOsClassic, isMacOsClassic); /* 2004-11-19 creedon */ + + langassignstringvalue (ht, str_osFullNameForDisplay, bsos); /* 2004-11-19 creedon - changed "\x06" "Mac OS" to bsos. a calculated value */ + + langassignbooleanvalue (ht, str_isServer, isServer); /* 2004-11-19 creedon */ + #endif *************** *** 251,254 **** --- 331,335 ---- bigstring bsversion, bsservicepack, bsos; + boolean isServer; /* 2004-11-19 creedon */ byte bsflavor [4]; OSVERSIONINFO osinfo; *************** *** 264,269 **** langassignbooleanvalue (ht, str_isWindows, true); ! if (osinfo.dwPlatformId == VER_PLATFORM_WIN32_NT) copystring ("\x02" "NT", bsflavor); else { --- 345,353 ---- langassignbooleanvalue (ht, str_isWindows, true); ! if (osinfo.dwPlatformId == VER_PLATFORM_WIN32_NT) { copystring ("\x02" "NT", bsflavor); + + isServer = true; /* 2004-11-19 creedon */ + } else { *************** *** 272,275 **** --- 356,361 ---- else copystring ("\x02" "98", bsflavor); + + isServer = false; /* 2004-11-19 creedon */ } *************** *** 293,296 **** --- 379,384 ---- langassignbooleanvalue (ht, str_isCarbon, false); /*7.0b28: isCarbon is false on Windows.*/ + + langassignbooleanvalue (ht, str_isServer, isServer); /* 2004-11-19 creedon */ #endif Index: CallMachOFrameWork.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/CallMachOFrameWork.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** CallMachOFrameWork.c 31 Oct 2004 20:41:10 -0000 1.4 --- CallMachOFrameWork.c 1 Dec 2004 19:44:45 -0000 1.4.2.1 *************** *** 178,180 **** return err; ! } \ No newline at end of file --- 178,249 ---- return err; ! } /*LoadFrameworkBundle*/ ! ! ! static UInt32 gluetemplate[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420}; ! ! void *convertcfmtomachofuncptr (void *cfmfp) { ! ! /* ! 2004-11-28 aradke: adapted from Apple's CFM_MachO_CFM sample: ! ! http://developer.apple.com/samplecode/CFM_MachO_CFM/CFM_MachO_CFM.html ! ! allocate a block of cfm glue code with instructions for calling the CFM function. ! the caller is responsible for disposal via disposemachofuncptr ! */ ! ! UInt32 *mfp = (UInt32*) NewPtr (sizeof(gluetemplate)); ! ! mfp[0] = gluetemplate[0] | ((UInt32) cfmfp >> 16); ! mfp[1] = gluetemplate[1] | ((UInt32) cfmfp & 0xFFFF); ! mfp[2] = gluetemplate[2]; ! mfp[3] = gluetemplate[3]; ! mfp[4] = gluetemplate[4]; ! mfp[5] = gluetemplate[5]; ! ! MakeDataExecutable (mfp, sizeof(gluetemplate)); ! ! return ((void *) mfp); ! } /*convertcfmtomachofuncptr*/ ! ! ! void disposemachofuncptr (void *mfp) { ! ! if (mfp != nil) ! DisposePtr (mfp); ! } /*disposemachofuncptr*/ ! ! ! typedef struct tvectorstruct { ! ProcPtr procaddr; ! UInt32 toc; ! } tvectorstruct, *tvectorptr; ! ! ! void *convertmachotocfmfuncptr (void *mfp) { ! ! /* ! 2004-11-28 aradke: allocate a fake TVector and set its procptr entry ! to the mach procptr handed to us by the caller. the toc entry can ! safely be set to nil since it's ignored in this context. ! */ ! ! tvectorptr cfmfp = (tvectorptr) NewPtr (sizeof(tvectorstruct)); ! ! if (MemError() == noErr && cfmfp != nil) { ! ! cfmfp->procaddr = (ProcPtr) mfp; ! cfmfp->toc = 0; /*ignored*/ ! } ! ! return ((void *) cfmfp); ! } /*convertmachotocfmfuncptr*/ ! ! ! void disposecfmfuncptr (void *cfmfp) { ! ! if (cfmfp != nil) ! DisposePtr (cfmfp); ! } /*disposecfmfuncptr*/ ! Index: langverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langverbs.c,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -C2 -d -r1.5 -r1.5.2.1 *** langverbs.c 9 Nov 2004 20:33:06 -0000 1.5 --- langverbs.c 1 Dec 2004 19:44:45 -0000 1.5.2.1 *************** *** 3142,3151 **** return (callscriptverb (hparam1, v)); - #if defined(WIN95VERSION) || (defined(MACVERSION) && !TARGET_RT_MAC_MACHO) - /* - 2004-11-09 aradke: calling DLLs through the Code Fragment Manager (CFM) - doesn't work yet on Carbon/Mach-O. throw an error instead of crashing. - */ - case dllcallfunc: case calldllfunc: /* this is remaining for historical usage per Dave. rab: 5.0b4 1/6/98 */ --- 3142,3145 ---- *************** *** 3160,3165 **** case dllisloadedfunc: return (dllisloadedverb (hparam1, v)); ! #endif ! case packwindowfunc: return (langpackwindowverb (hparam1, v)); --- 3154,3158 ---- case dllisloadedfunc: return (dllisloadedverb (hparam1, v)); ! case packwindowfunc: return (langpackwindowverb (hparam1, v)); *************** *** 3717,3722 **** } ! case pythondoscriptfunc: ! return (langrunpythonscript (hparam1, v)); --- 3710,3715 ---- } ! //case pythondoscriptfunc: ! // return (langrunpythonscript (hparam1, v)); Index: langdll.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langdll.c,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** langdll.c 30 Oct 2004 23:15:04 -0000 1.3 --- langdll.c 1 Dec 2004 19:44:45 -0000 1.3.2.1 *************** *** 68,71 **** --- 68,74 ---- #include "langdll.h" + #if defined(MACVERSION) && TARGET_RT_MAC_MACHO + #include "CallMachOFramework.h" + #endif #define NEW_DLL_INTERFACE 1 /* 2002-11-03 AR: defined to enable new DLL interface */ *************** *** 136,185 **** static tydllinfohandle loadeddlls; /* linked list of currently loaded stay-resident DLLs */ - /* - static const XDLLProcTable dllcallbacks = { /+ we create a copy of this struct on the stack for every call +/ - extfrontierAlloc, - extfrontierReAlloc, - extfrontierLock, - extfrontierUnlock, - extfrontierFree, - extfrontierSize, - - extOdbGetCurrentRoot, - extOdbNewFile, - extOdbOpenFile, - extOdbSaveFile, - extOdbCloseFile, - extOdbDefined, - extOdbDelete, - extOdbGetType, - extOdbCountItems, - extOdbGetNthItem, - extOdbGetValue, - extOdbSetValue, - extOdbNewTable, - extOdbGetModDate, - extOdbDisposeValue, - extOdbGetError, - - extDoScript, - extDoScriptText, - - extOdbNewListValue, - extOdbGetListCount, - extOdbDeleteListValue, - extOdbSetListValue, - extOdbGetListValue, - extOdbAddListValue, ! extInvoke, ! extCoerce, - extCallScript, - extCallScriptText, - - extThreadYield, - extThreadSleep - }; - */ #else --- 139,145 ---- static tydllinfohandle loadeddlls; /* linked list of currently loaded stay-resident DLLs */ ! static XDLLProcTable *dllcallbacks; /* global pointer to array of callback functions */ #else *************** *** 1074,1077 **** --- 1034,1041 ---- hnext = (**h).hashlink; + + #if defined(MACVERSION) && TARGET_RT_MAC_MACHO + disposemachofuncptr ((void *) (**h).procaddress); + #endif disposehandle ((Handle) h); *************** *** 1723,1726 **** --- 1687,1694 ---- (**hprocinfo).moduleUPP = (UniversalProcPtr) &(**hprocinfo).moduledesc; } + #elif TARGET_RT_MAC_MACHO + if (err == noErr) { + (**hprocinfo).procaddress = convertcfmtomachofuncptr ((**hprocinfo).procaddress); + } #endif #endif *************** *** 1744,1752 **** */ - XDLLProcTable calltable; boolean fl = false; - fillcalltable (&calltable); - lockhandle ((Handle) hprocinfo); /* just to be sure our data doesn't move around */ --- 1712,1717 ---- *************** *** 1770,1779 **** #if MACVERSION && !TARGET_API_MAC_CARBON #if GENERATINGCFM ! fl = CallUniversalProc ((**hprocinfo).moduleUPP, uppdllcallProcInfo, params, &calltable); #else ! fl = (*(tyDLLEXTROUTINE) ((**hprocinfo).moduleUPP)) (params, &calltable); #endif #else ! fl = (*(**hprocinfo).procaddress) (params, &calltable); #endif --- 1735,1744 ---- #if MACVERSION && !TARGET_API_MAC_CARBON #if GENERATINGCFM ! fl = CallUniversalProc ((**hprocinfo).moduleUPP, uppdllcallProcInfo, params, dllcallbacks); #else ! fl = (*(tyDLLEXTROUTINE) ((**hprocinfo).moduleUPP)) (params, dllcallbacks); #endif #else ! fl = (*(**hprocinfo).procaddress) (params, dllcallbacks); #endif *************** *** 1913,1916 **** --- 1878,1885 ---- /* Dispose proc info here because we didn't ask for the hash table to be built */ + #if defined(MACVERSION) && TARGET_RT_MAC_MACHO + disposemachofuncptr ((void*) (**hprocinfo).procaddress); + #endif + disposehandle ((Handle) hprocinfo); *************** *** 2375,2394 **** call the dll. */ - XDLLProcTable calltable; boolean fl = false; - /*Need to initialize the callback table*/ - fillcalltable (&calltable); - //#endif - - - // dllcall.frontiercallback = ??? - - // - releasethreadglobals (); #ifdef WIN95VERSION ! fl = (*(dllinfo->procAddress)) (dllcall, &calltable); #endif --- 2344,2353 ---- call the dll. */ boolean fl = false; releasethreadglobals (); #ifdef WIN95VERSION ! fl = (*(dllinfo->procAddress)) (dllcall, dllcallbacks); #endif *************** *** 2397,2407 **** //Code change by Timothy Paustian Friday, June 16, 2000 1:13:28 PM //Changed to Opaque call for Carbon - we don't need UPPs in Carbon. ! //fl = (*(tyDLLEXTROUTINE) (dllinfo->moduleUPP)) (dllcall, &calltable); // call it ! fl = (*(dllinfo->procAddress)) (dllcall, &calltable); // call it #else #if GENERATINGCFM ! fl = CallUniversalProc (dllinfo->moduleUPP, uppdllcallProcInfo, dllcall, &calltable); #else ! fl = (*(tyDLLEXTROUTINE) (dllinfo->moduleUPP)) (dllcall, &calltable); // call it #endif #endif --- 2356,2366 ---- //Code change by Timothy Paustian Friday, June 16, 2000 1:13:28 PM //Changed to Opaque call for Carbon - we don't need UPPs in Carbon. ! //fl = (*(tyDLLEXTROUTINE) (dllinfo->moduleUPP)) (dllcall, dllcallbacks); // call it ! fl = (*(dllinfo->procAddress)) (dllcall, dllcallbacks); // call it #else #if GENERATINGCFM ! fl = CallUniversalProc (dllinfo->moduleUPP, uppdllcallProcInfo, dllcall, dllcallbacks); #else ! fl = (*(tyDLLEXTROUTINE) (dllinfo->moduleUPP)) (dllcall, dllcallbacks); // call it #endif #endif *************** *** 2415,2485 **** } /*langcalldll*/ - #endif /* NEW_DLL_INTERFACE */ - - void fillcalltable (XDLLProcTable * calltable) { ! /* ! 2003-06-16 AR: We got some crash reports on Mac OS Classic ! implicating the new DLL interface where the stdlogs did not ! include a proper stack backtrace. Therefore, let's abandon ! the idea of using a global dllcallbacks table and switch ! back to building it on the fly for every call. ! */ ! /* ! #ifdef NEW_DLL_INTERFACE ! *calltable = dllcallbacks; ! ! #else ! */ ! calltable->xMemAlloc = extfrontierAlloc; ! calltable->xMemResize = extfrontierReAlloc; ! calltable->xMemLock = extfrontierLock; ! calltable->xMemUnlock = extfrontierUnlock; ! calltable->xMemFree = extfrontierFree; ! calltable->xMemGetSize = extfrontierSize; ! calltable->xOdbGetCurrentRoot = extOdbGetCurrentRoot; ! calltable->xOdbNewFile = extOdbNewFile; ! calltable->xOdbOpenFile = extOdbOpenFile; ! calltable->xOdbSaveFile = extOdbSaveFile; ! calltable->xOdbCloseFile = extOdbCloseFile; ! calltable->xOdbDefined = extOdbDefined; ! calltable->xOdbDelete = extOdbDelete; ! calltable->xOdbGetType = extOdbGetType; ! calltable->xOdbCountItems = extOdbCountItems; ! calltable->xOdbGetNthItem = extOdbGetNthItem; ! calltable->xOdbGetValue = extOdbGetValue; ! calltable->xOdbSetValue = extOdbSetValue; ! calltable->xOdbNewTable = extOdbNewTable; ! calltable->xOdbGetModDate = extOdbGetModDate; ! calltable->xOdbDisposeValue = extOdbDisposeValue; ! calltable->xOdbGetError = extOdbGetError; ! calltable->xDoScript = extDoScript; ! calltable->xDoScriptText = extDoScriptText; ! calltable->xOdbNewListValue = extOdbNewListValue; ! calltable->xOdbGetListCount = extOdbGetListCount; ! calltable->xOdbDeleteListValue = extOdbDeleteListValue; ! calltable->xOdbSetListValue = extOdbSetListValue; ! calltable->xOdbGetListValue = extOdbGetListValue; ! calltable->xOdbAddListValue = extOdbAddListValue; ! calltable->xInvoke = extInvoke; ! calltable->xCoerce = extCoerce; ! ! calltable->xCallScript = extCallScript; ! calltable->xCallScriptText = extCallScriptText; ! calltable->xThreadYield = extThreadYield; ! calltable->xThreadSleep = extThreadSleep; ! /* #endif - */ - } /*fillcalltable*/ --- 2374,2531 ---- } /*langcalldll*/ #endif /* NEW_DLL_INTERFACE */ ! void fillcalltable (XDLLProcTable *pt) { ! #if defined(MACVERSION) && TARGET_RT_MAC_MACHO ! pt->xMemAlloc = convertmachotocfmfuncptr (&extfrontierAlloc); ! pt->xMemResize = convertmachotocfmfuncptr (&extfrontierReAlloc); ! pt->xMemLock = convertmachotocfmfuncptr (&extfrontierLock); ! pt->xMemUnlock = convertmachotocfmfuncptr (&extfrontierUnlock); ! pt->xMemFree = convertmachotocfmfuncptr (&extfrontierFree); ! pt->xMemGetSize = convertmachotocfmfuncptr (&extfrontierSize); ! pt->xOdbGetCurrentRoot = convertmachotocfmfuncptr (&extOdbGetCurrentRoot); ! pt->xOdbNewFile = convertmachotocfmfuncptr (&extOdbNewFile); ! pt->xOdbOpenFile = convertmachotocfmfuncptr (&extOdbOpenFile); ! pt->xOdbSaveFile = convertmachotocfmfuncptr (&extOdbSaveFile); ! pt->xOdbCloseFile = convertmachotocfmfuncptr (&extOdbCloseFile); ! pt->xOdbDefined = convertmachotocfmfuncptr (&extOdbDefined); ! pt->xOdbDelete = convertmachotocfmfuncptr (&extOdbDelete); ! pt->xOdbGetType = convertmachotocfmfuncptr (&extOdbGetType); ! pt->xOdbCountItems = convertmachotocfmfuncptr (&extOdbCountItems); ! pt->xOdbGetNthItem = convertmachotocfmfuncptr (&extOdbGetNthItem); ! pt->xOdbGetValue = convertmachotocfmfuncptr (&extOdbGetValue); ! pt->xOdbSetValue = convertmachotocfmfuncptr (&extOdbSetValue); ! pt->xOdbNewTable = convertmachotocfmfuncptr (&extOdbNewTable); ! pt->xOdbGetModDate = convertmachotocfmfuncptr (&extOdbGetModDate); ! pt->xOdbDisposeValue = convertmachotocfmfuncptr (&extOdbDisposeValue); ! pt->xOdbGetError = convertmachotocfmfuncptr (&extOdbGetError); ! pt->xDoScript = convertmachotocfmfuncptr (&extDoScript); ! pt->xDoScriptText = convertmachotocfmfuncptr (&extDoScriptText); ! pt->xOdbNewListValue = convertmachotocfmfuncptr (&extOdbNewListValue); ! pt->xOdbGetListCount = convertmachotocfmfuncptr (&extOdbGetListCount); ! pt->xOdbDeleteListValue = convertmachotocfmfuncptr (&extOdbDeleteListValue); ! pt->xOdbSetListValue = convertmachotocfmfuncptr (&extOdbSetListValue); ! pt->xOdbGetListValue = convertmachotocfmfuncptr (&extOdbGetListValue); ! pt->xOdbAddListValue = convertmachotocfmfuncptr (&extOdbAddListValue); ! pt->xInvoke = convertmachotocfmfuncptr (&extInvoke); ! pt->xCoerce = convertmachotocfmfuncptr (&extCoerce); ! ! pt->xCallScript = convertmachotocfmfuncptr (&extCallScript); ! pt->xCallScriptText = convertmachotocfmfuncptr (&extCallScriptText); ! ! pt->xThreadYield = convertmachotocfmfuncptr (&extThreadYield); ! pt->xThreadSleep = convertmachotocfmfuncptr (&extThreadSleep); ! ! #else ! ! pt->xMemAlloc = &extfrontierAlloc; ! pt->xMemResize = &extfrontierReAlloc; ! pt->xMemLock = &extfrontierLock; ! pt->xMemUnlock = &extfrontierUnlock; ! pt->xMemFree = &extfrontierFree; ! pt->xMemGetSize = &extfrontierSize; ! ! pt->xOdbGetCurrentRoot = &extOdbGetCurrentRoot; ! pt->xOdbNewFile = &extOdbNewFile; ! pt->xOdbOpenFile = &extOdbOpenFile; ! pt->xOdbSaveFile = &extOdbSaveFile; ! pt->xOdbCloseFile = &extOdbCloseFile; ! pt->xOdbDefined = &extOdbDefined; ! pt->xOdbDelete = &extOdbDelete; ! pt->xOdbGetType = &extOdbGetType; ! pt->xOdbCountItems = &extOdbCountItems; ! pt->xOdbGetNthItem = &extOdbGetNthItem; ! pt->xOdbGetValue = &extOdbGetValue; ! pt->xOdbSetValue = &extOdbSetValue; ! pt->xOdbNewTable = &extOdbNewTable; ! pt->xOdbGetModDate = &extOdbGetModDate; ! pt->xOdbDisposeValue = &extOdbDisposeValue; ! pt->xOdbGetError = &extOdbGetError; ! ! pt->xDoScript = &extDoScript; ! pt->xDoScriptText = &extDoScriptText; ! ! pt->xOdbNewListValue = &extOdbNewListValue; ! pt->xOdbGetListCount = &extOdbGetListCount; ! pt->xOdbDeleteListValue = &extOdbDeleteListValue; ! pt->xOdbSetListValue = &extOdbSetListValue; ! pt->xOdbGetListValue = &extOdbGetListValue; ! pt->xOdbAddListValue = &extOdbAddListValue; ! ! pt->xInvoke = &extInvoke; ! pt->xCoerce = &extCoerce; ! ! pt->xCallScript = &extCallScript; ! pt->xCallScriptText = &extCallScriptText; ! ! pt->xThreadYield = &extThreadYield; ! pt->xThreadSleep = &extThreadSleep; ! ! #endif ! ! } /*fillcalltable*/ ! ! ! #if 0 ! ! void smashcalltable (XDLLProcTable *pt) { ! ! #if defined(MACVERSION) && TARGET_RT_MAC_MACHO ! ! disposecfmfuncptr (pt->xMemAlloc); ! disposecfmfuncptr (pt->xMemResize); ! disposecfmfuncptr (pt->xMemLock); ! disposecfmfuncptr (pt->xMemUnlock); ! disposecfmfuncptr (pt->xMemFree); ! disposecfmfuncptr (pt->xMemGetSize); ! ! disposecfmfuncptr (pt->xOdbGetCurrentRoot); ! disposecfmfuncptr (pt->xOdbNewFile); ! disposecfmfuncptr (pt->xOdbOpenFile); ! disposecfmfuncptr (pt->xOdbSaveFile); ! disposecfmfuncptr (pt->xOdbCloseFile); ! disposecfmfuncptr (pt->xOdbDefined); ! disposecfmfuncptr (pt->xOdbDelete); ! disposecfmfuncptr (pt->xOdbGetType); ! disposecfmfuncptr (pt->xOdbCountItems); ! disposecfmfuncptr (pt->xOdbGetNthItem); ! disposecfmfuncptr (pt->xOdbGetValue); ! disposecfmfuncptr (pt->xOdbSetValue); ! disposecfmfuncptr (pt->xOdbNewTable); ! disposecfmfuncptr (pt->xOdbGetModDate); ! disposecfmfuncptr (pt->xOdbDisposeValue); ! disposecfmfuncptr (pt->xOdbGetError); ! ! disposecfmfuncptr (pt->xDoScript); ! disposecfmfuncptr (pt->xDoScriptText); ! ! disposecfmfuncptr (pt->xOdbNewListValue); ! disposecfmfuncptr (pt->xOdbGetListCount); ! disposecfmfuncptr (pt->xOdbDeleteListValue); ! disposecfmfuncptr (pt->xOdbSetListValue); ! disposecfmfuncptr (pt->xOdbGetListValue); ! disposecfmfuncptr (pt->xOdbAddListValue); ! ! disposecfmfuncptr (pt->xInvoke); ! disposecfmfuncptr (pt->xCoerce); ! ! disposecfmfuncptr (pt->xCallScript); ! disposecfmfuncptr (pt->xCallScriptText); ! ! disposecfmfuncptr (pt->xThreadYield); ! disposecfmfuncptr (pt->xThreadSleep); ! ! #endif ! } /*smashcalltable*/ ! #endif *************** *** 2738,2739 **** --- 2784,2796 ---- } /*calldllverb*/ + + void dllinitverbs (void) { + + if (dllcallbacks == nil) { + + dllcallbacks = (XDLLProcTable *) malloc (sizeof (XDLLProcTable)); + + if (dllcallbacks != nil) + fillcalltable (dllcallbacks); + } + } /*initdllverbs*/ Index: shellsysverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellsysverbs.c,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -C2 -d -r1.3.2.1 -r1.3.2.2 *** shellsysverbs.c 20 Nov 2004 19:08:52 -0000 1.3.2.1 --- shellsysverbs.c 1 Dec 2004 19:44:45 -0000 1.3.2.2 *************** *** 161,164 **** --- 161,166 ---- isvalidserialnumberfunc, + + showapplicationfunc, hashtablestatsfunc, *************** *** 990,993 **** --- 992,1010 ---- } + case showapplicationfunc: { /*2004-11-28 aradke: re-emerge from system tray*/ + + #ifdef WIN95VERSION + + releasethreadglobals (); + + ShowWindow (shellframewindow, SW_SHOW); + + grabthreadglobals (); + + #endif + + return (setbooleanvalue (true, v)); + } + case hashtablestatsfunc: { |
|
From: Andre R. <and...@us...> - 2004-12-01 19:45:10
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/build_XCode/Frontier.xcode Modified Files: Tag: New_Tables_Experiment-branch project.pbxproj Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) Index: project.pbxproj =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/Frontier.xcode/project.pbxproj,v retrieving revision 1.13.2.3 retrieving revision 1.13.2.4 diff -C2 -d -r1.13.2.3 -r1.13.2.4 *** project.pbxproj 14 Nov 2004 18:02:21 -0000 1.13.2.3 --- project.pbxproj 1 Dec 2004 19:44:46 -0000 1.13.2.4 *************** *** 297,301 **** 65D516AB072CED430097D18E, 65BBB664072E5643008E2F34, ! 654C0C700747D3DE002FA7FA, ); isa = PBXHeadersBuildPhase; --- 297,301 ---- 65D516AB072CED430097D18E, 65BBB664072E5643008E2F34, ! 65487ED8075E522900E88CC7, ); isa = PBXHeadersBuildPhase; *************** *** 551,555 **** 651527A0072BFC6900411831, 651527AC072BFC6900411831, ! 654C0C720747D415002FA7FA, ); isa = PBXSourcesBuildPhase; --- 551,555 ---- 651527A0072BFC6900411831, 651527AC072BFC6900411831, ! 65487ED6075E520400E88CC7, ); isa = PBXSourcesBuildPhase; *************** *** 1812,1816 **** 651525E2072BFC6700411831, 651525EB072BFC6700411831, ! 654C0C710747D415002FA7FA, 651525EC072BFC6700411831, 651525ED072BFC6700411831, --- 1812,1816 ---- 651525E2072BFC6700411831, 651525EB072BFC6700411831, ! 65487ED5075E520400E88CC7, 651525EC072BFC6700411831, 651525ED072BFC6700411831, *************** *** 8345,8374 **** }; }; ! 654C0C6F0747D3DE002FA7FA = { fileEncoding = 30; isa = PBXFileReference; ! lastKnownFileType = sourcecode.c.h; ! name = arraylist.h; ! path = ../Common/headers/arraylist.h; refType = 2; sourceTree = SOURCE_ROOT; }; ! 654C0C700747D3DE002FA7FA = { ! fileRef = 654C0C6F0747D3DE002FA7FA; isa = PBXBuildFile; settings = { }; }; ! 654C0C710747D415002FA7FA = { fileEncoding = 30; isa = PBXFileReference; ! lastKnownFileType = sourcecode.c.c; ! name = arraylist.c; ! path = ../Common/source/arraylist.c; refType = 2; sourceTree = SOURCE_ROOT; }; ! 654C0C720747D415002FA7FA = { ! fileRef = 654C0C710747D415002FA7FA; isa = PBXBuildFile; settings = { --- 8345,8374 ---- }; }; ! 65487ED5075E520400E88CC7 = { fileEncoding = 30; isa = PBXFileReference; ! lastKnownFileType = sourcecode.c.c; ! name = arraylist.c; ! path = ../Common/source/arraylist.c; refType = 2; sourceTree = SOURCE_ROOT; }; ! 65487ED6075E520400E88CC7 = { ! fileRef = 65487ED5075E520400E88CC7; isa = PBXBuildFile; settings = { }; }; ! 65487ED7075E522900E88CC7 = { fileEncoding = 30; isa = PBXFileReference; ! lastKnownFileType = sourcecode.c.h; ! name = arraylist.h; ! path = ../Common/headers/arraylist.h; refType = 2; sourceTree = SOURCE_ROOT; }; ! 65487ED8075E522900E88CC7 = { ! fileRef = 65487ED7075E522900E88CC7; isa = PBXBuildFile; settings = { *************** *** 8428,8432 **** 6515292E072BFFE100411831, 6515283C072BFE8A00411831, ! 654C0C6F0747D3DE002FA7FA, 6515284E072BFE9C00411831, 651528D2072BFF2200411831, --- 8428,8432 ---- 6515292E072BFFE100411831, 6515283C072BFE8A00411831, ! 65487ED7075E522900E88CC7, 6515284E072BFE9C00411831, 651528D2072BFF2200411831, |
|
From: Andre R. <and...@us...> - 2004-12-01 19:44:57
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/Common/resources/Win32 Modified Files: Tag: New_Tables_Experiment-branch kernvelverbs.rc Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) Index: kernvelverbs.rc =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/kernvelverbs.rc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** kernvelverbs.rc 20 Nov 2004 19:05:01 -0000 1.1.2.1 --- kernvelverbs.rc 1 Dec 2004 19:44:45 -0000 1.1.2.2 *************** *** 827,831 **** "frontier\0", //Function Processor Name true, //Window required ! 15, //Count of verbs "getprogrampath\0", "getfilepath\0", --- 827,831 ---- "frontier\0", //Function Processor Name true, //Window required ! 16, //Count of verbs "getprogrampath\0", "getfilepath\0", *************** *** 841,844 **** --- 841,845 ---- "hideapplication\0", "isvalidserialnumber\0", + "showapplication\0", "hashtablestats\0", "testhashfunction\0" |
|
From: Andre R. <and...@us...> - 2004-12-01 19:44:56
|
Update of /cvsroot/frontierkernel/Frontier/build_CWPro8/prefix_headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/build_CWPro8/prefix_headers Added Files: Tag: New_Tables_Experiment-branch radio.osx.h radio.osx.r radio.osxcfm.debug.pch radio.osxcfm.release.pch radio.ppc.debug.pch radio.ppc.h radio.ppc.r radio.ppc.release.pch radio.win32.debug.pch radio.win32.h radio.win32.rcprefix.h radio.win32.release.pch Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) --- NEW FILE: radio.win32.h --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior prefix file for Win32 */ #define PIKE 1 #define WIN95VERSION 1 #define WIN32 #define _WIN32 #define _WINDOWS #define _X86_ #define _WIN32_WINNT 0x0400 /* Windows NT 4.0 or later */ #define _WIN32_WINDOWS 0x0410 /* Windows 98 or later */ #undef MACVERSION #undef TARGET_API_MAC_CARBON #undef TARGET_RT_MAC_CFM #undef TARGET_RT_MAC_MACHO #include "frontier.h" --- NEW FILE: radio.osx.r --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior prefix file for Carbon/OSX */ #define PIKE 1 #undef WIN95VERSION #define MACVERSION 1 #define TARGET_API_MAC_OS8 0 /* see ConditionalMacros.h */ #define TARGET_API_MAC_CARBON 1 #define TARGET_API_MAC_OSX 0 #undef FRONTIER_FRAMEWORK_INCLUDES --- NEW FILE: radio.ppc.r --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior prefix file for Classic Mac OS */ #define PIKE 1 #undef WIN95VERSION #define MACVERSION 1 #define TARGET_API_MAC_OS8 1 /* see ConditionalMacros.h */ #define TARGET_API_MAC_CARBON 0 #define TARGET_API_MAC_OSX 0 #undef FRONTIER_FRAMEWORK_INCLUDES --- NEW FILE: radio.win32.release.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio Win32" */ #pragma precompile_target "radio.win32.release.mch" #undef _DEBUG #define NDEBUG #include "radio.win32.h" --- NEW FILE: radio.osxcfm.debug.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio OSXCFM Debug" */ #pragma precompile_target "radio.osxcfm.debug.mch" #define DEBUG 1 #define DEBUG_INTERNAL 1 #include "radio.osx.h" --- NEW FILE: radio.osxcfm.release.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio OSXCFM" */ #pragma precompile_target "radio.osxcfm.release.mch" #define DEBUG 1 #define PRODUCTION 1 #include "radio.osx.h" --- NEW FILE: radio.ppc.debug.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio PPC Debug" */ #pragma precompile_target "radio.ppc.debug.mch" #include "radio.ppc.h" --- NEW FILE: radio.win32.rcprefix.h --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior resource prefix file for Win32 */ #define PIKE 1 #define WIN95VERSION 1 #define WIN32 #define _WIN32 #define _WINDOWS #define _X86_ #define _WIN32_WINNT 0x0400 /* Windows NT 4.0 or later */ #define _WIN32_WINDOWS 0x0410 /* Windows 98 or later */ #undef MACVERSION #undef TARGET_API_MAC_CARBON #undef TARGET_RT_MAC_CFM #undef TARGET_RT_MAC_MACHO --- NEW FILE: radio.ppc.release.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio PPC" */ #pragma precompile_target "radio.ppc.release.mch" #include "radio.ppc.h" --- NEW FILE: radio.osx.h --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior prefix file for Carbon/OSX */ #define PIKE 1 #undef WIN95VERSION #define MACVERSION 1 #define TARGET_API_MAC_OS8 0 /* see ConditionalMacros.h */ #define TARGET_API_MAC_CARBON 1 #define TARGET_API_MAC_OSX 0 #include "frontier.h" --- NEW FILE: radio.ppc.h --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Generalized CodeWarrior prefix file for Classic Mac OS */ #define PIKE 1 #undef WIN95VERSION #define MACVERSION 1 #define TARGET_API_MAC_OS8 1 /* see ConditionalMacros.h */ #define TARGET_API_MAC_CARBON 0 #define TARGET_API_MAC_OSX 0 #include "frontier.h" --- NEW FILE: radio.win32.debug.pch --- /****************************************************************************** UserLand Frontier(tm) -- High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. Copyright (C) 1992-2004 UserLand Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* 2004-11-28 aradke: Precompile prefix header for "Radio Win32 Debug" */ #pragma precompile_target "radio.win32.debug.mch" #define _DEBUG #undef NDEBUG #include "radio.win32.h" |
|
From: Andre R. <and...@us...> - 2004-12-01 19:44:56
|
Update of /cvsroot/frontierkernel/Frontier/Common/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/Common/headers Modified Files: Tag: New_Tables_Experiment-branch CallMachOFrameWork.h langdll.h ops.h versions.h Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) Index: langdll.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/langdll.h,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** langdll.h 9 Oct 2004 20:57:10 -0000 1.1 --- langdll.h 1 Dec 2004 19:44:44 -0000 1.1.2.1 *************** *** 75,79 **** odbBool xCALLBACK extThreadSleep (long sleepticks); /* 2003-04-22 AR */ ! extern void fillcalltable (XDLLProcTable * calltable); extern boolean dllisloadedverb (hdltreenode hparam1, tyvaluerecord *vreturned); --- 75,81 ---- odbBool xCALLBACK extThreadSleep (long sleepticks); /* 2003-04-22 AR */ ! extern void dllinitverbs (void); /*2004-11-29 aradke*/ ! ! extern void fillcalltable (XDLLProcTable *); extern boolean dllisloadedverb (hdltreenode hparam1, tyvaluerecord *vreturned); Index: ops.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/ops.h,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -C2 -d -r1.2 -r1.2.2.1 *** ops.h 30 Oct 2004 23:50:16 -0000 1.2 --- ops.h 1 Dec 2004 19:44:44 -0000 1.2.2.1 *************** *** 109,110 **** --- 109,111 ---- extern void getsizestring (unsigned long, bigstring); + extern unsigned long bcdtolong (unsigned long); /* 2004-11-16 creedon */ \ No newline at end of file Index: versions.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/versions.h,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** versions.h 13 Nov 2004 16:02:25 -0000 1.2.2.1 --- versions.h 1 Dec 2004 19:44:44 -0000 1.2.2.2 *************** *** 33,48 **** ! #define radio_major_version 8 ! #define radio_major_version_bcd 0x08 /* major version in BCD notation */ ! #define radio_sub_version 1 #define radio_minor_version 0 ! #define radio_subminor_version_bcd 0x10 /* sub and minor version in BCD notation */ ! #define radio_stage_code 0x60 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ #define radio_revision_level 4 /* for non-final releases only */ #define radio_build_number 4 /* increment by one for every release, final or not */ ! #define radio_version_string "8.1b4" --- 33,48 ---- ! #define radio_major_version 10 ! #define radio_major_version_bcd 0x10 /* major version in BCD notation */ ! #define radio_sub_version 0 #define radio_minor_version 0 ! #define radio_subminor_version_bcd 0x00 /* sub and minor version in BCD notation */ ! #define radio_stage_code 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ #define radio_revision_level 4 /* for non-final releases only */ #define radio_build_number 4 /* increment by one for every release, final or not */ ! #define radio_version_string "10.0a4" *************** *** 55,62 **** #define frontier_stage_code 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define frontier_revision_level 3 /* for non-final releases only */ ! #define frontier_build_number 3 /* increment by one for every release, final or not */ ! #define frontier_version_string "10.0a3" --- 55,62 ---- #define frontier_stage_code 0x40 /* dev = 0x20, alpha = 0x40, beta = 0x60, final = 0x80 */ ! #define frontier_revision_level 4 /* for non-final releases only */ ! #define frontier_build_number 4 /* increment by one for every release, final or not */ ! #define frontier_version_string "10.0a4" Index: CallMachOFrameWork.h =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/headers/CallMachOFrameWork.h,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** CallMachOFrameWork.h 31 Oct 2004 20:41:23 -0000 1.3 --- CallMachOFrameWork.h 1 Dec 2004 19:44:44 -0000 1.3.2.1 *************** *** 28,32 **** --- 28,41 ---- extern boolean unixshellcall (Handle hcommand, Handle hreturn); + extern OSStatus LoadFrameworkBundle(CFStringRef framework, CFBundleRef *bundlePtr); + extern void *convertcfmtomachofuncptr (void *); + + extern void disposemachofuncptr (void *); + + extern void *convertmachotocfmfuncptr (void *); + + extern void disposecfmfuncptr (void *); + #endif |
|
From: Andre R. <and...@us...> - 2004-12-01 19:44:54
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Mac In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9186/Common/resources/Mac Modified Files: Tag: New_Tables_Experiment-branch SHELL.R kernvelverbs.r Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resovled) Index: SHELL.R =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Mac/SHELL.R,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** SHELL.R 26 Oct 2004 10:14:27 -0000 1.4 --- SHELL.R 1 Dec 2004 19:44:45 -0000 1.4.2.1 *************** *** 2086,2090 **** --- 2086,2094 ---- 'BigD', 'STAT', + #if TARGET_API_MAC_CARBON + 133, /* normal window */ + #else 128, + #endif {100, 25, 175, 200}, 2, Index: kernvelverbs.r =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Mac/kernvelverbs.r,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** kernvelverbs.r 20 Nov 2004 19:05:01 -0000 1.2.2.1 --- kernvelverbs.r 1 Dec 2004 19:44:45 -0000 1.2.2.2 *************** *** 885,888 **** --- 885,889 ---- "hideapplication", "isvalidserialnumber", + "showapplication", "hashtablestats", "testhashfunction" |
|
From: Andre R. <and...@us...> - 2004-12-01 19:40:40
|
Update of /cvsroot/frontierkernel/Frontier/build_CWPro8 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8169 Modified Files: Tag: New_Tables_Experiment-branch Frontier.mcp Log Message: merged trunk, from merged-Root-of-New_Tables_Experiment to HEAD (conflicts resolved) Index: Frontier.mcp =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_CWPro8/Frontier.mcp,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -C2 -d -r1.6.2.1 -r1.6.2.2 Binary files /tmp/cvsqptzFs and /tmp/cvsVoijDB differ |
|
From: Andre R. <and...@us...> - 2004-12-01 14:54:02
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4151/Common/source Modified Files: Tag: New_Tables_Experiment-branch about.c Log Message: Modify version string displayed in About window to indicate that this is a release belonging to an experimental branch. Index: about.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/about.c,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** about.c 31 Oct 2004 13:02:23 -0000 1.4 --- about.c 1 Dec 2004 14:53:35 -0000 1.4.2.1 *************** *** 796,799 **** --- 796,805 ---- filegetprogramversion (bs); + #if defined(flrecyclehashnodes) || defined(flrecyclehashnodes) || defined(fltablesortorderisarray) + + pushstring ("\x04" "-NT1", bs); + + #endif + #ifdef fltrialsize |
|
From: Andre R. <and...@us...> - 2004-11-30 13:04:31
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3189/Common/resources/Win32 Modified Files: Tag: sidewinder-branch WinLand.rc Log Message: First cut at getting the language selection popup menu of script windows to work on Windows. This version seems to provide the basic functionality, but there are still display glitches. The logic behind the popup turned out to be easy, the problem is to get the popup displayed without disturbing the layout of script windows too much. Index: WinLand.rc =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Win32/WinLand.rc,v retrieving revision 1.4 retrieving revision 1.4.4.1 diff -C2 -d -r1.4 -r1.4.4.1 *** WinLand.rc 3 Nov 2004 21:20:58 -0000 1.4 --- WinLand.rc 30 Nov 2004 13:04:20 -0000 1.4.4.1 *************** *** 1777,1781 **** vertscroll, windowfloats, ! nomessagearea, dontinsetcontentrect, nonewonlaunch, --- 1777,1781 ---- vertscroll, windowfloats, ! messagearea, // 2004-11-30 aradke: was nomessagearea, changed to make room for language popup dontinsetcontentrect, nonewonlaunch, |