Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ucblogo for openSUSE:Factory checked in at 2023-04-05 21:28:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ucblogo (Old) and /work/SRC/openSUSE:Factory/.ucblogo.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ucblogo" Wed Apr 5 21:28:35 2023 rev:3 rq:1077510 version:6.2.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ucblogo/ucblogo.changes 2023-01-28 19:05:18.753373983 +0100 +++ /work/SRC/openSUSE:Factory/.ucblogo.new.19717/ucblogo.changes 2023-04-05 21:36:02.230699321 +0200 @@ -1,0 +2,13 @@ +Sat Apr 1 09:25:04 UTC 2023 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 6.2.4: + * Validate RANDOM range input has the smaller number first + (gh#jrincayc/ucblogo-code#151). + * Manual updates (gh#jrincayc/ucblogo-code#152). + * Avoid more implicit function declarations by @fweimer-rh in + (gh#jrincayc/ucblogo-code#156). + * Move wait include to else of windows. + (gh#jrincayc/ucblogo-code#157). + * Migrate to wxWidgets 3.2 (gh#jrincayc/ucblogo-code#163). + +------------------------------------------------------------------- Old: ---- ucblogo-6.2.3.tar.gz New: ---- ucblogo-6.2.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ucblogo.spec ++++++ --- /var/tmp/diff_new_pack.2unIrV/_old 2023-04-05 21:36:02.642701672 +0200 +++ /var/tmp/diff_new_pack.2unIrV/_new 2023-04-05 21:36:02.650701718 +0200 @@ -17,7 +17,7 @@ Name: ucblogo -Version: 6.2.3 +Version: 6.2.4 Release: 0 Summary: Berkeley Logo interpreter License: GPL-3.0-or-later ++++++ ucblogo-6.2.3.tar.gz -> ucblogo-6.2.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/configure new/ucblogo-6.2.4/configure --- old/ucblogo-6.2.3/configure 2023-01-17 04:14:01.000000000 +0100 +++ new/ucblogo-6.2.4/configure 2023-03-28 03:52:29.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for ucblogo 6.2.3. +# Generated by GNU Autoconf 2.71 for ucblogo 6.2.4. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -608,8 +608,8 @@ # Identity of this package. PACKAGE_NAME='ucblogo' PACKAGE_TARNAME='ucblogo' -PACKAGE_VERSION='6.2.3' -PACKAGE_STRING='ucblogo 6.2.3' +PACKAGE_VERSION='6.2.4' +PACKAGE_STRING='ucblogo 6.2.4' PACKAGE_BUGREPORT='' PACKAGE_URL='https://github.com/jrincayc/ucblogo-code' @@ -1349,7 +1349,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ucblogo 6.2.3 to adapt to many kinds of systems. +\`configure' configures ucblogo 6.2.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1416,7 +1416,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ucblogo 6.2.3:";; + short | recursive ) echo "Configuration of ucblogo 6.2.4:";; esac cat <<\_ACEOF @@ -1525,7 +1525,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ucblogo configure 6.2.3 +ucblogo configure 6.2.4 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1877,7 +1877,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ucblogo $as_me 6.2.3, which was +It was created by ucblogo $as_me 6.2.4, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3366,7 +3366,7 @@ # Define the identity of the package. PACKAGE='ucblogo' - VERSION='6.2.3' + VERSION='6.2.4' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -7407,7 +7407,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ucblogo $as_me 6.2.3, which was +This file was extended by ucblogo $as_me 6.2.4, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7476,7 +7476,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -ucblogo config.status 6.2.3 +ucblogo config.status 6.2.4 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/configure.ac new/ucblogo-6.2.4/configure.ac --- old/ucblogo-6.2.3/configure.ac 2023-01-13 04:23:33.000000000 +0100 +++ new/ucblogo-6.2.4/configure.ac 2023-03-28 03:38:41.000000000 +0200 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([ucblogo],[6.2.3],[],[],[https://github.com/jrincayc/ucblogo-code]) +AC_INIT([ucblogo],[6.2.4],[],[],[https://github.com/jrincayc/ucblogo-code]) AC_CONFIG_SRCDIR([logodata.c]) AC_CONFIG_HEADERS(config.h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/docs/ucblogo.info new/ucblogo-6.2.4/docs/ucblogo.info --- old/ucblogo-6.2.3/docs/ucblogo.info 2023-01-17 04:14:12.000000000 +0100 +++ new/ucblogo-6.2.4/docs/ucblogo.info 2023-03-28 03:52:41.000000000 +0200 @@ -69,6 +69,11 @@ know how to program in Logo, and merely presents the details of this new implementation. +UCBLogo was originally implemented in 1988 on VAX computers at Berkeley, +based on experience gained from implementing LSRHS Logo on PDP-11 +computers in the 1970s. Since then UCBLogo has been ported to other +computer systems and operating systems. + Read 'Computer Science Logo Style, Volume 1: Symbolic Computing' by Brian Harvey (MIT Press, 1997) for a tutorial on Logo programming with emphasis on symbolic computation. @@ -76,7 +81,7 @@ Here are the special features of this dialect of Logo: - Source file compatible among Unix, DOS, Windows, and Mac platforms. + Source file compatible among Unix, Windows, and Mac platforms. Random-access arrays. @@ -98,8 +103,8 @@ Macros. Features *not* found in Berkeley Logo include robotics, music, -animation, parallelism, and multimedia. For those, buy a commercial -version. +animation, parallelism, and multimedia. For those, a different +implementation of Logo is needed. File: ucblogo.info, Node: GETTER/SETTER VARIBLE SYNTAX, Next: ENTERING AND LEAVING LOGO, Prev: OVERVIEW, Up: INTRODUCTION @@ -3185,6 +3190,12 @@ 6 Logical Operations ******************** + +File: ucblogo.info, Node: AND OR NOT, Up: LOGICAL OPERATIONS + +6.1 And, Or, and Not +==================== + * Menu: * AND:: @@ -3195,7 +3206,7 @@ File: ucblogo.info, Node: AND, Next: OR, Prev: LOGICAL OPERATIONS, Up: LOGICAL OPERATIONS and -=== +--- AND tf1 tf2 (AND tf1 tf2 tf3 ...) @@ -8062,420 +8073,421 @@ Node: Top191 Node: INTRODUCTION638 Node: OVERVIEW871 -Node: GETTER/SETTER VARIBLE SYNTAX2936 -Node: ENTERING AND LEAVING LOGO10705 -Node: TOKENIZATION14173 -Node: DATA STRUCTURE PRIMITIVES20121 -Node: CONSTRUCTORS20362 -Node: WORD20672 -Node: LIST20880 -Node: SENTENCE21135 -Node: FPUT21499 -Node: LPUT21828 -Node: ARRAY22183 -Node: MDARRAY22881 -Node: LISTTOARRAY23366 -Node: ARRAYTOLIST23645 -Node: COMBINE23957 -Node: REVERSE24247 -Node: GENSYM24478 -Node: SELECTORS24694 -Node: FIRST24984 -Node: FIRSTS25345 -Node: LAST25976 -Node: BUTFIRST26219 -Node: BUTFIRSTS26552 -Node: BUTLAST27114 -Node: ITEM27441 -Node: MDITEM27869 -Node: PICK28108 -Node: REMOVE28293 -Node: REMDUP28502 -Node: QUOTED28816 -Node: MUTATORS29035 -Node: SETITEM29374 -Node: MDSETITEM29689 -Node: dSETFIRST29939 -Node: dSETBF30466 -Node: dSETITEM31050 -Node: PUSH31538 -Node: POP31915 -Node: QUEUE32198 -Node: DEQUEUE32577 -Node: PREDICATES32863 -Node: WORDP33176 -Node: LISTP33369 -Node: ARRAYP33558 -Node: EMPTYP33754 -Node: EQUALP33975 -Node: NOTEQUALP35007 -Node: BEFOREP35325 -Node: dEQ35848 -Node: MEMBERP36357 -Node: SUBSTRINGP36771 -Node: NUMBERP37128 -Node: VBARREDP37336 -Node: QUERIES38121 -Node: COUNT38362 -Node: ASCII38720 -Node: RAWASCII39116 -Node: CHAR39462 -Node: MEMBER39697 -Node: LOWERCASE40144 -Node: UPPERCASE40386 -Node: STANDOUT40630 -Node: PARSE41794 -Node: RUNPARSE42122 -Node: OBJECTS42490 -Node: OBJECT CONSTRUCTORS46953 -Node: KINDOF47137 -Node: SOMETHING47540 -Node: ONEOF47803 -Node: OBJECT MUTATORS48533 -Node: EXIST48715 -Node: HAVE49643 -Node: HAVEMAKE49925 -Node: OBJECT SELECTORS50347 -Node: SELF50656 -Node: PARENTS50822 -Node: MYNAMES51414 -Node: MYNAMEP51635 -Node: MYPROCS51922 -Node: MYPROCP52151 -Node: MESSAGES52426 -Node: TALKTO52723 -Node: ASK53056 -Node: OBJECT QUERIES53442 -Node: WHOSENAME53653 -Node: WHOSEPROC53974 -Node: USUAL54227 -Node: COMMUNICATION56109 -Node: TRANSMITTERS56308 -Node: PRINT57940 -Node: TYPE58464 -Node: SHOW59676 -Node: RECEIVERS59942 -Node: READLIST60161 -Node: READWORD60854 -Node: READRAWLINE61642 -Node: READCHAR62241 -Node: READCHARS62862 -Node: SHELL63506 -Node: FILE ACCESS64936 -Node: SETPREFIX65362 -Node: PREFIX66070 -Node: OPENREAD66272 -Node: OPENWRITE66512 -Node: OPENAPPEND67570 -Node: OPENUPDATE67904 -Node: CLOSE68621 -Node: ALLOPEN68938 -Node: CLOSEALL69182 -Node: ERASEFILE69437 -Node: DRIBBLE69681 -Node: NODRIBBLE70207 -Node: SETREAD70415 -Node: SETWRITE70962 -Node: READER72442 -Node: WRITER72662 -Node: SETREADPOS72884 -Node: SETWRITEPOS73339 -Node: READPOS73793 -Node: WRITEPOS73977 -Node: EOFP74158 -Node: FILEP74388 -Node: TERMINAL ACCESS74635 -Node: KEYP74929 -Node: LINEP75632 -Node: CLEARTEXT76042 -Node: SETCURSOR76216 -Node: CURSOR76650 -Node: SETMARGINS77032 -Node: SETTEXTCOLOR77930 -Node: INCREASEFONT79155 -Node: SETTEXTSIZE79475 -Node: TEXTSIZE80131 -Node: SETFONT80475 -Node: FONT80909 -Node: ARITHMETIC81079 -Node: NUMERIC OPERATIONS81325 -Node: SUM81720 -Node: DIFFERENCE81933 -Node: MINUS82312 -Node: PRODUCT82774 -Node: QUOTIENT82996 -Node: REMAINDER83490 -Node: MODULO83762 -Node: INT84020 -Node: ROUND84329 -Node: SQRT84487 -Node: POWER84667 -Node: EXP84873 -Node: LOG1085029 -Node: LN85186 -Node: SIN85335 -Node: RADSIN85506 -Node: COS85687 -Node: RADCOS85864 -Node: ARCTAN86050 -Node: RADARCTAN86367 -Node: ISEQ86768 -Node: RSEQ87050 -Node: NUMERIC PREDICATES87380 -Node: LESSP87609 -Node: GREATERP87856 -Node: LESSEQUALP88110 -Node: GREATEREQUALP88381 -Node: RANDOM NUMBERS88650 -Node: RANDOM88837 -Node: RERANDOM89398 -Node: PRINT FORMATTING89960 -Node: FORM90136 -Node: BITWISE OPERATIONS90900 -Node: BITAND91113 -Node: BITOR91366 -Node: BITXOR91601 -Node: BITNOT91836 -Node: ASHIFT92040 -Node: LSHIFT92328 -Node: LOGICAL OPERATIONS92593 -Node: AND92764 -Node: OR93530 -Node: NOT94270 -Node: GRAPHICS94613 -Node: TURTLE MOTION96977 -Node: FORWARD97241 -Node: BACK97499 -Node: LEFT97782 -Node: RIGHT98010 -Node: SETPOS98236 -Node: SETXY98481 -Node: SETX98720 -Node: SETY98959 -Node: SETHEADING99199 -Node: HOME99480 -Node: ARC99716 -Node: TURTLE MOTION QUERIES100013 -Node: POS100261 -Node: XCOR100476 -Node: YCOR100657 -Node: HEADING100842 -Node: TOWARDS101020 -Node: SCRUNCH101306 -Node: TURTLE AND WINDOW CONTROL101619 -Node: SHOWTURTLE102047 -Node: HIDETURTLE102248 -Node: CLEAN102576 -Node: CLEARSCREEN102849 -Node: WRAP103138 -Node: WINDOW103683 -Node: FENCE104196 -Node: FILL104583 -Node: FILLED104934 -Node: LABEL105464 -Node: SETLABELHEIGHT105712 -Node: TEXTSCREEN106425 -Node: FULLSCREEN106829 -Node: SPLITSCREEN107629 -Node: SETSCRUNCH108031 -Node: REFRESH109065 -Node: NOREFRESH109434 -Node: TURTLE AND WINDOW QUERIES109929 -Node: SHOWNP110195 -Node: SCREENMODE110519 -Node: TURTLEMODE110767 -Node: LABELSIZE111002 -Node: PEN AND BACKGROUND CONTROL111552 -Node: PENDOWN112410 -Node: PENUP112632 -Node: PENPAINT112828 -Node: PENERASE113030 -Node: PENREVERSE113236 -Node: SETPENCOLOR113518 -Node: SETPALETTE114307 -Node: SETPENSIZE114846 -Node: SETPENPATTERN115245 -Node: SETPEN115549 -Node: SETBACKGROUND115924 -Node: PEN QUERIES116240 -Node: PENDOWNP116496 -Node: PENMODE116693 -Node: PENCOLOR116906 -Node: PALETTE117595 -Node: PENSIZE117891 -Node: PEN118258 -Node: BACKGROUND118531 -Node: SAVING AND LOADING PICTURES118778 -Node: SAVEPICT119006 -Node: LOADPICT119554 -Node: EPSPICT119958 -Node: MOUSE QUERIES120460 -Node: MOUSEPOS120651 -Node: CLICKPOS121196 -Node: BUTTONP121516 -Node: BUTTON121871 -Node: WORKSPACE MANAGEMENT122280 -Node: PROCEDURE DEFINITION122604 -Node: TO122852 -Node: DEFINE126733 -Node: TEXT127684 -Node: FULLTEXT128148 -Node: COPYDEF128945 -Node: VARIABLE DEFINITION129538 -Node: MAKE129789 -Node: NAME130185 -Node: LOCAL130396 -Node: LOCALMAKE131101 -Node: THING131403 -Node: GLOBAL131832 -Node: PROPERTY LISTS132484 -Node: PPROP133351 -Node: GPROP133589 -Node: REMPROP133844 -Node: PLIST134068 -Node: WORKSPACE PREDICATES134475 -Node: PROCEDUREP134727 -Node: PRIMITIVEP134966 -Node: DEFINEDP135326 -Node: NAMEP135584 -Node: PLISTP135781 -Node: WORKSPACE QUERIES136161 -Node: CONTENTS136731 -Node: BURIED137072 -Node: TRACED137269 -Node: STEPPED137465 -Node: PROCEDURES137669 -Node: PRIMITIVES138036 -Node: NAMES138389 -Node: PLISTS138661 -Node: NAMELIST138953 -Node: PLLIST139350 -Node: ARITY139759 -Node: NODES140125 -Node: WORKSPACE INSPECTION141025 -Node: PO141295 -Node: POALL141591 -Node: POPS141835 -Node: PONS142113 -Node: POPLS142380 -Node: PON142662 -Node: POPL142954 -Node: POT143246 -Node: POTS143633 -Node: WORKSPACE CONTROL143884 -Node: ERASE144488 -Node: ERALL144859 -Node: ERPS145113 -Node: ERNS145351 -Node: ERPLS145579 -Node: ERN145815 -Node: ERPL146123 -Node: BURY146433 -Node: BURYALL146977 -Node: BURYNAME147218 -Node: UNBURY147492 -Node: UNBURYALL147806 -Node: UNBURYNAME148021 -Node: BURIEDP148310 -Node: TRACE148817 -Node: UNTRACE149391 -Node: TRACEDP149577 -Node: STEP150080 -Node: UNSTEP150629 -Node: STEPPEDP150812 -Node: EDIT151322 -Node: EDITFILE152959 -Node: EDALL153813 -Node: EDPS154011 -Node: EDNS154221 -Node: EDPLS154421 -Node: EDN154625 -Node: EDPL154869 -Node: SAVE155109 -Node: SAVEL155821 -Node: LOAD156112 -Node: CSLSLOAD156881 -Node: HELP157187 -Node: SETEDITOR158065 -Node: SETLIBLOC158354 -Node: SETCSLSLOC158800 -Node: SETHELPLOC159138 -Node: SETTEMPLOC159483 -Node: GC159850 -Node: .SETSEGMENTSIZE160901 -Node: CONTROL STRUCTURES161524 -Node: CONTROL161721 -Node: RUN163207 -Node: RUNRESULT163490 -Node: REPEAT163985 -Node: FOREVER164177 -Node: REPCOUNT164476 -Node: IF164925 -Node: IFELSE165828 -Node: TEST166243 -Node: IFTRUE166642 -Node: IFFALSE166945 -Node: STOP167268 -Node: OUTPUT167555 -Node: CATCH167934 -Node: THROW169058 -Node: ERROR170748 -Node: PAUSE171272 -Node: CONTINUE172232 -Node: WAIT172787 -Node: BYE173124 -Node: dMAYBEOUTPUT173286 -Node: GOTO174234 -Node: TAG174549 -Node: IGNORE174820 -Node: back-quote175078 -Node: FOR176510 -Node: DOdWHILE178092 -Node: WHILE178540 -Node: DOdUNTIL178980 -Node: UNTIL179431 -Node: CASE179868 -Node: COND180798 -Node: TEMPLATE-BASED ITERATION181953 -Node: APPLY186495 -Node: INVOKE186971 -Node: FOREACH187304 -Node: MAP188419 -Node: MAPdSE189774 -Node: FILTER191071 -Node: FIND192231 -Node: REDUCE193234 -Node: CROSSMAP194755 -Ref: CROSSMAP-Footnote-1195814 -Node: CASCADE195852 -Node: CASCADEd2198705 -Node: TRANSFER199055 -Node: MACROS199970 -Node: dMACRO200152 -Node: dDEFMACRO205243 -Node: MACROP205365 -Node: MACROEXPAND205556 -Node: ERROR PROCESSING206106 -Node: ERROR CODES208930 -Node: SPECIAL VARIABLES211308 -Node: ALLOWGETSET212035 -Node: BUTTONACT212485 -Node: CASEIGNOREDP213480 -Node: COMMANDLINE213914 -Node: ERRACT214185 -Node: FULLPRINTP214508 -Node: KEYACT215098 -Node: LOADNOISILY215942 -Node: PRINTDEPTHLIMIT216272 -Node: PRINTWIDTHLIMIT216611 -Node: REDEFP216952 -Node: STARTUP217243 -Node: UNBURYONEDIT217548 -Node: USEALTERNATENAMES217985 -Node: LOGOVERSION218371 -Node: LOGOPLATFORM218633 -Node: INTERNATIONALIZATION218893 -Node: INDEX225560 +Node: GETTER/SETTER VARIBLE SYNTAX3200 +Node: ENTERING AND LEAVING LOGO10969 +Node: TOKENIZATION14437 +Node: DATA STRUCTURE PRIMITIVES20385 +Node: CONSTRUCTORS20626 +Node: WORD20936 +Node: LIST21144 +Node: SENTENCE21399 +Node: FPUT21763 +Node: LPUT22092 +Node: ARRAY22447 +Node: MDARRAY23145 +Node: LISTTOARRAY23630 +Node: ARRAYTOLIST23909 +Node: COMBINE24221 +Node: REVERSE24511 +Node: GENSYM24742 +Node: SELECTORS24958 +Node: FIRST25248 +Node: FIRSTS25609 +Node: LAST26240 +Node: BUTFIRST26483 +Node: BUTFIRSTS26816 +Node: BUTLAST27378 +Node: ITEM27705 +Node: MDITEM28133 +Node: PICK28372 +Node: REMOVE28557 +Node: REMDUP28766 +Node: QUOTED29080 +Node: MUTATORS29299 +Node: SETITEM29638 +Node: MDSETITEM29953 +Node: dSETFIRST30203 +Node: dSETBF30730 +Node: dSETITEM31314 +Node: PUSH31802 +Node: POP32179 +Node: QUEUE32462 +Node: DEQUEUE32841 +Node: PREDICATES33127 +Node: WORDP33440 +Node: LISTP33633 +Node: ARRAYP33822 +Node: EMPTYP34018 +Node: EQUALP34239 +Node: NOTEQUALP35271 +Node: BEFOREP35589 +Node: dEQ36112 +Node: MEMBERP36621 +Node: SUBSTRINGP37035 +Node: NUMBERP37392 +Node: VBARREDP37600 +Node: QUERIES38385 +Node: COUNT38626 +Node: ASCII38984 +Node: RAWASCII39380 +Node: CHAR39726 +Node: MEMBER39961 +Node: LOWERCASE40408 +Node: UPPERCASE40650 +Node: STANDOUT40894 +Node: PARSE42058 +Node: RUNPARSE42386 +Node: OBJECTS42754 +Node: OBJECT CONSTRUCTORS47217 +Node: KINDOF47401 +Node: SOMETHING47804 +Node: ONEOF48067 +Node: OBJECT MUTATORS48797 +Node: EXIST48979 +Node: HAVE49907 +Node: HAVEMAKE50189 +Node: OBJECT SELECTORS50611 +Node: SELF50920 +Node: PARENTS51086 +Node: MYNAMES51678 +Node: MYNAMEP51899 +Node: MYPROCS52186 +Node: MYPROCP52415 +Node: MESSAGES52690 +Node: TALKTO52987 +Node: ASK53320 +Node: OBJECT QUERIES53706 +Node: WHOSENAME53917 +Node: WHOSEPROC54238 +Node: USUAL54491 +Node: COMMUNICATION56373 +Node: TRANSMITTERS56572 +Node: PRINT58204 +Node: TYPE58728 +Node: SHOW59940 +Node: RECEIVERS60206 +Node: READLIST60425 +Node: READWORD61118 +Node: READRAWLINE61906 +Node: READCHAR62505 +Node: READCHARS63126 +Node: SHELL63770 +Node: FILE ACCESS65200 +Node: SETPREFIX65626 +Node: PREFIX66334 +Node: OPENREAD66536 +Node: OPENWRITE66776 +Node: OPENAPPEND67834 +Node: OPENUPDATE68168 +Node: CLOSE68885 +Node: ALLOPEN69202 +Node: CLOSEALL69446 +Node: ERASEFILE69701 +Node: DRIBBLE69945 +Node: NODRIBBLE70471 +Node: SETREAD70679 +Node: SETWRITE71226 +Node: READER72706 +Node: WRITER72926 +Node: SETREADPOS73148 +Node: SETWRITEPOS73603 +Node: READPOS74057 +Node: WRITEPOS74241 +Node: EOFP74422 +Node: FILEP74652 +Node: TERMINAL ACCESS74899 +Node: KEYP75193 +Node: LINEP75896 +Node: CLEARTEXT76306 +Node: SETCURSOR76480 +Node: CURSOR76914 +Node: SETMARGINS77296 +Node: SETTEXTCOLOR78194 +Node: INCREASEFONT79419 +Node: SETTEXTSIZE79739 +Node: TEXTSIZE80395 +Node: SETFONT80739 +Node: FONT81173 +Node: ARITHMETIC81343 +Node: NUMERIC OPERATIONS81589 +Node: SUM81984 +Node: DIFFERENCE82197 +Node: MINUS82576 +Node: PRODUCT83038 +Node: QUOTIENT83260 +Node: REMAINDER83754 +Node: MODULO84026 +Node: INT84284 +Node: ROUND84593 +Node: SQRT84751 +Node: POWER84931 +Node: EXP85137 +Node: LOG1085293 +Node: LN85450 +Node: SIN85599 +Node: RADSIN85770 +Node: COS85951 +Node: RADCOS86128 +Node: ARCTAN86314 +Node: RADARCTAN86631 +Node: ISEQ87032 +Node: RSEQ87314 +Node: NUMERIC PREDICATES87644 +Node: LESSP87873 +Node: GREATERP88120 +Node: LESSEQUALP88374 +Node: GREATEREQUALP88645 +Node: RANDOM NUMBERS88914 +Node: RANDOM89101 +Node: RERANDOM89662 +Node: PRINT FORMATTING90224 +Node: FORM90400 +Node: BITWISE OPERATIONS91164 +Node: BITAND91377 +Node: BITOR91630 +Node: BITXOR91865 +Node: BITNOT92100 +Node: ASHIFT92304 +Node: LSHIFT92592 +Node: LOGICAL OPERATIONS92857 +Node: AND OR NOT92995 +Node: AND93137 +Node: OR93903 +Node: NOT94643 +Node: GRAPHICS94986 +Node: TURTLE MOTION97350 +Node: FORWARD97614 +Node: BACK97872 +Node: LEFT98155 +Node: RIGHT98383 +Node: SETPOS98609 +Node: SETXY98854 +Node: SETX99093 +Node: SETY99332 +Node: SETHEADING99572 +Node: HOME99853 +Node: ARC100089 +Node: TURTLE MOTION QUERIES100386 +Node: POS100634 +Node: XCOR100849 +Node: YCOR101030 +Node: HEADING101215 +Node: TOWARDS101393 +Node: SCRUNCH101679 +Node: TURTLE AND WINDOW CONTROL101992 +Node: SHOWTURTLE102420 +Node: HIDETURTLE102621 +Node: CLEAN102949 +Node: CLEARSCREEN103222 +Node: WRAP103511 +Node: WINDOW104056 +Node: FENCE104569 +Node: FILL104956 +Node: FILLED105307 +Node: LABEL105837 +Node: SETLABELHEIGHT106085 +Node: TEXTSCREEN106798 +Node: FULLSCREEN107202 +Node: SPLITSCREEN108002 +Node: SETSCRUNCH108404 +Node: REFRESH109438 +Node: NOREFRESH109807 +Node: TURTLE AND WINDOW QUERIES110302 +Node: SHOWNP110568 +Node: SCREENMODE110892 +Node: TURTLEMODE111140 +Node: LABELSIZE111375 +Node: PEN AND BACKGROUND CONTROL111925 +Node: PENDOWN112783 +Node: PENUP113005 +Node: PENPAINT113201 +Node: PENERASE113403 +Node: PENREVERSE113609 +Node: SETPENCOLOR113891 +Node: SETPALETTE114680 +Node: SETPENSIZE115219 +Node: SETPENPATTERN115618 +Node: SETPEN115922 +Node: SETBACKGROUND116297 +Node: PEN QUERIES116613 +Node: PENDOWNP116869 +Node: PENMODE117066 +Node: PENCOLOR117279 +Node: PALETTE117968 +Node: PENSIZE118264 +Node: PEN118631 +Node: BACKGROUND118904 +Node: SAVING AND LOADING PICTURES119151 +Node: SAVEPICT119379 +Node: LOADPICT119927 +Node: EPSPICT120331 +Node: MOUSE QUERIES120833 +Node: MOUSEPOS121024 +Node: CLICKPOS121569 +Node: BUTTONP121889 +Node: BUTTON122244 +Node: WORKSPACE MANAGEMENT122653 +Node: PROCEDURE DEFINITION122977 +Node: TO123225 +Node: DEFINE127106 +Node: TEXT128057 +Node: FULLTEXT128521 +Node: COPYDEF129318 +Node: VARIABLE DEFINITION129911 +Node: MAKE130162 +Node: NAME130558 +Node: LOCAL130769 +Node: LOCALMAKE131474 +Node: THING131776 +Node: GLOBAL132205 +Node: PROPERTY LISTS132857 +Node: PPROP133724 +Node: GPROP133962 +Node: REMPROP134217 +Node: PLIST134441 +Node: WORKSPACE PREDICATES134848 +Node: PROCEDUREP135100 +Node: PRIMITIVEP135339 +Node: DEFINEDP135699 +Node: NAMEP135957 +Node: PLISTP136154 +Node: WORKSPACE QUERIES136534 +Node: CONTENTS137104 +Node: BURIED137445 +Node: TRACED137642 +Node: STEPPED137838 +Node: PROCEDURES138042 +Node: PRIMITIVES138409 +Node: NAMES138762 +Node: PLISTS139034 +Node: NAMELIST139326 +Node: PLLIST139723 +Node: ARITY140132 +Node: NODES140498 +Node: WORKSPACE INSPECTION141398 +Node: PO141668 +Node: POALL141964 +Node: POPS142208 +Node: PONS142486 +Node: POPLS142753 +Node: PON143035 +Node: POPL143327 +Node: POT143619 +Node: POTS144006 +Node: WORKSPACE CONTROL144257 +Node: ERASE144861 +Node: ERALL145232 +Node: ERPS145486 +Node: ERNS145724 +Node: ERPLS145952 +Node: ERN146188 +Node: ERPL146496 +Node: BURY146806 +Node: BURYALL147350 +Node: BURYNAME147591 +Node: UNBURY147865 +Node: UNBURYALL148179 +Node: UNBURYNAME148394 +Node: BURIEDP148683 +Node: TRACE149190 +Node: UNTRACE149764 +Node: TRACEDP149950 +Node: STEP150453 +Node: UNSTEP151002 +Node: STEPPEDP151185 +Node: EDIT151695 +Node: EDITFILE153332 +Node: EDALL154186 +Node: EDPS154384 +Node: EDNS154594 +Node: EDPLS154794 +Node: EDN154998 +Node: EDPL155242 +Node: SAVE155482 +Node: SAVEL156194 +Node: LOAD156485 +Node: CSLSLOAD157254 +Node: HELP157560 +Node: SETEDITOR158438 +Node: SETLIBLOC158727 +Node: SETCSLSLOC159173 +Node: SETHELPLOC159511 +Node: SETTEMPLOC159856 +Node: GC160223 +Node: .SETSEGMENTSIZE161274 +Node: CONTROL STRUCTURES161897 +Node: CONTROL162094 +Node: RUN163580 +Node: RUNRESULT163863 +Node: REPEAT164358 +Node: FOREVER164550 +Node: REPCOUNT164849 +Node: IF165298 +Node: IFELSE166201 +Node: TEST166616 +Node: IFTRUE167015 +Node: IFFALSE167318 +Node: STOP167641 +Node: OUTPUT167928 +Node: CATCH168307 +Node: THROW169431 +Node: ERROR171121 +Node: PAUSE171645 +Node: CONTINUE172605 +Node: WAIT173160 +Node: BYE173497 +Node: dMAYBEOUTPUT173659 +Node: GOTO174607 +Node: TAG174922 +Node: IGNORE175193 +Node: back-quote175451 +Node: FOR176883 +Node: DOdWHILE178465 +Node: WHILE178913 +Node: DOdUNTIL179353 +Node: UNTIL179804 +Node: CASE180241 +Node: COND181171 +Node: TEMPLATE-BASED ITERATION182326 +Node: APPLY186868 +Node: INVOKE187344 +Node: FOREACH187677 +Node: MAP188792 +Node: MAPdSE190147 +Node: FILTER191444 +Node: FIND192604 +Node: REDUCE193607 +Node: CROSSMAP195128 +Ref: CROSSMAP-Footnote-1196187 +Node: CASCADE196225 +Node: CASCADEd2199078 +Node: TRANSFER199428 +Node: MACROS200343 +Node: dMACRO200525 +Node: dDEFMACRO205616 +Node: MACROP205738 +Node: MACROEXPAND205929 +Node: ERROR PROCESSING206479 +Node: ERROR CODES209303 +Node: SPECIAL VARIABLES211681 +Node: ALLOWGETSET212408 +Node: BUTTONACT212858 +Node: CASEIGNOREDP213853 +Node: COMMANDLINE214287 +Node: ERRACT214558 +Node: FULLPRINTP214881 +Node: KEYACT215471 +Node: LOADNOISILY216315 +Node: PRINTDEPTHLIMIT216645 +Node: PRINTWIDTHLIMIT216984 +Node: REDEFP217325 +Node: STARTUP217616 +Node: UNBURYONEDIT217921 +Node: USEALTERNATENAMES218358 +Node: LOGOVERSION218744 +Node: LOGOPLATFORM219006 +Node: INTERNATIONALIZATION219266 +Node: INDEX225933 End Tag Table Binary files old/ucblogo-6.2.3/docs/ucblogo.pdf and new/ucblogo-6.2.4/docs/ucblogo.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/docs/ucblogo.texi new/ucblogo-6.2.4/docs/ucblogo.texi --- old/ucblogo-6.2.3/docs/ucblogo.texi 2022-06-21 03:22:36.000000000 +0200 +++ new/ucblogo-6.2.4/docs/ucblogo.texi 2023-02-02 03:28:00.000000000 +0100 @@ -103,6 +103,11 @@ how to program in Logo, and merely presents the details of this new implementation. +UCBLogo was originally implemented in 1988 on VAX computers at +Berkeley, based on experience gained from implementing LSRHS Logo on +PDP-11 computers in the 1970s. Since then UCBLogo has been ported to +other computer systems and operating systems. + Read @cite{Computer Science Logo Style, Volume 1: Symbolic Computing} by Brian Harvey (MIT Press, 1997) for a tutorial on Logo programming with emphasis on symbolic computation. @@ -111,7 +116,7 @@ @display -Source file compatible among Unix, DOS, Windows, and Mac platforms. +Source file compatible among Unix, Windows, and Mac platforms. Random-access arrays. @@ -134,7 +139,8 @@ @end display Features @strong{not} found in Berkeley Logo include robotics, music, -animation, parallelism, and multimedia. For those, buy a commercial version. +animation, parallelism, and multimedia. For those, a different implementation +of Logo is needed. @node GETTER/SETTER VARIBLE SYNTAX, ENTERING AND LEAVING LOGO, OVERVIEW, INTRODUCTION @@ -3356,6 +3362,9 @@ @node LOGICAL OPERATIONS, GRAPHICS, ARITHMETIC, Top @chapter Logical Operations +@node AND OR NOT +@section And, Or, and Not + @menu * AND:: * OR:: @@ -3364,7 +3373,7 @@ @node AND, OR, LOGICAL OPERATIONS, LOGICAL OPERATIONS -@unnumberedsec and +@unnumberedsubsec and @cindex and @example diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/git.c new/ucblogo-6.2.4/git.c --- old/ucblogo-6.2.3/git.c 2023-01-17 04:14:13.000000000 +0100 +++ new/ucblogo-6.2.4/git.c 2023-03-28 03:52:42.000000000 +0200 @@ -1 +1 @@ -char* GIT = "(version_6.2.3)"; +char* GIT = "(version_6.2.4)"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/inno/ucblogo.iss new/ucblogo-6.2.4/inno/ucblogo.iss --- old/ucblogo-6.2.3/inno/ucblogo.iss 2023-01-17 04:02:35.000000000 +0100 +++ new/ucblogo-6.2.4/inno/ucblogo.iss 2023-03-28 03:38:41.000000000 +0200 @@ -3,13 +3,13 @@ [Setup] AppName=Berkeley Logo -AppVerName=Berkeley Logo 6.2.3 -AppVersion=6.2.3 +AppVerName=Berkeley Logo 6.2.4 +AppVersion=6.2.4 AppPublisher=University of California, Berkeley AppPublisherURL=http://www.cs.berkeley.edu/~bh/logo.html AppSupportURL=https://github.com/jrincayc/ucblogo-code/issues AppUpdatesURL=https://github.com/jrincayc/ucblogo-code/releases -OutputBaseFilename=ucblogo623setup +OutputBaseFilename=ucblogo624setup OutputDir=. DefaultDirName={autopf}\UCBLogo DefaultGroupName=Berkeley Logo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/makefile.msys new/ucblogo-6.2.4/makefile.msys --- old/ucblogo-6.2.3/makefile.msys 2023-01-17 04:02:35.000000000 +0100 +++ new/ucblogo-6.2.4/makefile.msys 2023-03-26 20:04:20.000000000 +0200 @@ -2,11 +2,11 @@ CFLAGS = -g -O -DHAVE_CONFIG_H -DHAVE_WX -DX_DISPLAY_MISSING -O0 CXX = g++ MINGW_BIN_DIR = /mingw/bin -WX_DIR = $(HOME)/wxWidgets-3.0.5 +WX_DIR = $(HOME)/wxWidgets-3.2.2.1 CXXFLAGS = -DHAVE_CONFIG_H -DHAVE_WX -I$(WX_DIR)/include -I$(WX_DIR)/lib/gcc_lib/mswu -D__WXDEBUG__ -D__WXMSW__ -mthreads LDFLAGS = -mwindows WX_LIB_LOC = $(WX_DIR)/lib/gcc_lib/ -LIBS = -lm -L/usr/local/lib -mwindows -mthreads -mwindows -Wl,--subsystem,windows -mwindows -L$(WX_LIB_LOC) -lwxmsw30u_richtext -lwxmsw30u_aui -lwxmsw30u_html -lwxmsw30u_adv -lwxmsw30u_core -lwxbase30u_net -lwxbase30u -lwxregexu -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32 +LIBS = -lm -L/usr/local/lib -mwindows -mthreads -mwindows -Wl,--subsystem,windows -mwindows -L$(WX_LIB_LOC) -lwxmsw32u_richtext -lwxmsw32u_aui -lwxmsw32u_html -lwxmsw32u_adv -lwxmsw32u_core -lwxbase32u_net -lwxbase32u -lwxregexu -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32 -lversion -lshlwapi -luxtheme -loleacc prefix = /c/ucblogo BINDIR = $(prefix)/bin LIBLOC = $(prefix)/lib/logo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/math.c new/ucblogo-6.2.4/math.c --- old/ucblogo-6.2.3/math.c 2021-12-30 14:52:15.000000000 +0100 +++ new/ucblogo-6.2.4/math.c 2023-01-27 03:21:10.000000000 +0100 @@ -72,36 +72,55 @@ return (dr + 1); } + +/* + Return a random long. If random() is available, + invoke that directly; otherwise, construct a random long + from two calls to rand(). +*/ +long random_internal() { +#ifdef HAVE_SRANDOM + return random(); +#else + return (((long)rand()) << 15) | rand(); +#endif +} + NODE *lrandom(NODE *arg) { NODE *val; - unsigned long r, base, range; + long r, base, range; - val = pos_int_arg(arg); + val = integer_arg(arg); if (NOT_THROWING) { - if (cdr(arg)==0) { /* (random 10) => (0, 10) */ + if (cdr(arg)==0) { /* (random 10) => [0, 10) */ base = 0; range = getint(val); - } else { /* (random 3 10) => (3, 8) */ + if (range < 1) { + err_logo(BAD_DATA_UNREC, arg); + } + } else { /* (random 3 10) => [3, 10] */ base = getint(val); - val = pos_int_arg(cdr(arg)); + val = integer_arg(cdr(arg)); if (NOT_THROWING) { /* (random 0 9) <=> (random 10) */ range = getint(val); - range = range + 1 - base; + if (range <= base) { + err_logo(BAD_DATA_UNREC, arg); + } else { + range = range + 1 - base; + } } } } + if (NOT_THROWING) { -#ifdef HAVE_SRANDOM - r = (range <= 0 ? 0 : random() % range); -#else - r = (((long)rand()) << 15) | rand(); - r = (range <= 0 ? 0 : r % range); -#endif + r = (range <= 0 ? 0 : random_internal() % range); r += base; val = newnode(INT); setint(val, (FIXNUM)r); return(val); - } else return(UNBOUND); + } else { + return(UNBOUND); + } } NODE *lrerandom(NODE *arg) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/tests/UnitTests-Random.lg new/ucblogo-6.2.4/tests/UnitTests-Random.lg --- old/ucblogo-6.2.3/tests/UnitTests-Random.lg 2021-12-30 14:52:15.000000000 +0100 +++ new/ucblogo-6.2.4/tests/UnitTests-Random.lg 2023-01-27 03:21:10.000000000 +0100 @@ -17,10 +17,13 @@ MAKE "Tests.Random [ ;list tests here Tests.Random.RandomNumMonadic + Tests.Random.RandomNumMonadicBadInput Tests.Random.RandomNumDyadic - ] + Tests.Random.RandomNumDyadicNegative + Tests.Random.RandomNumDyadicBadRange +] -;; Test Suite setup procedure, main entry +;; Test Suite setup procedure, main entry ;; point for all tests in this suite ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -47,9 +50,34 @@ OUTPUT (AND [(Random 1) = 0]) end +TO Tests.Random.RandomNumMonadicBadInput + CATCH "Error [ Random -10 ] + LOCALMAKE "err ERROR + + ; Message 4 is "%p doesn't like %s as input" + ; for unexpected negative integers + OUTPUT (AND [NOT EMPTY? :err] + [EQUAL? FIRST :err 4]) +END + to Tests.Random.RandomNumDyadic Make "Num3 (Random 3 5) OUTPUT (AND [GreaterEqual? :num3 3] [LessEqual? :num3 5]) end +TO Tests.Random.RandomNumDyadicNegative + Make "Num3 (Random -5 -3) + OUTPUT (AND [GreaterEqual? :num3 -5] + [LessEqual? :num3 -3]) +END + +TO Tests.Random.RandomNumDyadicBadRange + CATCH "Error [ (Random 10 5) ] + LOCALMAKE "err ERROR + + ; Message 4 is "%p doesn't like %s as input" + ; for parameter checks handled in procedure logic + OUTPUT (AND [NOT EMPTY? :err] + [EQUAL? FIRST :err 4]) +END diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/wrksp.c new/ucblogo-6.2.4/wrksp.c --- old/ucblogo-6.2.3/wrksp.c 2021-12-30 14:52:15.000000000 +0100 +++ new/ucblogo-6.2.4/wrksp.c 2023-02-08 04:25:32.000000000 +0100 @@ -25,6 +25,8 @@ #include <ctype.h> #ifdef WIN32 #include <windows.h> +#else +#include <sys/wait.h> #endif #define WANT_EVAL_REGS 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/wxTerminal.cpp new/ucblogo-6.2.4/wxTerminal.cpp --- old/ucblogo-6.2.3/wxTerminal.cpp 2023-01-17 04:02:35.000000000 +0100 +++ new/ucblogo-6.2.4/wxTerminal.cpp 2023-03-26 20:04:20.000000000 +0200 @@ -837,7 +837,7 @@ SetMinSize(wxSize(50, 50)); for(i = 0; i < 16; i++) - m_colorPens[i] = wxPen(m_colors[i], 1, wxSOLID); + m_colorPens[i] = wxPen(m_colors[i], 1, wxPENSTYLE_SOLID); m_printerFN = 0; m_printerName = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/wxTurtleGraphics.cpp new/ucblogo-6.2.4/wxTurtleGraphics.cpp --- old/ucblogo-6.2.3/wxTurtleGraphics.cpp 2022-06-28 03:15:46.000000000 +0200 +++ new/ucblogo-6.2.4/wxTurtleGraphics.cpp 2023-03-26 20:04:20.000000000 +0200 @@ -255,7 +255,7 @@ PrepareDC(*m_memDC); wxBrush myBrush(TurtleCanvas::colors[turtleFrame->back_ground - +SPECIAL_COLORS],wxSOLID); + +SPECIAL_COLORS], wxBRUSHSTYLE_SOLID); m_memDC->SelectObject(*m_bitmap); m_memDC->SetBackgroundMode( wxSOLID ); m_memDC->SetBackground( myBrush ); @@ -359,7 +359,7 @@ //move_to(screen_x_center + right_x, screen_y_center - right_y); //line_to(screen_x_center + left_x, screen_y_center - left_y); dc.SetPen(wxPen(colors[turtleFrame->xgr_pen.color+SPECIAL_COLORS], - turtleFrame->xgr_pen.pw, wxSOLID)); + turtleFrame->xgr_pen.pw, wxPENSTYLE_SOLID)); dc.DrawLine(screen_x_center + right_x, screen_y_center - right_y, screen_x_center + left_x, screen_y_center - left_y); //line_to(screen_x_center + top_x, screen_y_center - top_y); @@ -432,20 +432,20 @@ if (l->pm==PEN_ERASE) { myPen = wxPen(TurtleCanvas::colors[turtleFrame->back_ground+ SPECIAL_COLORS], - l->pw, wxSOLID); + l->pw, wxPENSTYLE_SOLID); } else if (l->pm==PEN_REVERSE) { unsigned int pr, pg, pb, br, bg, bb; get_palette(l->color, &pr, &pg, &pb); get_palette(turtleFrame->back_ground, &br, &bg, &bb); xorColor=wxColour((pr^br)/256, (pg^bg)/256, (pb^bb)/256); - myPen = wxPen(xorColor, l->pw, wxSOLID); + myPen = wxPen(xorColor, l->pw, wxPENSTYLE_SOLID); } else if(drawToPrinter && turtleFrame->back_ground==0 && l->color==7){ - myPen = wxPen( wxT("black"), l->pw, wxSOLID); + myPen = wxPen( wxT("black"), l->pw, wxPENSTYLE_SOLID); } else { myPen = wxPen(TurtleCanvas::colors[l->color+SPECIAL_COLORS], - l->pw, wxSOLID); + l->pw, wxPENSTYLE_SOLID); } dc->SetPen(myPen); @@ -549,7 +549,7 @@ void TurtleCanvas::realClearScreen(wxDC *dc) { wxBrush myBrush(TurtleCanvas::colors[turtleFrame->back_ground+ - SPECIAL_COLORS],wxSOLID); + SPECIAL_COLORS], wxBRUSHSTYLE_SOLID); if(drawToPrinter && turtleFrame->back_ground==0){ myBrush.SetColour(_T("white")); } @@ -598,13 +598,13 @@ if(drawToPrinter && turtleFrame->back_ground==0 && turtleFrame->xgr_pen.color==7){ - myPen = wxPen( wxT("black"), turtleFrame->xgr_pen.pw, wxSOLID); + myPen = wxPen( wxT("black"), turtleFrame->xgr_pen.pw, wxPENSTYLE_SOLID); } else { myPen = wxPen(colors[turtleFrame->xgr_pen.color+SPECIAL_COLORS], - turtleFrame->xgr_pen.pw, wxSOLID); + turtleFrame->xgr_pen.pw, wxPENSTYLE_SOLID); } dc->SetPen(myPen); - wxBrush brush(TurtleCanvas::colors[fillcolor+SPECIAL_COLORS], wxSOLID); + wxBrush brush(TurtleCanvas::colors[fillcolor+SPECIAL_COLORS], wxBRUSHSTYLE_SOLID); dc->SetBrush(brush); dc->DrawPolygon(count, wxpoints); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ucblogo-6.2.3/xgraphics.h new/ucblogo-6.2.4/xgraphics.h --- old/ucblogo-6.2.3/xgraphics.h 2019-11-02 01:33:37.000000000 +0100 +++ new/ucblogo-6.2.4/xgraphics.h 2023-02-08 02:44:36.000000000 +0100 @@ -129,6 +129,9 @@ GC pm; } pen_info; +void save_pen(pen_info *p); +void restore_pen(pen_info *p); + extern pen_info xgr_pen; #define p_info_x(p) (p.xpos) @@ -152,6 +155,7 @@ #define pen_down pen_mode=draw_gc #define button get_button() +int get_button(void); #define mouse_x get_mouse_x() #define mouse_y get_mouse_y()