Straighten Quotes
Summary: Replace smart/curly quotes with straight quotes in the selected plain text files.
Requires: EagleFiler
Install Location: ~/Library/Scripts/Applications/EagleFiler/
Last Modified: 2019-10-02
Description
Select one or more text files in EagleFiler and then invoke this script. It’s important that any changes be saved to disk before running the script. You can force this by bringing another window or app to the front or by clicking to view another record.
Installation Instructions · Download in Compiled Format · Download in Text Format
Script
tell
application
"EagleFiler"
set
_records
to
selected records
of
browser window
1
repeat
with
_record
in
_records
my
processRecord(
_record)
end
repeat
end
tell
on
processRecord(
_record)
tell
application
"EagleFiler"
set
_types
to
{"public.plain-text"}
if
_record's
universal type identifier
is
in
_types
then
set
_file
to
file
of
_record
set
_text
to
my
readFile(
_file)
set
_newText
to
my
processText(
_text)
my
writeFile(
_file,
_newText)
end
if
end
tell
end
processRecord
on
readFile(
_file)
set
_f
to
open for access
_file
set
_text
to
read
_f
as
«
class
utf8»
close access
_f
return
_text
end
readFile
on
writeFile(
_file,
_text)
set
_f
to
open for access
_file
with
write permission
write
_text
to
_f
as
«
class
utf8»
close access
_f
end
writeFile
on
processText(
_s)
set
_s
to
my
replace(
_s, "“", "\"")
set
_s
to
my
replace(
_s, "”", "\"")
set
_s
to
my
replace(
_s, "‘", "'")
set
_s
to
my
replace(
_s, "’", "'")
return
_s
end
processText
on
replace(
_string,
_source,
_replacement)
return
my
join(
my
split(
_string,
_source),
_replacement)
end
replace
on
join(
_list,
_sep)
set
_temp
to
AppleScript's
text item delimiters
set
AppleScript's
text item delimiters
to
_sep
set
_result
to
_list
as
string
set
AppleScript's
text item delimiters
to
_temp
return
_result
end
join
on
split(
_string,
_sep)
set
_temp
to
AppleScript's
text item delimiters
set
AppleScript's
text item delimiters
to
_sep
set
_result
to
text items
of
_string
set
AppleScript's
text item delimiters
to
_temp
return
_result
end
split