No go.
I get the dialog, I’m able to enter strings, but nothing seems to be saved in the script itself.
You mean, keep the list of strings in an external file?
Would that make it simpler?
No go.
I get the dialog, I’m able to enter strings, but nothing seems to be saved in the script itself.
You mean, keep the list of strings in an external file?
Would that make it simpler?
Hello.
If you rerun the script and and the entered strings then shows up in the dialog box, then the values are stored in the script. But if you as much as hits the space key afterwards when/if the script is opened in the Script Editor, the entered data is lost.
The script is just fine, it won’t make it simpler, but it would give you the options of loading different, lists, and the ability to edit the script without loosing the data.
Best Regards
McUsr
Hello
I have updated the documentation to post #12 with the following facts:
The truth is that the modifier key combinations cmd, control and cmd + control are detected from the regular “vanlilla” Script Menu. Thanks to Yvan Koenig for making me retest it.
This is important as this can make your Script Menu Script run in four different states by leveraging the different combinations of modifier keys.
You could really use the caps lock in addition, giving you a total of 8 states, but caps lock was never meant to be used as modifier key in such a context and therefore I have omitted it.
Best Regards
McUsr
Hello.
Remember we talked about reading and writing lists from and to disk?
I’m happy to announce that it now does so.
The downside is that since you are using Tiger, you have to download and install Smile in order to use it.
As a matter of fact, as long as you get your hands on the Satimage.osax for Tiger and put it in the ScriptingAdditons folder. (Meaning you can ditch the rest of the installation.
Maybe you must adjust the path to checkModifierKeys, then you should have the possibility to edit lists, and read them in and write them out to disk.
When you switch to Leopard/SnowLeopard you will experience that your lists are fully compatible there, as they are saved with utf-8 encoding.
I hope you will try it, and reports “every aspect” of how it was running, speed etc.
Best Regards
McUsr
-- The Idea and implementation and any faults is totally mine. © McUsr 2010 and put in the Public Domain.
-- The usually guarrantees about nothing what so ever applies, use it at your own risk.
-- Read the documentation.
-- You are not allowed to post this code elsewhere, but may of course refer to the post at macscripter.net.
” macscripter.net/viewtopic.php?pid=130529#p130529
(*
TERMS OF USE.
This applies only to posting code, as long as you don't post it, you are welcome to do
whatever you want to do with it without any further permission.
Except for the following: Selling the code as is, or removing copyright statmentents and the embedded link in the code (without the http:// part) from the code.
You must also state what you eventually have done with the original source. This obviously doesn't matter if you distribure AppleScript as read only. I do not require you to embed any properties helding copyright notice for the code.
Credit for having contributed to your product would in all cases be nice!
If you use this code as part of script of yours you are of course welcome to post that code with my code in it here at macscripter.net. If you then wish to post your code elsewhere after having uploaded it to MacScripter.net please email me and ask for permission.
The ideal situation is however that you then refer to your code by a link to MacScripter.net
The sole reason for this, is that it is so much better for all of us to have a centralized codebase which are updated, than having to roam the net to find any usable snippets. Which some of us probabaly originated in the first hand.
I'm picky about this. If I find you to have published parts of my code on any other site without previous permission, I'll do what I can to have the site remove the code, ban you, and sue you under the jurisdiction of AGDER LAGMANNSRETT of Norway. Those are the terms you silently agree too by using this code.
The above paragraphs are also valid if you violate any of my terms.
If you use this or have advantage of this code in a professional setting, where professional setting means that you use this code to earn money by keeping yourself more productive. Or if you as an employee share the resulting script with other coworkers, enhancing the productivity of your company, then a modest donation to MacScripter.net would be appreciated.
*)
property MaintainCommands : {"Display List", "Add Item", "Delete Item", "Edit Item", "Capitalize", "Save List Internally and Quit", "Open List from Disk", "Save List to Disk"}
property SearchStr : {}
property scriptTitle : "Tex-Plus Capitalize"
property Major : 0
property FilePath : {}
property curFpath : {}
set Major to ((system attribute "sysv") mod 256 div 16) ” Thanks again to Nigel Garvey
if SearchStr is {} then
set FilePath to (smartPathParadigm's initiateSmartPath({}, (path to "docs" as text)))
-- populate it with factory settings ....
set SearchStr to {"I Like Dogs", "I Like Cats", "I Like Nothing", "I Like People"}
end if
if (do shell script "/usr/local/opt/checkModifierKeys control") is "1" or true then
tell me
activate
set madeChanges to false
repeat
set choice to (choose from list MaintainCommands with prompt "Words to Capitalize Maintainance ." OK button name {"Ok"})
if choice is false then
if madeChanges is true then
try
display dialog "Sure you want to cancel your editing -- changes will be lost" buttons {"Yes", "Save and Quit"} cancel button {"Yes"} default button {"Save and Quit"}
set choice to {"Save List and Quit"}
on error
error number -128
end try
else
error number -128
end if
end if
if choice is {"Capitalize"} then exit repeat
if choice is {"Save List and Quit"} then return 0
if choice is {"Open List from Disk"} then
set curFpath to FilePath's getPrevPath()
if madeChanges is true then
try
display dialog "Sure you want to cancel your editing -- changes will be lost" buttons {"Yes", "Save and Quit"} cancel button {"Yes"} default button {"Save and Quit"}
return "" -- save changes and quit
end try
end if
repeat
set aHfsFnameAsText to openFile(my scriptTitle, POSIX path of (FilePath's getPrevPath()), true)
-- what to do if it is null???
if aHfsFnameAsText is not null then
FilePath's updatePrevPath(aHfsFnameAsText)
-- open the file
set tmpList to {}
set tmpList to my utf8List's readUtf8IntoList(aHfsFnameAsText, my scriptTitle, SearchStr, false, my Major)
-- if the SearchStr is null, then either the list was empty or there were some other trouble.
if tmpList is null then -- major error error message have been shown.
tell me
return " " -- Saving any properties from the script. And exits the script.
end tell
else if tmpList is not false then
copy tmpList to SearchStr
set tmpList to missing value
exit repeat
end if
else
return "" -- Save properties on exit
end if
end repeat
else if choice is {"Save List to Disk"} then
set aHfsFnameAsText to SaveAs(my scriptTitle, POSIX path of (FilePath's getPrevPath()), true)
-- what to do if it is null???
if aHfsFnameAsText is not null then
FilePath's updatePrevPath(aHfsFnameAsText)
-- open the file
set tmpList to {}
set tmpList to my utf8List's writeUtf8FromList(aHfsFnameAsText, my scriptTitle, SearchStr, my Major)
-- if the SearchStr is null, then either the list was empty or there were some other trouble.
if tmpList is null then -- major error error message have been shown.
tell me
return " " -- Saving any properties from the script. And exits the script.
end tell
else
copy tmpList to SearchStr
set madeChanges to false
set tmpList to missing value
end if
end if
else
set SearchStr to my editList(choice, SearchStr, a reference to madeChanges)
end if
end repeat
end tell
end if
tell application "Tex-Edit Plus"
activate
repeat with srch from 1 to count of items in SearchStr
set thisPhrase to item srch of SearchStr
replace window 1 looking for thisPhrase replacing with thisPhrase without cases matching
end repeat
end tell
on editList(whatToDo, wordList, didChange)
local itemToDelete, theResult, dummy
if whatToDo is {"Delete Item"} then
repeat
tell me
activate
set itemToDelete to (choose from list wordList with prompt "Choose Item to DELETE" OK button name {"Ok"})
end tell
if itemToDelete is not false then
set ctr to 1
set theCount to count of wordList
repeat with anElm in wordList
if contents of anElm is equal to itemToDelete as text then
if ctr = 1 then
set wordList to items 2 thru -1 of wordList
else if ctr is not theCount then
set wordList to items 1 thru (ctr - 1) of wordList & items (ctr + 1) thru -1 of wordList
else
set wordList to items 1 thru -2 of wordList
end if
set contents of didChange to true
exit repeat
else
set ctr to ctr + 1
end if
end repeat
else
return wordList
end if
end repeat
else if whatToDo is {"Add Item"} then
repeat
tell me
activate
try
set theResult to text returned of (display dialog "Enter the item to ADD" default answer "" buttons {"Cancel", "Ok"})
on error
exit repeat
end try
end tell
if not theResult is "" then
set contents of didChange to true
set end of wordList to theResult
end if
end repeat
return wordList
else if whatToDo is {"Edit Item"} then
repeat
tell me
activate
set itemToEdit to (choose from list wordList with prompt "Choose Item to EDIT" OK button name {"Ok"})
end tell
if itemToEdit is not false then
set ctr to 1
set theCount to count of wordList
repeat with anElm in wordList
if contents of anElm is equal to itemToEdit as text then
exit repeat
else
set ctr to ctr + 1
end if
end repeat
try
tell me
activate
set theResult to text returned of (display dialog ("Edit " & itemToEdit as text) & " to something else " default answer itemToEdit as text buttons {"Cancel", "Ok"})
end tell
on error
exit repeat
end try
if not theResult is "" then
set contents of didChange to true
set item ctr of wordList to theResult
end if
else
return wordList
end if
end repeat
else if whatToDo is {"Display List"} then
tell me
activate
set dummy to (choose from list wordList with prompt "The list is currently holding:" OK button name {"Ok"})
end tell
return wordList
end if
end editList
script utf8List
-- The Idea and implementation and any faults is totally mine. © McUsr 2010 and put in the Public Domain.
-- The usually guarrantees about nothing what so ever applies, use it at your own risk.
-- Read the documentation.
-- You are not allowed to post this code elsewhere, but may of course refer to the post at macscripter.net.
-- macscripter.net/viewtopic.php?id=33529
on readUtf8IntoList(hfsTargetPathAsText, txtAppTitle, theListToReturn, blnAcceptEmpty, majorNumber)
-- PARAMETERS
-- hfsTargetPathAsText
-- : Hfs pathname of target file to write as text.
-- txtAppTitle
-- : A string or text with the title of the main script.
--theListToReturn
-- : the list to return
-- blnAcceptEmpty
-- : whether reading a list from an empty file is acceptable or not.
-- majorNumber
-- : major revision number of Mac Os X: Tiger yields 4 Leopard yields 5 and so on.
-- RETURNS: a list, false or null
-- if it returns false then something just mildy failed.
-- if it returns null, then there is serious problems.
local theFname, tedim, encodingResult, theRes, tempFileName, infFname, endLineCounter, theLimit, pxFilenNameAsText
script theError
property errval : 0
end script
script o
property l : {}
end script
script fileReader -- convoluted handler to read an utf8 file which is specialiced, -keeps it in its scope of useability.
on readutf8File(hfsTargetPathAsText, refvarStatus, aMajorNumber)
local fp, theContents
try
hfsTargetPathAsText as alias
on error e number n
set contents of refvarStatus to n -- error code for no file found.
return false
end try
try
set fp to open for access alias hfsTargetPathAsText
on error e number n
set contents of refvarStatus to n -- error code for bad access.
return false
end try
try
set theContents to read fp as «class utf8»
on error e number n
try
close access fp
on error e number n
set contents of refvarStatus to n
return false
end try
if not n = -39 then
set contents of refvarStatus to 4000 -- error code for no utf8
else
set contents of refvarStatus to -39
end if
return false
end try
try
close access fp
on error
set contents of refvarStatus to n -- error code for close error.
return false
end try
if aMajorNumber < 5 then --Satimage.osax 3.3.1 block BEGINS
try
set theContents to readtext alias hfsTargetPathAsText encoding "MACINTOSH" -- *untested*
on error e number n
set contents of refvarStatus to 6000 -- error for Satimage.osax not installed
end try
end if --Satimage.osax 3.3.1 block ENDS
return theContents -- as Unicode text
end readutf8File
end script
try
set tedim to text item delimiters -- we are checking that we are actually getting a file, just in case.
set text item delimiters to ":"
set theFname to text item -1 of (hfsTargetPathAsText as alias as text)
set text item delimiters to tedim
if theFname is "" then -- bundle / app or directory!
error number 5000
end if
-- we know we have something that can be a file
set theRes to fileReader's readutf8File(hfsTargetPathAsText, a reference to theError's errval, majorNumber) -- trying to read an utf8 file.
if theRes is false then -- guess what - it wasn't or it was som other misheap that just happened.
set pxFilenNameAsText to quoted form of POSIX path of hfsTargetPathAsText
if theError's errval is 4000 then -- it is an encoding error
try -- figuring out which encoding the file was encoded with.
set encodingResult to do shell script "/usr/bin/file " & pxFilenNameAsText
on error e number n partial result p from f to t
error e number n partial result p from f to t
end try
-- extracts the name of the encodding
set text item delimiters to " "
set theRes to text item 3 of encodingResult
set text item delimiters to tedim
if theRes is in {"UTF-16", "extended-ASCII"} then
set tempFileName to quoted form of POSIX path of ((path to temporary items as text) & theFname)
try
set tempFileName to do shell script "/usr/bin/mktemp -t readUtf8IntoList"
on error e number n partial result p from f to t
error e number n partial result p from f to t
end try
set infFname to pxFilenNameAsText
if theRes is "extended-ASCII" then
set theRes to "MACROMAN"
end if
try
do shell script "iconv -f " & theRes & " -t UTF-8 " & infFname & " >" & tempFileName
do shell script "mv -f " & tempFileName & " " & infFname
on error e number n partial result p from f to t
error e number n partial result p from f to t
end try
set theRes to fileReader's readutf8File(hfsTargetPathAsText, a reference to theError's errval, majorNumber)
if theRes is false then
error number theError's errval
end if
else
-- can't do anything about it
error number 3000
end if
else -- something fatal
error number theError's errval
end if
end if
set theListToReturn to every paragraph of theRes
if not theListToReturn is {} then -- shaves off any empty lines at the end of the file.
set endLineCounter to -1
set theLimit to ((count theListToReturn) * (-1))
set o's l to theListToReturn
if last item of o's l is "" then
repeat while item endLineCounter of o's l is ""
set item endLineCounter of o's l to missing value
if endLineCounter > theLimit then
set endLineCounter to endLineCounter - 1
else
exit repeat
end if
end repeat
end if
set theListToReturn to theListToReturn's strings
end if
if blnAcceptEmpty is false then
if (count of theListToReturn) is 0 then return false
end if
return theListToReturn
on error e number n
if n = -39 then -- empty file
if blnAcceptEmpty is false then
tell me to display alert (txtAppTitle & ":
The file : " & hfsTargetPathAsText & " is empty!")
return false
else
return {}
end if
else if n = 3000 then
tell me to display alert (txtAppTitle & ":
The file : " & hfsTargetPathAsText & " was not encoded with utf8, utf16 or MacRoman encoding.
I can't read in such a file into a list. Check it out in an editor.")
return false
else if n = 4000 then
tell me to display alert (txtAppTitle & ":
The file : " & hfsTargetPathAsText & " has some troubles in it please check it in an editor.")
return false
else if n = 5000 then
tell me to display alert (txtAppTitle & ":
" & hfsTargetPathAsText & " is not a file that can be read into a list. Choose a proper file.")
return false
else if n = 6000 then --Satimage.osax 3.3.1 block BEGINS
tell me to display alert (txtAppTitle & ":
You need to install Satimage.osax in order to run this script under Mac Os X Tiger and earlier: Download and install the right version of of Smile (3.3.1 Regular Editon
from: http://www.satimage.fr/software/en/downloads/downloads_old_smile.html
If not: just rip the 2 blocks marked Satimage.osx out of the handler: readUtf8IntoList() and its internal readutf8File() handler.")
return null --Satimage.osax 3.3.1 block ENDS
else -- fatal errors goes here!
tell me to display alert (txtAppTitle & ":
The file : " & hfsTargetPathAsText & " got the error :
" & e & number & " : " & n)
return null
end if
end try
end readUtf8IntoList
on writeUtf8FromList(hfsTargetPathAsText, txtAppTitle, theListToWrite, majorNumber)
-- PARAMETERS
-- hfsTargetPathAsText
-- : Hfs pathname of target file to write as text.
-- txtAppTitle
-- : A string or text with the title of the main script.
--theListToWrite
-- : the list to write
-- majorNumber
-- : major revision number of Mac Os X: Tiger yields 4 Leopard yields 5 and so on.
-- RETURNS: a list or null
-- if it returns null, then there is serious problems.
-- you must use the returned list for further work.
script o
property l : theListToWrite
end script
script theError
property errval : 0
end script
local theResult
script fileWriter
on writeutf8File(hfsTargetPathAsText, theList, refvarStatus)
local fRef, theText, astid
-- insert an ending empty element at the end if not present.
if item -1 of theList is not "" then set end of theList to "" -- for ending linefeed.
set astid to text item delimiters
set text item delimiters to (run script "\"\\n\"") -- linefeed Thanks! to Nigel Garvey
set theText to "" & theList -- internal representation Tiger/Leopard
set text item delimiters to astid
try
set fRef to (open for access file hfsTargetPathAsText with write permission)
on error e number n
set contents of item -1 of theList to missing value -- removes empty item
set contents of refvarStatus to n -- some errorcode
return false
end try
try
set eof fRef to 0
write «data rdatEFBBBF» to fRef -- BOM Thanks! to Nigel Garvey
write theText to fRef as «class utf8»
on error e number n
set contents of item -1 of theList to missing value -- removes empty item
set contents of refvarStatus to n -- some errorcode
try
close access fRef
on error e number n
close access fRef
end try
return false
end try
try
close access fRef
on error e number n
set contents of item -1 of theList to missing value -- removes empty item
set contents of refvarStatus to n -- some errorcode
close access fRef
return false
end try
set text item delimiters to astid
set item -1 of theList to missing value -- removes empty item
return true
end writeutf8File
end script
if majorNumber < 4 then
tell me
activate
display alert (txtAppTitle & ":
Versions of Mac Os X earlier than 10.4.0 is unsupported: your version is 10." & Major & "xx")
end tell
return null
end if
set theResult to fileWriter's writeutf8File(hfsTargetPathAsText, o's l, a reference to theError's errval)
if theResult is false then
-- should have localization here!
tell me
activate
display alert (txtAppTitle & ":
The file : " & hfsTargetPathAsText & " got the error number : " & theError's errval)
end tell
return null
end if
return o's l's strings
end writeUtf8FromList
end script
-- The Idea and implementation and any faults is totally mine. © McUsr 2010 and put in the Public Domain.
-- The usually guarrantees about nothing what so ever applies, use it at your own risk.
-- Read the documentation.
-- You are not allowed to post this code elsewhere, but may of course refer to the post at macscripter.net.
-- macscripter.net/viewtopic.php?id=33546
-- its a generic handler for saving a file which can ask if your really want to abort, the save operation or just returns from the handler otherwise.
-- PARAMETERS:
-- txtTitle
-- The title you want to show up in the SaveAs dialog.
-- pxStartPathAsText
-- The initial Posix path you want to show up.
-- blnAskToConfirm
-- if you want the user to confirm the cancel, the dialog will only show up once, next time straight out.
-- RETURNS
-- The hfs Path as text upon sucess, null otherwise.
on SaveAs(txtTitle, pxStartPathAsText, blnAskToConfirm)
local new_path, blnUserQuit, iConfirmTimes
set blnUserQuit to false
set iConfirmTimes to 0
tell me
activate
repeat while true
tell application "System Events"
tell application process "Finder"
activate
try
set new_path to (choose file name with prompt txtTitle default location (POSIX file pxStartPathAsText))
exit repeat
on error e number n
-- display dialog "err: " & e & " : " & n
if n is -128 then
set iConfirmTimes to iConfirmTimes + 1
try
if blnAskToConfirm is true and iConfirmTimes < 2 then
set theButton to the button returned of (display dialog "Do you want to try again?" with title txtTitle with icon 2)
-- falls through the end of the repeat loop and repeat ourselves.
else -- not talking back
set blnUserQuit to true
exit repeat
end if
on error -- user hit "cancel" or equiv in the dialog.
set blnUserQuit to true
exit repeat
end try
end if
end try
end tell
end tell
end repeat
end tell
if not blnUserQuit then
try
set fp to open for access new_path with write permission
on error e number n
display alert (txtTitle & " an error occured: " & e & " : " & n)
return null
end try
try
close access fp
on error e number n
try
close access fp
on error
display alert (txtTitle & " an error occured: " & e & " : " & n)
return null
end try
end try
set new_path to new_path as alias as Unicode text
return new_path
else
return null
end if
end SaveAs
-- its a generic handler for opening a file which can ask if your really want to abort the open operation or just returns from the handler otherwise.
-- PARAMETERS:
-- txtTitle
-- The title you want to show up in the SaveAs dialog.
-- pxStartPathAsText
-- The initial Posix path you want to show up.
-- blnAskToConfirm
-- if you want the user to confirm the cancel, the dialog will only show up once, next time straight out.
-- RETURNS
-- The hfs Path as text upon sucess, null otherwise.
-- openFile("Open a File", "/", true)
on openFile(txtTitle, pxStartPathAsText, blnAskToConfirm)
local new_path, blnUserQuit, iConfirmTimes
set blnUserQuit to false
set iConfirmTimes to 0
tell me
activate
repeat while true
tell application "System Events"
tell application process "Finder"
activate
try
set new_path to (choose file with prompt txtTitle default location (POSIX file pxStartPathAsText) of type {"TEXT"})
exit repeat
on error e number n
-- display dialog "err: " & e & " : " & n
if n is -128 then
set iConfirmTimes to iConfirmTimes + 1
try
if blnAskToConfirm is true and iConfirmTimes < 2 then
set theButton to the button returned of (display dialog "Do you want to try again?" with title txtTitle with icon 2)
-- falls through the end of the repeat loop and repeat ourselves.
else -- not talking back
set blnUserQuit to true
exit repeat
end if
on error -- user hit "cancel" or equiv in the dialog.
set blnUserQuit to true
exit repeat
end try
end if
end try
end tell
end tell
end repeat
end tell
if not blnUserQuit then
return new_path as Unicode text
else
return null
end if
end openFile
-- See macscripter.net/viewtopic.php?pid=129895#p129895 For Documentation
-- © McUsr 2010 and put in the public domain.
script smartPathParadigm
on makeSmartPath(hfsInitialPathAsText)
script o
property initialPath : "" & hfsInitialPathAsText -- doesn't harm
property prevPath : {}
on getPrevPath()
if prevPath is {} then
initialPath
else
prevPath
end if
end getPrevPath
on updatePrevPath(hfsReturnedPathAsText)
local newPath
set newPath to smartPathParadigm's getPathToParentFolder(hfsReturnedPathAsText)
if prevPath is not newPath then
set prevPath to newPath
end if
end updatePrevPath
on withinRealm(hfsFilePathAsText)
if hfsFilePathAsText contains initialPath then
return true
else
return false
end if
end withinRealm
on setPrevPath(hfsNewPrevPathAsText)
set hfsNewPrevPathAsText to "" & hfsNewPrevPathAsText -- doesn't harm
set prevPath to hfsNewPrevPathAsText
end setPrevPath
end script
o
end makeSmartPath
on initiateSmartPath(scoForPath, hfsIntialPathAsText)
script o
property pathobj : scoForPath
end script
if scoForPath is {} then
set o's pathobj to smartPathParadigm's makeSmartPath(hfsIntialPathAsText)
end if
o's pathobj
end initiateSmartPath
on getPathToParentFolder(hfsFileOrFolderPathAsText)
local tids, theFile
set hfsFileOrFolderPathAsText to "" & hfsFileOrFolderPathAsText -- doesn't harm.
set tids to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
if character (length of hfsFileOrFolderPathAsText) of hfsFileOrFolderPathAsText is ":" then
set hfsFileOrFolderPathAsText to text items 1 thru -3 of hfsFileOrFolderPathAsText
else
set hfsFileOrFolderPathAsText to text items 1 thru -2 of hfsFileOrFolderPathAsText
end if
set hfsFileOrFolderPathAsText to "" & hfsFileOrFolderPathAsText -- necessary here.
set AppleScript's text item delimiters to tids
return hfsFileOrFolderPathAsText
end getPathToParentFolder
end script
I haven’t had time to look much at this script, as it’s very long and there seems to be more documentation about conditions of use than about what it actually does and why. (The normal etiquette is that any code posted here is public domain, but the original author(s) of any filched code should be credited.)
One thing ” two things ” I did notice:
property Major : ((system attribute "sysv") mod 4096 div 16)
Compiling this into the script rather than setting it at run time means that the user will need to recompile the script if he/she upgrades to a later major version of Mac OS.
It should correctly be:
((system attribute "sysv") mod 256 div 16)
Presumably, saving the list as UTF-8 is so that it can be viewed and edited in a text editor. It could just be stored as an AppleScript list otherwise.
Hello Nigel.
Thanks for both your corrections and your thoughts.
I will change the code to run correctly without having to recompile the script, as a matter of fact I should have thought of that as well. -I’ll change it.
About UtF-8 as file encoding of choice:
I also surmise that it may at some time be more convenient to use an editor to edit lists, than to do it by the list maintainer module especially when the lists are large. Therefore I found it convenient to add the read/write UTF-8 as core functionality. It is especially useful for people who use accented characters which they otherwise would have to convert to UTF-8 manually before displaying it as UTF-8 without getting distorted characters.
Regarding the Copyright notice
[code]-- The Idea and implementation and any faults is totally mine. © McUsr 2010 and put in the Public Domain.
– The usually guarrantees about nothing what so ever applies, use it at your own risk.
– Read the documentation.
– You are not allowed to post this code elsewhere, but may of course refer to the post at macscripter.net.
” macscripter.net/viewtopic.php?pid=130529#p130529
(*
TERMS OF USE.
This applies only to posting code, as long as you don’t post it, you are welcome to do
whatever you want to do with it without any further permission.
Except for the following: Selling the code as is, or removing copyright statmentents and the embedded link in the code (without the http:// part) from the code.
You must also state what you eventually have done with the original source. This obviously doesn’t matter if you distribute AppleScript as read only. I do not require you to embed any properties helding copyright notice for the code.
Credit for having contributed to your product would in all cases be nice!
If you use this code as part of script of yours you are of course welcome to post that code with my code in it here at macscripter.net. If you then wish to post your code elsewhere after having uploaded it to MacScripter.net please email me and ask for permission.
The ideal situation is however that you then refer to your code by a link to MacScripter.net
The sole reason for this, is that it is so much better for all of us to have a centralized codebase which are updated, than having to roam the net to find any usable snippets. Which some of us probabaly originated in the first hand.
I’m picky about this. If I find you to have published parts of my code on any other site without previous permission, I’ll do what I can to have the site remove the code, ban you, and sue you under the jurisdiction of AGDER LAGMANNSRETT of Norway. Those are the terms you silently agree too by using this code.
The above paragraphs are also valid if you violate any of my terms.
If you use this or have advantage of this code in a professional setting, where professional setting means that you use this code to earn money by keeping yourself more productive. Or if you as an employee share the resulting script with other coworkers, enhancing the productivity of your company, then a modest donation to MacScripter.net would be appreciated.
*)[/code]
The copyright notice is really a Do not post it Elsewhere notice if you read it carefully. It is 100% public domain, and you may use or abuse it as you wish, - and I’ll add a long list of contributors too! Because you have been many! The reason for the notice is that as I have stated, I don’t want to feed up any other code base, like for instance if somebody started a user group somewhere and looted the code, or added say 30 lines of their own and then posted all of this somewhere else. I feel that it then would be more natural to post the new and I’m certain marvelous code here. I think that is fair. There are nothing in that statement which prevents you to share this code with anybody or incorporate it, there is only restrictions about displaying it or storing it on websites. If you need to post a part of it to somebody on a mailing list, then nobody hinders you to do so. But posting say what is posted as a whole unit here, is regarded as violation of terms if posted publicly. -It is much easier to just post the link anyway.
Specifically: If haas at AppleMods wanted to use something of this for distribution, I would have no problem with it as long as the reference to the post at MacScripter.net is intact. I would neither have problems if say Doug from DougScripts.com wanted to use this in some of the scripts he produce. it is really the it is really the exposure of the code I’m after. -You don’t use this and then add some lines of your own, and then post it at whatever site you want as your new and ingenious workflow. Then you should post your new and ingenious workflow here, and refer to the link here in the post there.
If you feel that this is silly or unfair in some way, then please let me know.
I also hope that you find applications for the code, and that it does its job properly.
Greetings from soon to be cool enough Norway