|
From: Karsten W. <kar...@us...> - 2006-01-31 16:43:44
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32474 Modified Files: Tag: pre_int64_branch file.c filelaunch.c fileverbs.c langexternal.c langops.c langscan.c langvalue.c langverbs.c osacomponent.c pictverbs.c Log Message: initial checkin from private sandbox Index: langscan.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langscan.c,v retrieving revision 1.6 retrieving revision 1.6.4.1 diff -C2 -d -r1.6 -r1.6.4.1 *** langscan.c 24 Jan 2005 02:10:01 -0000 1.6 --- langscan.c 31 Jan 2006 16:43:31 -0000 1.6.4.1 *************** *** 443,450 **** else { ! if (!isdigit (ch) && !(flhex && isxdigit (ch))) { ! ! if (flfloat) { ! double d; Handle x; --- 443,452 ---- else { ! if ( !isdigit (ch) ! && !( flhex ! && isxdigit (ch))) ! { ! if (flfloat) ! { double d; Handle x; Index: langexternal.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langexternal.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** langexternal.c 11 Jan 2005 22:48:06 -0000 1.4 --- langexternal.c 31 Jan 2006 16:43:31 -0000 1.4.6.1 *************** *** 2887,2894 **** register tyvaluetype type = langgetvaluetype (typeid); ! if (type >= outlinevaluetype) type = externalvaluetype; ! return (type); } /*langexternalgetvaluetype*/ --- 2887,2903 ---- register tyvaluetype type = langgetvaluetype (typeid); ! ! // kw - 2006-01-30 --- for new int types - these were added at the end ! // not sure if these need to be externaltypes ! #if 0 //LONGINT_LONGDATE == 1 ! if ( (type < longlongintvaluetype) ! && (type >= outlinevaluetype)) ! { ! type = externalvaluetype; ! } ! #else if (type >= outlinevaluetype) type = externalvaluetype; ! #endif return (type); } /*langexternalgetvaluetype*/ Index: pictverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/pictverbs.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** pictverbs.c 11 Jan 2005 22:48:10 -0000 1.4 --- pictverbs.c 31 Jan 2006 16:43:31 -0000 1.4.6.1 *************** *** 1167,1171 **** boolean pictstart (void) { ! /* set up callback routines record, and link our data into the shell's --- 1167,1171 ---- boolean pictstart (void) { ! /* set up callback routines record, and link our data into the shell's Index: file.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/file.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** file.c 11 Jan 2005 22:48:05 -0000 1.4 --- file.c 31 Jan 2006 16:43:31 -0000 1.4.6.1 *************** *** 206,228 **** get the size of a file that's already open. */ - - #ifdef MACVERSION - long filesize; - - if (GetEOF (fnum, &filesize) != noErr) - filesize = 0; - - return (filesize); - #endif ! #ifdef WIN95VERSION ! long filesize; ! filesize = GetFileSize (fnum, NULL); ! if (filesize == -1L) ! filesize = 0L; ! return (filesize); ! #endif } /*filegetsize*/ --- 206,228 ---- get the size of a file that's already open. */ ! #ifdef MACVERSION ! long fsize; // kw - 2006-01-30 --- renamed due to shadow warning ! if (GetEOF (fnum, &fsize) != noErr) ! fsize = 0; ! return (fsize); ! #endif ! ! #ifdef WIN95VERSION ! long fsize; // kw - 2006-01-30 --- renamed due to shadow warning ! ! fsize = GetFileSize (fnum, NULL); ! if (fsize == -1L) ! fsize = 0L; ! ! return (fsize); ! #endif } /*filegetsize*/ *************** *** 404,418 **** */ ! register long filesize; register Handle h; ! filesize = filegetsize (fnum); ! if (!newclearhandle (filesize, hreturned)) return (false); h = *hreturned; /*copy into register*/ ! if (!fileread (fnum, filesize, *h)) { disposehandle (h); --- 404,418 ---- */ ! register long fsize; // kw - 2006-01-30 --- renamed due to shadow warning register Handle h; ! fsize = filegetsize (fnum); ! if (!newclearhandle (fsize, hreturned)) return (false); h = *hreturned; /*copy into register*/ ! if (!fileread (fnum, fsize, *h)) { disposehandle (h); *************** *** 463,467 **** boolean flushvolumechanges (const tyfilespec *fs, hdlfilenum fnum) { ! #ifdef MACVERSION /* 4.1b7 dmb: was -- FlushVol (nil, (*fs).vRefNum); --- 463,468 ---- boolean flushvolumechanges (const tyfilespec *fs, hdlfilenum fnum) { ! #ifdef MACVERSION ! #pragma unused (fnum) /* 4.1b7 dmb: was -- FlushVol (nil, (*fs).vRefNum); Index: langverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langverbs.c,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -C2 -d -r1.12 -r1.12.2.1 *** langverbs.c 8 Apr 2005 12:29:30 -0000 1.12 --- langverbs.c 31 Jan 2006 16:43:31 -0000 1.12.2.1 *************** *** 864,868 **** if ((type >= outlinevaluetype) && (type <= pictvaluetype)) { ! if (!langexternalnewvalue ((tyexternalid) (type - outlinevaluetype), nil, &val)) return (false); --- 864,876 ---- if ((type >= outlinevaluetype) && (type <= pictvaluetype)) { ! #if LONGINT_LONGDATE == 1 ! int x = type; ! if ((type == 38) || (type == 39)) ! { ! x = -x; ! x = -x; ! } ! #else ! #endif if (!langexternalnewvalue ((tyexternalid) (type - outlinevaluetype), nil, &val)) return (false); Index: filelaunch.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/filelaunch.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** filelaunch.c 11 Jan 2005 22:48:05 -0000 1.4 --- filelaunch.c 31 Jan 2006 16:43:31 -0000 1.4.6.1 *************** *** 127,131 **** Boolean wasChanged; AliasHandle targetAlias; ! long index; long nTargets = 1; FSSpec targets[1]; --- 127,131 ---- Boolean wasChanged; AliasHandle targetAlias; ! long idx; // kw - 2006-01-30 --- renamed due to shadow warning long nTargets = 1; FSSpec targets[1]; *************** *** 145,181 **** /* create an open documents event targeting the finder */ ! err = AECreateDesc(typeApplSignature, (Ptr) &fndrCreator, ! sizeof(fndrCreator), &fndrAddress); ! if (err != noErr) goto bail; ! err = AECreateAppleEvent(kCoreEventClass, kAEOpenDocuments, ! &fndrAddress, kAutoGenerateReturnID, ! kAnyTransactionID, &theAEvent); ! if (err != noErr) goto bail; ! /* create the list of files to open */ err = AECreateList(NULL, 0, false, &targetListDesc); ! if (err != noErr) goto bail; ! for ( index=0; index < nTargets; index++) { if (targetAlias == NULL) ! err = NewAlias(NULL, (targetList + index), &targetAlias); ! else err = UpdateAlias(NULL, (targetList + index), targetAlias, &wasChanged); ! if (err != noErr) goto bail; HLock((Handle) targetAlias); ! err = AEPutPtr(&targetListDesc, (index + 1), typeAlias, *targetAlias, GetHandleSize((Handle) targetAlias)); HUnlock((Handle) targetAlias); ! if (err != noErr) goto bail; } ! /* add the file list to the apple event */ err = AEPutParamDesc(&theAEvent, keyDirectObject, &targetListDesc); - if (err != noErr) goto bail; ! /* send the event to the Finder */ ! err = AESend(&theAEvent, &theReply, kAENoReply, ! kAENormalPriority, kAEDefaultTimeout, NULL, NULL); /* clean up and leave */ bail: ! if (targetAlias != NULL) DisposeHandle((Handle) targetAlias); AEDisposeDesc(&targetListDesc); AEDisposeDesc(&theAEvent); --- 145,219 ---- /* create an open documents event targeting the finder */ ! err = AECreateDesc( ! typeApplSignature, ! (Ptr) &fndrCreator, ! sizeof(fndrCreator), ! &fndrAddress); ! if (err != noErr) ! goto bail; ! ! err = AECreateAppleEvent( ! kCoreEventClass, ! kAEOpenDocuments, ! &fndrAddress, ! kAutoGenerateReturnID, ! kAnyTransactionID, ! &theAEvent); ! ! if (err != noErr) ! goto bail; ! ! /* create the list of files to open */ err = AECreateList(NULL, 0, false, &targetListDesc); ! ! if (err != noErr) ! goto bail; ! ! for ( idx = 0; idx < nTargets; idx++) ! { if (targetAlias == NULL) ! err = NewAlias(NULL, (targetList + idx), &targetAlias); ! else ! err = UpdateAlias(NULL, (targetList + idx), targetAlias, &wasChanged); ! ! if (err != noErr) ! goto bail; ! HLock((Handle) targetAlias); ! err = AEPutPtr( ! &targetListDesc, ! (idx + 1), ! typeAlias, ! *targetAlias, ! GetHandleSize((Handle) targetAlias)); ! HUnlock((Handle) targetAlias); ! ! if (err != noErr) ! goto bail; } ! /* add the file list to the apple event */ err = AEPutParamDesc(&theAEvent, keyDirectObject, &targetListDesc); ! if (err != noErr) ! goto bail; ! ! /* send the event to the Finder */ ! err = AESend( ! &theAEvent, ! &theReply, ! kAENoReply, ! kAENormalPriority, ! kAEDefaultTimeout, ! NULL, ! NULL); /* clean up and leave */ bail: ! if (targetAlias != NULL) ! DisposeHandle((Handle) targetAlias); ! AEDisposeDesc(&targetListDesc); AEDisposeDesc(&theAEvent); Index: fileverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/fileverbs.c,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C2 -d -r1.9 -r1.9.2.1 *** fileverbs.c 27 Dec 2005 00:55:32 -0000 1.9 --- fileverbs.c 31 Jan 2006 16:43:31 -0000 1.9.2.1 *************** *** 746,750 **** short ctconsumed = 3; short ctpositional = 3; ! tyvaluerecord val; if (!gettypelistvalue (hparam1, 3, &filetypes, &typelist)) --- 746,750 ---- short ctconsumed = 3; short ctpositional = 3; ! tyvaluerecord lval; // kw -2006-01-30 --- renamed due to shadow warning if (!gettypelistvalue (hparam1, 3, &filetypes, &typelist)) *************** *** 753,762 **** flnextparamislast = true; ! setostypevalue (oscreator, &val); ! if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, "\x07""creator", &val)) return (false); ! oscreator = val.data.ostypevalue; } --- 753,762 ---- flnextparamislast = true; ! setostypevalue (oscreator, &lval); ! if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, "\x07""creator", &lval)) return (false); ! oscreator = lval.data.ostypevalue; } Index: langops.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langops.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** langops.c 11 Jan 2005 22:48:07 -0000 1.4 --- langops.c 31 Jan 2006 16:43:31 -0000 1.4.6.1 *************** *** 70,134 **** static tytypeinfo typeinfo [ctvaluetypes] = { ! {'\?\?\?\?', STR_unknown}, ! {'char', STR_char}, ! {'shor', STR_int}, ! {'long', STR_long}, ! {'bad1', STR_unused1}, /*8/13*/ ! {'data', STR_binary}, ! {'bool', STR_boolean}, ! {'tokn', STR_token}, ! {'date', STR_date}, ! {'addr', STR_address}, ! {'code', STR_compiled_code}, ! {'exte', STR_double}, ! {'TEXT', STR_string}, /*8/13*/ ! {'xtrn', STR_external}, ! {'dir ', STR_direction}, ! {'bad2', STR_unused2}, /*9/17/91*/ ! {'type', STR_string4}, ! {'bad3', STR_unused3}, ! {'QDpt', STR_point}, ! {'qdrt', STR_rect}, ! {'tptn', STR_pattern}, ! {'cRGB', STR_rgb}, /*12/11/92 dmb*/ ! {'fixd', STR_fixed}, ! {'sing', STR_single}, ! {'doub', STR_double}, ! {'obj ', STR_objspec}, ! {'fss ', STR_filespec}, ! {'alis', STR_alias}, ! {'enum', STR_enumerator}, ! {'list', STR_list}, ! {'reco', STR_record}, /* --- 70,134 ---- static tytypeinfo typeinfo [ctvaluetypes] = { ! /* 0 */ {'\?\?\?\?', STR_unknown}, ! /* 1 */ {'char', STR_char}, ! /* 2 */ {'shor', STR_int}, ! /* 3 */ {'long', STR_long}, ! /* 4 */ {'bad1', STR_unused1}, /*8/13*/ ! /* 5 */ {'data', STR_binary}, ! /* 6 */ {'bool', STR_boolean}, ! /* 7 */ {'tokn', STR_token}, ! /* 8 */ {'date', STR_date}, ! /* 9 */ {'addr', STR_address}, ! /* 10 */ {'code', STR_compiled_code}, ! /* 11 */ {'exte', STR_double}, ! /* 12 */ {'TEXT', STR_string}, /*8/13*/ ! /* 13 */ {'xtrn', STR_external}, ! /* 14 */ {'dir ', STR_direction}, ! /* 15 */ {'bad2', STR_unused2}, /*9/17/91*/ ! /* 16 */ {'type', STR_string4}, ! /* 17 */ {'bad3', STR_unused3}, ! /* 18 */ {'QDpt', STR_point}, ! /* 19 */ {'qdrt', STR_rect}, ! /* 20 */ {'tptn', STR_pattern}, ! /* 21 */ {'cRGB', STR_rgb}, /*12/11/92 dmb*/ ! /* 22 */ {'fixd', STR_fixed}, ! /* 23 */ {'sing', STR_single}, ! /* 24 */ {'doub', STR_double}, ! /* 25 */ {'obj ', STR_objspec}, ! /* 26 */ {'fss ', STR_filespec}, ! /* 27 */ {'alis', STR_alias}, ! /* 28 */ {'enum', STR_enumerator}, ! /* 29 */ {'list', STR_list}, ! /* 30 */ {'reco', STR_record}, /* *************** *** 138,163 **** */ ! {'optx', STR_outline}, ! {'wptx', STR_wptext}, #ifdef fliowa ! {'intf', STR_interface}, #else ! {'head', STR_headline}, #endif ! {'tabl', STR_table}, ! ! {'scpt', STR_script}, ! {'mbar', STR_menubar}, ! {'pict', STR_picture} }; --- 138,168 ---- */ ! /* 31 */ {'optx', STR_outline}, ! /* 32 */ {'wptx', STR_wptext}, #ifdef fliowa ! /* 33 */ {'intf', STR_interface}, #else ! /* 33 */ {'head', STR_headline}, #endif ! /* 34 */ {'tabl', STR_table}, ! /* 35 */ {'scpt', STR_script}, ! /* 36 */ {'mbar', STR_menubar}, + /* 37 */ {'pict', STR_picture} + + #if LONGINT_LONGDATE == 1 + + /* 38 */ ,{'comp', STR_longlongtype }, + /* 39 */ {'ldt ', STR_longdatetype } + #endif }; *************** *** 166,170 **** boolean fl = true; ! if ((type < novaluetype) || (type >= ctvaluetypes)) { --- 171,181 ---- boolean fl = true; ! ! int ! x = type, ! y = ctvaluetypes; ! ! tytypeinfo z = typeinfo[type]; ! if ((type < novaluetype) || (type >= ctvaluetypes)) { *************** *** 173,176 **** --- 184,191 ---- fl = false; } + if (x >= 38) + { + x = x * 1; + } copystring ((ptrstring) typeinfo [type].bsname, bs); *************** *** 214,227 **** 12/11/92 dmb: added backward compatibility check for rgb values */ ! register tyvaluetype type; ! ! for (type = novaluetype; type < ctvaluetypes; ++type) if (typeinfo [type].id == ostypeid) return (type); ! if (ostypeid == 'RGB ') /*12/11/92 dmb*/ return (rgbvaluetype); ! return ((tyvaluetype) -1); } /*langgetvaluetype*/ --- 229,248 ---- 12/11/92 dmb: added backward compatibility check for rgb values */ ! register tyvaluetype type; ! static UInt64 x = 0; ! x++; ! ! for ( type = novaluetype; ! type < ctvaluetypes; ! ++type) ! { if (typeinfo [type].id == ostypeid) return (type); ! } ! if (ostypeid == 'RGB ') /*12/11/92 dmb*/ return (rgbvaluetype); ! return ((tyvaluetype) -1); } /*langgetvaluetype*/ *************** *** 235,240 **** return true if the binary type can be coerced into a normal scalar value */ ! ! if ((type < novaluetype) || (type >= outlinevaluetype)) /*outside of good range*/ return (false); --- 256,262 ---- return true if the binary type can be coerced into a normal scalar value */ ! ! if ( (type < novaluetype) ! || (type >= outlinevaluetype)) /*outside of good range*/ return (false); Index: langvalue.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/langvalue.c,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C2 -d -r1.8 -r1.8.2.1 *** langvalue.c 15 Dec 2005 21:42:52 -0000 1.8 --- langvalue.c 31 Jan 2006 16:43:31 -0000 1.8.2.1 *************** *** 78,192 **** ! typedef struct tyfastflagsvaluerecord { ! ! tyvaluetype valuetype; ! ! byte flags: 8; /*instead of 4 separate bits fields to clear*/ ! ! tyvaluedata data; ! } tyfastflagsvaluerecord; ! ! boolean langsymbolreference (hdlhashtable htable, bigstring bs, tyvaluerecord *val, hdlhashnode * hnode) { ! /* a bundle that was getting replicated everywhere. look up the indicated name in the table, and return true with *val equal to its value if the symbol is defined. */ ! boolean fl; ! pushhashtable (htable); ! ! fl = langgetsymbolval (bs, val, hnode); ! pophashtable (); ! ! if (!fl) { ! ! if ((htable == nil) && isemptystring (bs)) langerror (niladdresserror); else langparamerror (unknownidentifiererror, bs); - - return (false); } ! return (true); ! } /*langsymbolreference*/ ! static boolean gettokenvisit (bigstring bsname, hdlhashnode hnode, tyvaluerecord val, ptrvoid refcon) { #pragma unused(bsname, hnode, refcon) if (val.valuetype != tokenvaluetype) return (false); ! return (val.data.tokenvalue == functiontoken); ! } /*gettokenvisit*/ ! ! ! static boolean gettokenname (bigstring bsname) { ! register boolean fl; fl = hashinversesearch (hbuiltinfunctions, &gettokenvisit, nil, bsname); - return (fl); ! } /*gettokenname*/ ! void initvalue (tyvaluerecord *val, tyvaluetype type) { ! ! /* ! call this routine to set the type and clear other fields of a new value ! */ ! (*val).valuetype = type; - (*val).data.longvalue = 0; - (*(tyfastflagsvaluerecord *) val).flags = 0; ! } /*initvalue*/ ! boolean setnilvalue (tyvaluerecord *val) { ! initvalue (val, novaluetype); - return (true); ! } /*setnilvalue*/ ! boolean setbooleanvalue (boolean fl, tyvaluerecord *val) { ! ! /* ! set val to be a the boolean value fl. can't fail. ! */ (*val).valuetype = booleanvaluetype; - (*val).data.flvalue = fl; - (*(tyfastflagsvaluerecord *) val).flags = 0; - return (true); ! } /*setbooleanvalue*/ ! boolean setcharvalue (byte ch, tyvaluerecord *val) { ! ! /* ! set val to be a the character value ch. can't fail. ! */ ! (*val).valuetype = charvaluetype; - (*val).data.chvalue = ch; - (*(tyfastflagsvaluerecord *) val).flags = 0; - return (true); ! } /*setcharvalue*/ --- 78,197 ---- ! typedef struct tyfastflagsvaluerecord ! { ! tyvaluetype valuetype; ! byte flags: 8; /*instead of 4 separate bits fields to clear*/ ! tyvaluedata data; ! } tyfastflagsvaluerecord; ! boolean ! langsymbolreference ( ! hdlhashtable htable, ! bigstring bs, ! tyvaluerecord *val, ! hdlhashnode *hnode) ! { /* a bundle that was getting replicated everywhere. look up the indicated name in the table, and return true with *val equal to its value if the symbol is defined. */ ! boolean fl; ! pushhashtable (htable); ! fl = langgetsymbolval (bs, val, hnode); pophashtable (); ! ! if (!fl) ! { ! if ( (htable == nil) ! && isemptystring (bs)) ! { langerror (niladdresserror); + } else + { langparamerror (unknownidentifiererror, bs); } ! return (false); ! } return (true); ! } /* langsymbolreference */ ! static boolean ! gettokenvisit ( ! bigstring bsname, ! hdlhashnode hnode, ! tyvaluerecord val, ! ptrvoid refcon) ! { #pragma unused(bsname, hnode, refcon) + if (val.valuetype != tokenvaluetype) return (false); ! return (val.data.tokenvalue == functiontoken); ! } /*gettokenvisit*/ ! ! ! static boolean ! gettokenname (bigstring bsname) ! { register boolean fl; fl = hashinversesearch (hbuiltinfunctions, &gettokenvisit, nil, bsname); return (fl); ! } /*gettokenname*/ ! void ! initvalue ( ! tyvaluerecord *val, ! tyvaluetype type) ! { ! // call this routine to set the type and clear other fields of a new value ! (*val).valuetype = type; (*val).data.longvalue = 0; (*(tyfastflagsvaluerecord *) val).flags = 0; ! } /*initvalue*/ ! boolean ! setnilvalue (tyvaluerecord *val) ! { initvalue (val, novaluetype); return (true); ! } /*setnilvalue*/ ! boolean ! setbooleanvalue ( ! boolean fl, ! tyvaluerecord *val) ! { ! // set val to be a the boolean value fl. can't fail. (*val).valuetype = booleanvaluetype; (*val).data.flvalue = fl; (*(tyfastflagsvaluerecord *) val).flags = 0; return (true); ! } /*setbooleanvalue*/ ! boolean ! setcharvalue ( ! byte ch, ! tyvaluerecord *val) ! { ! // set val to be a the character value ch. can't fail. ! (*val).valuetype = charvaluetype; (*val).data.chvalue = ch; (*(tyfastflagsvaluerecord *) val).flags = 0; return (true); ! } /*setcharvalue*/ *************** *** 222,225 **** --- 227,265 ---- } /*setlongvalue*/ + #if LONGINT_LONGDATE == 1 + boolean setlonglongintvalue (tylonglongint x, tyvaluerecord *val) { + + /* + set val to be a the long long value x. can't fail. + */ + + (*val).valuetype = longlongintvaluetype; + + **(*val).data.longlongintvalue = x; + + (*(tyfastflagsvaluerecord *) val).flags = 0; + + return (true); + } /* setlonglongintvalue */ + #endif + + + #if LONGINT_LONGDATE == 1 + boolean setlongdatevalue (tylonglongint x, tyvaluerecord *val) { + + /* + set val to be a the long date value x. can't fail. + */ + + (*val).valuetype = longdatetimevaluetype; + + **(*val).data.longlongintvalue = x; + + (*(tyfastflagsvaluerecord *) val).flags = 0; + + return (true); + } /* setlongdatevalue */ + #endif + boolean setdatevalue (unsigned long x, tyvaluerecord *val) { *************** *** 906,938 **** case listvaluetype: case recordvaluetype: ! #endif initvalue (vreturned, novaluetype); ! #ifdef flnewfeatures ! ! if (v.fldiskval) { ! /* ! 4.0.2b1 dmb: for disk-based scalars, the copy will be the actual ! data, while the original value (and the hashtable node) will still be on disk */ ! ! if (!dbrefhandle (v.data.diskvalue, &x)) ! return (false); ! } ! else { ! if (!copyhandle (v.data.binaryvalue, &x)) ! return (false); ! } ! #else ! if (!copyhandle (v.data.binaryvalue, &x)) return (false); ! ! #endif ! return (setheapvalue (x, v.valuetype, vreturned)); ! ! #ifdef oplanglists case listvaluetype: case recordvaluetype: --- 946,975 ---- case listvaluetype: case recordvaluetype: ! #endif initvalue (vreturned, novaluetype); ! #ifdef flnewfeatures ! if (v.fldiskval) { ! /* ! 4.0.2b1 dmb: for disk-based scalars, the copy will be the actual ! data, while the original value (and the hashtable node) will still be on disk */ ! ! if (!dbrefhandle (v.data.diskvalue, &x)) ! return (false); ! } ! else ! { if (!copyhandle (v.data.binaryvalue, &x)) return (false); ! } ! #else ! if (!copyhandle (v.data.binaryvalue, &x)) ! return (false); ! #endif return (setheapvalue (x, v.valuetype, vreturned)); ! ! #ifdef oplanglists case listvaluetype: case recordvaluetype: *************** *** 958,969 **** break; } /*switch*/ ! return (true); ! } /*copyvaluerecord*/ - #ifdef DATABASE_DEBUG ! void debug_disposevaluerecord (tyvaluerecord val, boolean fldisk, long line, char *sourcefile) #else --- 995,1011 ---- break; } /*switch*/ ! return (true); ! } /*copyvaluerecord*/ ! #ifdef DATABASE_DEBUG + void + debug_disposevaluerecord ( + tyvaluerecord val, + boolean fldisk, + long line, + char *sourcefile) #else *************** *** 972,976 **** #endif { - /* 9/24/92 dmb: never dispose code trees here; there's no such thing as --- 1014,1017 ---- *************** *** 1115,1160 **** if (v1 != nil) ! if ((*v1).fltmpstack) { //isgarbagetype ((*v1).valuetype)) { ! #ifdef oplanglists disposevaluerecord (*v1, true); ! #else releaseheaptmp ((Handle) (*v1).data.stringvalue); ! #endif ! } ! if (v2 != nil) ! if ((*v2).fltmpstack) { //isgarbagetype ((*v2).valuetype)) { ! #ifdef oplanglists disposevaluerecord (*v2, true); ! #else releaseheaptmp ((Handle) (*v2).data.stringvalue); ! #endif ! } ! ! } /*disposevalues*/ ! boolean stringisboolean (bigstring bs, boolean *flboolean) { ! alllower (bs); ! ! if (equalstrings (bs, bstrue)) { ! *flboolean = true; - return (true); ! } ! ! if (equalstrings (bs, bsfalse)) { ! *flboolean = false; - return (true);; ! } ! return (false); } /*stringisboolean*/ --- 1156,1203 ---- if (v1 != nil) ! { if ((*v1).fltmpstack) { //isgarbagetype ((*v1).valuetype)) { ! #ifdef oplanglists disposevaluerecord (*v1, true); ! #else releaseheaptmp ((Handle) (*v1).data.stringvalue); ! #endif ! } ! } ! if (v2 != nil) ! { if ((*v2).fltmpstack) { //isgarbagetype ((*v2).valuetype)) { ! #ifdef oplanglists disposevaluerecord (*v2, true); ! #else releaseheaptmp ((Handle) (*v2).data.stringvalue); ! #endif ! } ! } ! } /*disposevalues*/ ! boolean ! stringisboolean ( ! bigstring bs, ! boolean *flboolean) ! { alllower (bs); ! ! if (equalstrings (bs, bstrue)) ! { *flboolean = true; return (true); ! } ! ! if (equalstrings (bs, bsfalse)) ! { *flboolean = false; return (true);; ! } ! return (false); } /*stringisboolean*/ *************** *** 2033,2036 **** --- 2076,2096 ---- + static boolean longlongrangeerror (double f) { + + bigstring bs; + + if ( (f > 2147483647.0) + || (f < -2147483648.0)) + { + floattostring (f, bs); + + langparamerror (floattolongerror, bs); + + return (true); + } + return (false); + } /*longrangeerror*/ + + boolean coercetolong (tyvaluerecord *v) { *************** *** 2146,2149 **** --- 2206,2328 ---- + #if LONGINT_LONGDATE == 1 + boolean coercetolonglong (tyvaluerecord *v) { + + /* + kw - 2006-01-30 --- new; modelled after coercetolong + dmb:must releaseheaptmp when coercing binary type + + */ + + tylonglongint x; + double f; + + switch ((*v).valuetype) { + + case longvaluetype: + // kwtodo - 2006-01-30 + return (true); + + case novaluetype: + if (flinhibitnilcoercion) + return (false); + + x = 0; + + break; + + case booleanvaluetype: + x = (tylonglongint) (*v).data.flvalue; + + break; + + case charvaluetype: + x = (tylonglongint) (*v).data.chvalue; + + break; + + case intvaluetype: + x = (tylonglongint) (*v).data.intvalue; + + break; + + case directionvaluetype: + x = (tylonglongint) (*v).data.dirvalue; + + break; + + case datevaluetype: + x = (tylonglongint) (*v).data.datevalue; + + break; + + case stringvaluetype: + // kwtodo - 2006-01-30 + return (stringtolong (v)); + + case ostypevaluetype: + x = 0 & (tylonglongint) (*v).data.ostypevalue; + break; + + case pointvaluetype: + x = (tylonglongint) (*v).data.ostypevalue; + break; + + #ifdef MACVERSION + case fixedvaluetype: + x = (tylonglongint) FixRound ((*v).data.fixedvalue); + break; + #endif + + case singlevaluetype: + f = (*v).data.singlevalue; + + if (longrangeerror (f)) + return (false); + + x = (long) f; + + break; + + case doublevaluetype: + f = **(*v).data.doublevalue; + + if (longrangeerror (f)) + return (false); + + x = (long) f; + + break; + + case binaryvaluetype: { + long n; + register Handle h = (*v).data.binaryvalue; + + if (!getbinarynumber (h, &n)) + return (binarytoscalar (v, longvaluetype)); + + x = n; + + releaseheaptmp (h); + + break; + } + + case listvaluetype: + case recordvaluetype: + return (coercelistvalue (v, longvaluetype)); + + default: + langerror (longcoerceerror); + + return (false); + } /*switch*/ + + return (setlongvalue (x, v)); + } /* coercetolong */ + #endif + + + static boolean coercetolongfortype (tyvaluerecord *v, tyvaluetype type) { *************** *** 8814,8819 **** return (builtinvalue ((tyfunctype) val.data.tokenvalue, hparam1, vreturned)); } /*functionvalue*/ - - - - --- 8993,8994 ---- Index: osacomponent.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/osacomponent.c,v retrieving revision 1.7 retrieving revision 1.7.6.1 diff -C2 -d -r1.7 -r1.7.6.1 *** osacomponent.c 11 Jan 2005 22:48:10 -0000 1.7 --- osacomponent.c 31 Jan 2006 16:43:31 -0000 1.7.6.1 *************** *** 1260,1265 **** AEDesc list; register ScrpSTElement *pstyle; ! ! #ifdef fldegug if (totype != typeStyledText) --- 1260,1266 ---- AEDesc list; register ScrpSTElement *pstyle; ! ! // kw -2006-01-28 --- typo, was "degug" ! #ifdef fldebug if (totype != typeStyledText) *************** *** 3222,3227 **** long curA5 = SetUpAppA5 (); #endif ! ! #ifdef fldegug if ((*desc).descriptorType != typeInsertionLoc) --- 3223,3229 ---- long curA5 = SetUpAppA5 (); #endif ! ! // kw -2006-01-28 --- typo, was "degug" ! #ifdef fldebug if ((*desc).descriptorType != typeInsertionLoc) |