Archive of articles classified as' "Finder"

Back home

Preferences eines Programms sichern/wiederherstellen

17/09/2011
Die eigentliche Idee stammt von hier und dabei herausgekommen ist dieses Skript (Vor dem Ausführen als AppleScript Bundle oder Programm speichern, da es sonst zu Schwierigkeiten mit den Speicherpfad kommt.):

--17.09.2011 hubionmac.com

-- Prefs-Save-Restore_v1: Saves and Restores an app's preferences, Library Folder, Application Support Folder using a tar archive

-- inspired by http://macscripter.net/viewtopic.php?id=37052


-- STORE THIS AS AN APPLICATION OR SCRIPT BUNDLE!!!!

global store_here

--first get the folder where all the saved prefs should be saved….

try

set store_here to quoted form of POSIX path of (path to resource "saved_prefs")

on error msg

do shell script "mkdir " & quoted form of POSIX path of (path to me as alias) & "Contents/Resources/saved_prefs"

--NOT USING PATH TO RESSOURCE BECAUSE IT DOESN'T SEEM TO UPDATE THAT FAST….

set store_here to quoted form of POSIX path of (path to me as alias) & "Contents/Resources/saved_prefs"

end try

-- WHAT TO DO?

set theaction to button returned of (display dialog "Do you want to restore or backup an app Prefs?" buttons {"Restore", "Backup", "Cancel"} default button {"Restore"})

if theaction = "Backup" then

make_backup(choose file of type "app")

else if theaction = "Restore" then

make_restore()

end if


on make_restore()

set thebackups to every paragraph of (do shell script "ls " & store_here)

if thebackups = {} then

error "There are no backups that can be used to restore…."

else

set t to (choose from list thebackups with prompt "Choose one or more backup(s):" default items (item 1 of thebackups) with multiple selections allowed)

if tfalse then

repeat with m in t

do shell script "cd ~/Library; tar xf " & store_here & quoted form of m

my display_message("Restored " & m & ".", 2)

end repeat

end if

end if

end make_restore

on make_backup(this)

set search_folders to {"./", "'Application Support'/", "Preferences/"}

tell application "Finder"

--GET THE IMPORTANT INFOS OUT OF INFO.PLIST FOR GETTING THE NAMES OF PLIST AND OTHER FILES AND FOLDERS INSIDE THE LIBARAY

set this_info_plist to quoted form of POSIX path of (item "Info.plist" of folder "Contents" of this as alias)

set this_id to do shell script "defaults read " & this_info_plist & " CFBundleIdentifier"

set this_bundleName to do shell script "defaults read " & this_info_plist & " CFBundleName"

--THIS LOOKS COMPLICATED BUT IS FASTER THAN USING THE FINDER

--AND IS IS THAT COMPLICATED BECAUSE OF THE OUTPUT OF THE FIND COMMAND THAT NEEDS TO BE QUOTED ;-/

set this_app_files to {}

repeat with search_folder in search_folders

--SEARCH THE SEARCH_FOLDER FOR FILES AND FOLDERS BUT ONLY ON THE FIRST LEVEL!!!

set tmp to every paragraph of (do shell script "cd ~/Library/" & search_folder & "; find . -maxdepth 1 -name '" & this_id & "*' -exec basename {} \\;")

repeat with t in tmp

set this_app_files to this_app_files & ((search_folder & quoted form of t) as text)

end repeat

set tmp to every paragraph of (do shell script "cd ~/Library/" & search_folder & "; find . -maxdepth 1 -name '" & this_bundleName & "' -exec basename {} \\;")

repeat with t in tmp

set this_app_files to this_app_files & ((search_folder & quoted form of t) as text)

end repeat

end repeat

set old_delimiters to AppleScript's text item delimiters

set AppleScript's text item delimiters to " "

set this_app_files to this_app_files as text

set AppleScript's text item delimiters to old_delimiters

--NOW MAKE A TAR FILE OF ALL THESE IN THIS APPS RESSOURCE FOLDER

do shell script "cd ~/Library/; tar -czf " & store_here & this_id & ".tar.gz " & this_app_files

my display_message("Stored " & this_id & ".", 2)

