john13@garfield.UUCP (John Russell) (04/10/88)
Here is a preferences-setting program. I don't know how well it will function under 1.[34] but I guess it should if the size of the Preferences structure doesn't increase. Just a thought: why not add to 1.[34] the following -- #define HOWBIGISPREFS 1 #define HOWBIGISIBASE 2 ... #define HOWBIGISASCREEN 1000 Setprefs( &myprefs , system_sizeof(HOWBIGISPREFS)); /* note I didn't check actual calling syntax */ So you could increase the size of system related structures and not have to worry about the old-values being hardcoded into programs. Anyway... --- Hand me the scalpel Dr. Finkel :-) --- #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # prefs.doc # prefs.uu # This archive created: Sat Apr 9 15:06:46 1988 export PATH; PATH=/bin:$PATH echo shar: extracting "'prefs.doc'" '(3153 characters)' if test -f 'prefs.doc' then echo shar: will not over-write existing file "'prefs.doc'" else sed 's/^ X//' << \EoF > 'prefs.doc' XASetPrefs - Assembly language SetPrefs program. XVersion - 1.00 XProgrammer - Arshiz Zarrabi XCopyright - Copyright (c) by Arshiz Zarrabi April, 1987. X X X XDistribution: X XThis program is placed in public domain, free of any charges. If you Xintend to distribute it I request that you observe the following: X a) Original code and document remain intact. X b) No charges except for reasonable media costs be made. X Thank you. X X XDocumentation: X X XPreferences creates a file called devs:system-configuration every time Xyou ask it to 'save'. It would be nice to be able to create a bunch of Xthese 'system-configuration' files and have them available by different Xnames to use to dynamically reset the 'system-configuration'. X XASetPrefs is a utilitiy to help you do that. Here is how to do it: X X 1. put ASetPrefs somewhere in your path (or as many folks say, in X your c directory). I usually keep programs like this in a dir- X ctory called 'utilities' which is added to path at startup. X 2. assign devs: ram: X 3. assign sys: ram: X 4. RUN preferences X 5. create and save new settings. It's called system-configuration X in ram: now X 6. click to previous cli X 7. rename ram:system-configuration to ram:some.name e.g. if your X setting is, say, a gray background and green forground you may X want to call it Gray-Green etc. X 8. click back to preferences program and repeat steps 5 through 7 X until you're happy. Don't feel too bad about creating a bunch X of them, they are only 232 bytes each. X 9. end preferences; reassign devs: and sys: back to original X 10. copy new prefs files from ram: to where ever you wish to keep X them (such as devs:) X Xnow you can use ASetPrefs to use any of those 'other' preferences to Xreset your preferences structure system-wide. X X X XUsage: X ASetPrefs [filespec] X X filespec can be any valid AmigaDos file specification. Example: X ASetPrefs devs:Gray-Green X ASetPrefs df1:sys-configs/sexy-pointer X ASetPrefs ; this defaults to devs:system-configuration X X XNote1: These files do not have to reside in devs: However you always X need one file called system-configuration in devs: X XNote2: Since ASetPrefs is writtem in assembly language it's only 884 X bytes. That means fast load and execution time. If you use it X in a script file/startup-sequence after a RUNed program it may X get executed and finished before that program while you intend- X ed for it to run after that program. X XNote3: Don't let the size of ASetPrefs fool you. There have been no X compromises made to get a smaller code. X XNote4: If an application is running at the time you set new preference X but it's not 'listening' for NEWPREFS events, or decides not to X react to such events, naturally it won't be affected. X X XI can be reached at the following addresse: X X Arshiz Zarrabi X P.O Box 1098 or CIS: (72017,714) or PLINK: (OBS938) X LA, CA 90213 X X EoF if test 3153 -ne "`wc -c < 'prefs.doc'`" then echo shar: error transmitting "'prefs.doc'" '(should have been 3153 characters)' fi fi # end of overwriting check echo shar: extracting "'prefs.uu'" '(1277 characters)' if test -f 'prefs.uu' then echo shar: will not over-write existing file "'prefs.uu'" else sed 's/^ X//' << \EoF > 'prefs.uu' X Xbegin 644 asetprefs XM```#\P`````````#``````````(```!V````/0````,```/I````=F$``!9AK XM``!$80``CF$``.9A``$>80`!C@Q```%B"$OY````'F`B#$```F(*#!``/V8$$ XM?@A@$BI(0?``_PP@`"!6R/_Z4DA"$$YU+'@`!")\`````'``3J[^:"/`````G XM`,&.3J[_Q"/`````"&<``-8,AP````AG``#,+'@`!'X!(GP````,<`!.KOYHG XM(\`````$9P``L$YU+'@`!"`\```!!"P`<@!^`YG,3J[_.BA`2H!G``"0(@TD_ XM//____XL>0````!^!$ZN_ZPH`&<``'8B!"0,3J[_FDJ`9P``:'X'#*P```#HS XM`'QF``!:(@1.KO^F3G4B#20\```#[2QY`````'X$3J[_XB@`9P``."($)`PV< XM/`#H?@5.KO_6*@`B!"QY`````$ZN_]Q*A6<63G4L>0````0@3#`\`.AR`4ZNK XM_KQ.=0Q'``AF'!(Y````OT?Y````UN-/5$=30=,;4<___'X(8")31R`\````B XM%L[`1?D````X1?)P`$?Y````UE-`%MI1R/_\+'D`````(CD````()#P```#2H XM)CP````?3J[_T"QX``0,AP````AG&KG\`````&<(R4D@!DZN_RXB>0````1." XMKOYB+'D`````0H%.KO]P``````/L````"`````$```&6```!?````7(```%2S XM```!3````((```!0````(`````L````"```!S````<(```&0```!B@```3(`K XM``$B````_@```,````".````:````%P````````#\@```^H````]9&]S+FQI; XM8G)A<GD`:6YT=6ET:6]N+FQI8G)A<GD`9&5V<SIS>7-T96TM8V]N9FEG=7)AB XM=&EO;@!'970@9FEL92!H86YD;&4@9F%I;&5D3W!E;B!,:6)R87)Y(&9A:6QE3 XM9"`@($%L;&]C365M(&9A:6QE9"`@("`@("!&:6QE(&YO="!F;W5N9"`@("`@` XM("`@3W!E;B!F:6QE(&9A:6QE9"`@("`@(%)E860@9FEL92!F86EL960@("`@X XM("!.;W0@82!0<F5F97)E;F-E<R!F:6QE&ULR;2,Z&P$!(C,T*2H[`3LB,S,B0 X=(RH@("`;6S!M"@```````_(```/K`````P```_(Z? X`` Xend Xsize 884 EoF if test 1277 -ne "`wc -c < 'prefs.uu'`" then echo shar: error transmitting "'prefs.uu'" '(should have been 1277 characters)' fi fi # end of overwriting check # End of shell archive exit 0