On Thu, Apr 1, 2010 at 2:03 PM, Christiaan Hofman <[email protected]> wrote:
>
> On Apr 1, 2010, at 22:15, Peter Cowan wrote:
>
>> I'm using biblatex in the TeX preview window.  And, since I often
>> import directly from ISI using the Web of Science Search function, I
>> get regular errors related to commas in the address or institution
>> field.  Perhaps there is a solution through biblatex to this problem,
>> but I'm fine with either protecting or deleting the
>> Address/Institution field on import.
>>
>> Script hooks seem like the perfect solution to this problem, but I am
>> not an applescript users.  I've tried to cobble something together
>> based on the available example and got the following which doesn't
>> appear to work, on import (from Web of Science) nothing happens no
>> errors no braces.  Any nudges in the right direction are appreciated.
>>
>> I apologize if this has been discussed on the list before, my searches
>> did not reveal anything aside from confirmation of the biblatex TeX
>> preview issue.
>>
>> Cheers
>>
>> Peter
>>
[snip old code]
>
> This won't work, because you call the external scripts outside the "perform 
> BibDesk action..." handler. The script hook will only call that handler, so 
> anything outside it (like defining the protectLib and errorLib) will be 
> ignored. Therefore reference to those external scripts will fail. You'll have 
> to move everything to inside the script hook handler.

Christiaan,

Thanks for the reply, I've moved the load script calls inside of the
handler, but alas it still doesn't work.  The current version is
below.

I apologize for being such an applescript newb, but is there a
workflow you follow for developing this applescripts, e.g. debugging
hints, setting "breakpoints" etc.

Cheers

Peter


property theFieldToSet : "Address"

using terms from application "BibDesk"
        on perform BibDesk action with publications thePubs for script hook
theScriptHook
                
                set protectLib to (load script file ¬
                        ((path to home folder as string) & "Library:Application
Support:BibDesk:Scripts:Add Protect Strings.scpt"))
                -- load the Error Reporting script library
                set errorLib to (load script file ¬
                        ((path to home folder as string) &
"Library:ScriptingAdditions:Error Reporting.scpt"))
                -- we only report all errors at the end
                
                tell errorLib
                        delayReportErrors()
                        set its defaultErrorFileName to "BibDeskScriptErrors"
                end tell
                
                -- here you could return depending on theName or theField
                tell protectLib
                        -- protect chars between balanced {}
                        set its startProtectChar to "{"
                        set its endProtectChar to "}"
                        
                        repeat with thePub in thePubs
                                
                                try
                                        tell thePub
                                                set curValue to value of field 
theFieldToSet
                                                -- generate a new value for the 
field
                                                set theField to field 
theFieldToSet
                                                set newValue to 
protectString(curValue)
                                                if newValue is not "{}" then ¬
                                                        set value of theField 
to newValue
                                        end tell
                                        
                                on error errorMessage number errorNumber
                                        tell errorLib to 
reportError(errorMessage, errorNumber)
                                        
                                end try
                                
                        end repeat
                end tell --protectLib
                
        end perform BibDesk action with publications
end using terms from

-- see if we had any errors
tell errorLib to checkForErrors()

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Bibdesk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-users

Reply via email to