end tell

end make_backup



on display_message(msgTXT, msgTimeout)

tell application "System Events"

set isRunning to ¬

(count of (every process whose name is "GrowlHelperApp")) > 0

end tell

if isRunning = true then

tell application "GrowlHelperApp"

-- Make a list of all the notification types 

-- that this script will ever send:

set the allNotificationsList to ¬

{"Status"}

-- Make a list of the notifications 

-- that will be enabled by default.      

-- Those not enabled by default can be enabled later 

-- in the 'Applications' tab of the growl prefpane.

set the enabledNotificationsList to ¬

{"Status"}

-- Register our script with growl.

-- You can optionally (as here) set a default icon 

-- for this script's notifications.

register as application ¬

"Finder" all notifications allNotificationsList ¬

default notifications enabledNotificationsList ¬

icon of application "Finder"

-- Send a Notification...

notify with name ¬

"Status" title ¬

"Prefs-Safe-Restore" description ¬

msgTXT application name ¬

"Finder"

return true

end tell

else

activate

display dialog msgTXT giving up after msgTimeout

end if

end display_message

No Comments

Umlaute und Sonderzeichen in Datei- und Ordnernamen ersetzen

2/08/2011
Das war der Auslöser und es hier meine Lösung dazu:

-- hubionmac.com 02.08.2011

-- ersetzt in einem Verzeichnis und allen Unterordnern Sonderzeichen (Umlaute) in Datei und Ordnernamen

-- es können so nur einzelne Sonderzeichen gegen Zeichenketten ersetzt werden ä ->ae

set replacements_list to {{"Ä", "Ae"}, {"ä", "ae"}, {"Ö", "Oe"}, {"ö", "oe"}, {"Ü", "ue"}, {"ü", "ue"}, {"/", "_"}}


set thefolder to choose folder

set thefiles_x to do shell script "find " & quoted form of (POSIX path of thefolder) & " -not -name \".*\""

-- Baut sich eine Liste aus Aliasen, damit die Pfadangaben auch noch funktionieren,

--wenn mal ein übergeordnetes Verzeichnis bereits vom Skript umbenannt wurde

set thefiles to {}

repeat with thefile in every paragraph of thefiles_x

set thefiles to thefiles & ((POSIX file thefile) as alias)

end repeat


repeat with thefile in thefiles

tell application "Finder"

set thefilename to name of thefile

set old_filename to thefilename

end tell

repeat with replacement in replacements_list

set badchar to ASCII number of ((item 1 of replacement) as text)

set thefilename_ascii to asciilist(thefilename)

if badchar is in thefilename_ascii then

set thefilename to my replace_string(thefilename, ASCII character badchar, (item 2 of replacement) as text)

end if

end repeat

if old_filenamethefilename then

tell application "Finder"

set name of thefile to thefilename

end tell

end if

end repeat


on replace_string(itemname, searchstring, replacestring)

set old_delimiter to AppleScript's text item delimiters

set AppleScript's text item delimiters to searchstring

set the item_list to every text item of itemname

set AppleScript's text item delimiters to replacestring

set this_text to the item_list as string

set AppleScript's text item delimiters to old_delimiter

return this_text

end replace_string


on asciilist(thestring)

set myoutput to {}

repeat with a in every character of thestring

set myoutput to myoutput & (ASCII number of a)

end repeat

return myoutput

end asciilist

1 Comment

Kennwort-Abfrage nach Standby switchen

4/02/2011
Manchmal möchte man eine Kennwort-Abfrage nach dem Ruhezustand und manchmal eben nicht. Um das schnell umzuschalten:

-- hubionmac.com 04.02.2011

-- script that toggles "require password after standby / screensaver"-checkbox 

-- Status is reported via dialog or growl if installed

-- links: http://hintsforums.macworld.com/showthread.php?p=591189

-- http://www.macosxautomation.com/applescript/features/system-prefs.html

-- http://growl.info/documentation/applescript-support.php


tell application "System Events"

tell security preferences

if (get require password to wake) = false then

set require password to wake to true

my display_message("Require password switched on", 2)

else

set require password to wake to false

my display_message("Require password switched off", 2)

end if

end tell

end tell


on display_message(msgTXT, msgTimeout)

tell application "System Events"

set isRunning to ¬

(count of (every process whose name is "GrowlHelperApp")) > 0

end tell

if isRunning = true then

tell application "GrowlHelperApp"

-- Make a list of all the notification types 

-- that this script will ever send:

set the allNotificationsList to ¬

{"Status"}

-- Make a list of the notifications 

-- that will be enabled by default.      

-- Those not enabled by default can be enabled later 

-- in the 'Applications' tab of the growl prefpane.

set the enabledNotificationsList to ¬

{"Status"}

-- Register our script with growl.

-- You can optionally (as here) set a default icon 

-- for this script's notifications.

register as application ¬

"Finder" all notifications allNotificationsList ¬

default notifications enabledNotificationsList ¬

icon of application "Finder"

-- Send a Notification...

notify with name ¬

"Status" title ¬

"Status" description ¬

msgTXT application name ¬

"Finder"

return true

end tell

else

activate

display dialog msgTXT giving up after msgTimeout

end if

end display_message

Was ich eigentlich am besten daran finde ist die display_message-Routine die ggf. growl nutzt. Ich würde nämlich ehr das hier nutzen...

Nice2Know

Sollte man mal über das Terminal die Einstellungen ändern wollen, sind die anderen Einstellungen in einer XML-Datein unter /etc/authorizationabgespeichert.... Bei Änderungen ist ein vorheriger Backup ECHT RATSAM!
No Comments

Finder: Sortieren nach “Hinzugefügt am”

10/11/2010
Ich finde die Fächer-Darstellung beim Download-Ordner recht praktisch, gerade weil man dort Dateien nach dem Datum an dem sie zum Ordner hinzugefügt wurden sortieren kann. Leider fehlt dieses Information in der normalen Finder-Ansicht und lädt man sich eine Datei via FTP oder über andere Wege, stimmt das Änderungsdatum nicht zwingend mit dem Download-Datum überein. Bei macworld.com gibt es ein Beispiel für eine Ordneraktion,
die über den Automator erstellt wird. Dort wird jede hinzugefügt Datei einfach ange-touch-t und somit das Änderungsdatum auf das aktuelle Datum geändert. Eigentlich recht elegant dachte ich, nur halt eben nur so lange bis sich das Änderungsdatum mal ändert. Aus diesem Grund habe ich mir das Kommentar-Feld ausgesucht, in dem das Datum einfach als Text eingetragen wird, so bleibt das Hinzugefügt-am-datum auch nach einer Änderung der Datei erhalten.... Bis Apple das endlich mal als Feature mit einführt.
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

on adding folder items to this_folder after receiving added_items

repeat with added_item in added_items

tell application "Finder"

set timestamp to do shell script "date '+%Y-%m-%d@%H:%M:%S'"

if (comment of added_item) as text = "" then

set comment of added_item to timestamp

end if

end tell

end repeat

end adding folder items to

Kleiner Tip zur Anwendung:

Das Skript ist als Ordner-Aktion gedacht, also als normales Skript im Ordner /Library/Scripts/Folder Action Scripts/ abspeichern und als Ordner-Aktion an den Download-Ordner anhängen... fertig

No Comments

Ordneraktion: Verschiebe Datein aus Ordner A in Ordner C der in Ordner B erstellt wird…?!

16/10/2010
Ja ehm... die Überschrift trifft es ziemlich genau, mehr Worte (z.B. Ordner) würden nur verwirren =)
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

--Ordner-Aktion die alle betroffenen Dateien in einen anderen (neu erstellten Ordner

-- verschiebt, dessen Name vorher abgefragt wird.

-- dieser neue Ordner wird wiederum in einem anderen Ordner erstellt, von dem sich ein Alias

-- in dem Ordner der Ordner-Aktion befindet.

-- Befindet sich bereits eine Datei mit dem gleichen Namen im Zielverzeichnis,

-- wird diese NICHT überschrieben, sondern die neue Datei wird entsprechend umbenannt (durchnummeriert).


-- ehm, um wieviele verschiedene Ordner geht es hier eigentlich?


on adding folder items to this_folder after receiving these_items

try

tell application "Finder"

set folderkind to kind of folder 1 of startup disk

set aliascount to count of every alias file of (this_folder as reference)

--wenn der Alias des Zielordners vorhanden ist kann es weitergehen

if aliascount is 1 then

set destination_folder to (original item of alias file 1 of (this_folder as reference))

set destination_folder_posix to POSIX path of (destination_folder as alias)

--ist der Zielordner auch ein Ordner oder eine Datei? Dann Fehler!

if kind of destination_folder is not folderkind then

error "Hm, der Zielordner ist gar kein Ordner..."

end if

--Ordnernamen abfragen, der im Zielordner angelegt werden soll

set foldername to text returned of (display dialog "Bitte die Ausgabe und das Jahr angeben:" buttons {"Ok"} default button "Ok" default answer "Woche-Jahr")

-- den Ordner anlegen

do shell script "mkdir -p " & quoted form of (destination_folder_posix & foldername)

-- und jetzt jede Datei in den neu angelegten Zielordner bewegen, dabei aber auf doppelte Dateinamen achten und ggf. umbenennen

repeat with this_item in these_items

set item_name to name of this_item

set this_item_posix to POSIX path of (this_item as reference)

set uniq_name to my checkname_with_pdf_suffix(item_name, folder foldername of destination_folder, false)

do shell script "mv " & quoted form of this_item_posix & " " & quoted form of (destination_folder_posix & foldername & "/" & uniq_name)

end repeat

else

error "Zielalias nicht vorhanden oder es gibt mehr als einen Alias..."

end if

end tell

on error msg

display dialog msg

end try

end adding folder items to



to checkname_with_pdf_suffix(n, D, looped)

--check if filename exists in D

-- so if "A File.pdf" exists it names it "A File 1.pdf","A File 2.pdf",...

tell application "Finder"

set thefiles to name of every item of (D as alias)

end tell

if thefiles contains n then

if looped = false then

set n to ((characters 1 through -5 of n) & " 1" & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

else

set tmp to (last word of ((characters 1 through -5 of n) as text) as integer)

set tmpcount to (count of characters of (tmp as text)) + 5

set tmp to tmp + 1

set n to ((characters 1 through (-1 * tmpcount) of n) & tmp & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

end if

else

return n

end if

end checkname_with_pdf_suffix

No Comments

Applescript: Modification/creation date verwursten

8/09/2010
Hier zwei Beispiele, was man so mit dem Änderungsdatum oder Erstellungsdatum von Dateien in Ordner so anstellen kann. Und der Auslöser...
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

--hubionmac.com 08.09.2010

--set a folder's name to creation date of one of it's items...

--date string format 2010-01-01


set thefolder to choose folder

tell application "Finder"

set thedates to (creation date of every item of thefolder)

set item_dates to {}

repeat with a in thedates

if my make_dateString(a) is not in item_dates then

set item_dates to item_dates & my make_dateString(a)

end if

end repeat

-- wenn also dateien von mehr als einem Tag in dem ordner stecken...

if (count of item_dates) > 1 then

set item_dates to choose from list item_dates with prompt "Oje, welche Datum soll ich denn nur nehmen..."

end if

set current_foldername to name of thefolder

set string_to_add to text returned of (display dialog "Soll noch etwas an den Ordner-Namen angehängt werden?

\"" & item_dates & " " & current_foldername & "\"" default answer current_foldername)

set newfoldername to item_dates & " " & string_to_add as text

set comment of thefolder to "Alter Name: \"" & current_foldername & "\""

set name of thefolder to newfoldername

end tell


to make_dateString(thedate)

set themonth to characters -2 through -1 of ("0" & (month of thedate as integer) as text)

set theyear to year of thedate

set theday to characters -2 through -1 of ("0" & (day of thedate as integer) as text)

return theyear & "-" & themonth & "-" & theday as text

end make_dateString

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

-- hubionmac.com 08.09.2010

--sets modification date of a folder to the latest modification date of its items


set thefolder to choose folder

tell application "Finder"

set thefiles to every item of thefolder

set thedates to (creation date of every item of thefolder)

set latest_date to modification date of item 1 of thefolder

repeat with i from 1 to (count of thefiles)

set current_item to item i of thefiles

if latest_date < (modification date of current_item) then

set latest_date to (modification date of (current_item as alias))

end if

end repeat

set modification date of thefolder to latest_date

end tell

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

--hubionmac.com >~2007 i think

--AppleScript Droplet to sort fieles into folders by creation date

on open these_items

set thelist to {make_dateString(current date, 1)} & {make_dateString(current date, 2)} & {make_dateString(current date, 3)} as list

choose from list thelist with prompt "Choose date format:"

if result as text = item 1 of thelist as text then

set theformat to 1

else if result as text = item 2 of thelist as text then

set theformat to 2

else if result as text = item 3 of thelist as text then

set theformat to 3

end if

repeat with this_item in these_items

tell application "Finder"

-- set thedate to creation date of this_item

set thedate to modification date of this_item

set theLocation to quoted form of POSIX path of ((folder of this_item) as alias)

end tell

set foldername to make_dateString(thedate, theformat)

try

do shell script "cd " & theLocation & ";mkdir " & quoted form of foldername

end try

set the_item to quoted form of POSIX path of this_item

-- 2008-05-26 -n Option add, so files are not overwritten

do shell script "cd " & theLocation & ";mv -n " & the_item & " ./" & quoted form of foldername & "/"

end repeat

end open



on get_month_number(incomingDate)

-- works with systems <OS X 10.4

copy incomingDate to b

set the month of b to January

set month_number to "0" & (1 + (incomingDate - b + 1314864) div 2629728) as text

return (characters -2 through -1 of month_number) as text

end get_month_number


on make_dateString(thedate, theformat)

if theformat = 1 then

set theday to characters -2 through -1 of (("0" & day of thedate) as text) as text

set thestring to (year of thedate) & "-" & get_month_number(thedate) & "-" & theday

else if theformat = 2 then

set thestring to (year of thedate) & "-" & get_month_number(thedate)

else if theformat = 3 then

set thestring to (year of thedate)

end if

return thestring as text

end make_dateString



No Comments

Finder: Move biggest file of folders to first folder

16/04/2010
Ein paar Ordner auswählen und die jeweils größte Datei wird in den ersten Ordner bewegt... Ich kann es gebrauchen, sag' aber nicht weshalb ;-P
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

tell application "Finder"

set these to selection

set folderkind to kind of folder 1 of startup disk

set movetothisfolder to ""

repeat with this in these

if kind of this is folderkind then

if movetothisfolder = "" then

set movetothisfolder to this

end if

set these2 to every item of this

set biggestsize to 0

repeat with this2 in these2

if size of this2 > biggestsize then

set biggestsize to size of this2

set movethis2 to this2

end if

end repeat

move movethis2 to movetothisfolder

end if

end repeat

end tell

No Comments

AppleScript Finder Terror

22/03/2010
Macht besonders viel Spaß, wenn der Schreibtisch besonders voll ist:
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

tell application "System Events"

set visible of every process to false

end tell

tell application "Finder"

activate

close every window

repeat with i from 1 to 1

set arrangement of icon view options of window of desktop to arranged by kind

delay 0.25

set arrangement of icon view options of window of desktop to arranged by name

delay 0.25

set arrangement of icon view options of window of desktop to arranged by size

delay 0.25

set arrangement of icon view options of window of desktop to arranged by creation date

delay 0.25

set arrangement of icon view options of window of desktop to arranged by modification date

delay 0.25

set arrangement of icon view options of window of desktop to arranged by kind

delay 0.25

end repeat

end tell

No Comments

AppleScript: Bild-Datein und PDFs weg sortieren…

19/03/2010
Erst mal Danke an rumbleinthedesert für die Spende, für das Skript! Damit lassen sich PDFs (und nunmehr auch Bilder) einfach sichten und weg sortieren. Man hat einen Ordner mit seinen Bildern, in diesem Ordner sind vielleicht schon mögliche Zielordner enthalten, ansonsten kann man im Verlauf des Skriptes auch neue Ordner anlegen lassen...
Zieht man nun diesen Ordner auf das unten gezeigte, als AppleScript-Programm gespeicherte Skript, öffnet es der Reihe nach die Bilder oder PDFs in der Vorschau, zeigt einem eine Liste der Zielordner an und man kann recht flott die Bilder weg sortieren. Ist dem Mail-Skript nicht unähnlich....
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

on open thefolder

if (count of thefolder) = 1 then

tell application "Finder"

set thefolder to (item 1 of thefolder) as alias

set thefolder_posix to POSIX path of (thefolder as alias)

set sort_destis to name of every folder of thefolder

set thepdfs to every file of thefolder

repeat with thepdf in thepdfs

if name of thepdf ends with ".pdf" or name of thepdf ends with ".png" or name of thepdf ends with ".jpg" or name of thepdf ends with ".gif" or name of thepdf ends with ".psd" then

set thepdf_posix to POSIX path of (thepdf as alias)

do shell script "open -a /Applications/Preview.app " & quoted form of thepdf_posix

tell me to activate

tell me to set thedesti to choose from list {"••NEW Folder••"} & sort_destis with prompt "In welchen Ordner verschieben?"

if thedesti as text = "••NEW Folder••" then

set newfoldername to ""

repeat until newfoldername ≠ ""

tell me to set newfoldername to text returned of (display dialog "Name of new Folder" default answer "")

try

do shell script "cd " & quoted form of thefolder_posix & ";mkdir " & quoted form of newfoldername

end try

set thedesti to newfoldername

end repeat

end if

tell application "Preview"

activate

--kleiner Pfusch, weil die Vorschau keine AppleScript-Befehle kennt...

tell application "System Events"

keystroke "w" using command down

end tell

end tell

do shell script "mv " & quoted form of thepdf_posix & " '" & thefolder_posix & thedesti & "/" & my checkname_with_pdf_suffix(name of thepdf, ((thefolder & thedesti) as text) as alias, false) & "'"

end if

end repeat

end tell

tell me to activate

tell me to display dialog "bin am Ende"

end if

end open


on checkname_with_pdf_suffix(n, D, looped)

tell application "Finder"

set thefiles to name of every item of (D as alias)

end tell

if thefiles contains n then

if looped = false then

set n to ((characters 1 through -5 of n) & " 1" & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

else

set tmp to (last word of ((characters 1 through -5 of n) as text) as integer)

set tmpcount to (count of characters of (tmp as text)) + 5

set tmp to tmp + 1

set n to ((characters 1 through (-1 * tmpcount) of n) & tmp & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

end if

else

return n

end if

end checkname_with_pdf_suffix

No Comments

Find missing in line

6/12/2009
War mal als Erweiterung für den Episode-Namer gedacht... Damit man bei 200 Episoden noch die findet, die einem fehlt... Geht so wie es aussieht, davon aus, dass der Name jeder Datei mit einer 3-stelligen Zahl anfängt... man zieht einfach die Dateien auf das AppleScript-Droplet und es sagt einem, welche Zahlen in der Reihe fehlen....
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

on open these

set AppleScript's text item delimiters to ""

set numberlist to {}

repeat with this in these

tell application "Finder"

set numberlist to numberlist & (((characters 1 through 3 of (name of this as text)) as text) as integer)

end tell

end repeat

set new_list to simple_sort(numberlist)

set missing_ to ""

display dialog ((item 1 of new_list) as integer)

repeat with i from ((item 1 of new_list) as integer) to ((last item of new_list) as integer)

if numberlist does not contain i then

set missing_ to missing_ & i & return

end if

end repeat

if missing_ ≠ "" then

set the clipboard to missing_ as text

display dialog "Es fehlen welche"

else

display dialog "Alles da!"

end if

end open



on simple_sort(the_list)

set old_delims to AppleScript's text item delimiters

set AppleScript's text item delimiters to {ASCII character 10} -- always a linefeed

set list_string to (the_list as string)

set new_string to do shell script "echo " & quoted form of list_string & " | sort -fn"

set new_list to (paragraphs of new_string)

set AppleScript's text item delimiters to old_delims

return new_list

return the the_list

end simple_sort

No Comments