Revision: 17924
          http://bibdesk.svn.sourceforge.net/bibdesk/?rev=17924&view=rev
Author:   hofman
Date:     2011-06-02 21:24:47 +0000 (Thu, 02 Jun 2011)

Log Message:
-----------
added extra separator optional argument to %k and %w format specifier

Modified Paths:
--------------
    trunk/bibdesk/BDSKFormatParser.m
    trunk/bibdesk/English.lproj/BibDeskHelp/bibdesk.texi

Modified: trunk/bibdesk/BDSKFormatParser.m
===================================================================
--- trunk/bibdesk/BDSKFormatParser.m    2011-06-02 21:14:05 UTC (rev 17923)
+++ trunk/bibdesk/BDSKFormatParser.m    2011-06-02 21:24:47 UTC (rev 17924)
@@ -410,11 +410,16 @@
                        // keywords
                                        // look for [slash]
                                        NSString *slash = (isLocalFile) ? @"-" 
: @"/";
+                                       NSString *sep = nil;
                                        if ([scanner scanString:@"[" 
intoString:NULL]) {
                                                if (NO == [scanner 
scanUpToString:@"]" intoString:&slash]) slash = @"";
                                                [scanner scanString:@"]" 
intoString:NULL];
+                        if ([scanner scanString:@"[" intoString:NULL]) {
+                            if (NO == [scanner scanUpToString:@"]" 
intoString:&sep]) sep = @"";
+                            [scanner scanString:@"]" intoString:NULL];
+                        }
                                        }
-                                       NSString *keywordsString = [pub 
stringValueOfField:BDSKKeywordsString];
+                    NSString *keywordsString = [pub 
stringValueOfField:BDSKKeywordsString];
                                        NSUInteger i, numWords = 0;
                     if (NO == [scanner scanUnsignedInteger:&numWords]) 
numWords = 0;
                                        if ([NSString 
isEmptyString:keywordsString] == NO) {
@@ -440,7 +445,9 @@
                             keyword = [self 
stringByStrictlySanitizingString:keyword forField:fieldName]; 
                                                        if (NO == [slash 
isEqualToString:@"/"])
                                                                keyword = 
[keyword stringByReplacingCharactersInSet:slashCharSet withString:slash];
-                                                       [parsedStr 
appendString:keyword]; 
+                                                       if (i > 0 && [NSString 
isEmptyString:keyword] == NO && [NSString isEmptyString:sep] == NO)
+                                [parsedStr appendString:sep]; 
+                            [parsedStr appendString:keyword]; 
                                                }
                                        }
                                        break;
@@ -555,6 +562,7 @@
                     NSString *key = nil;
                     NSString *sepChars = nil;
                     NSString *slash = (isLocalFile) ? @"-" : @"/";
+                    NSString *sep = nil;
                     if ([scanner scanString:@"{" intoString:NULL] &&
                                                [scanner scanUpToString:@"}" 
intoString:&key] &&
                                                [scanner scanString:@"}" 
intoString:NULL]) {
@@ -566,6 +574,10 @@
                             if ([scanner scanString:@"[" intoString:NULL]) {
                                 if (NO == [scanner scanUpToString:@"]" 
intoString:&slash]) slash = @"";
                                 [scanner scanString:@"]" intoString:NULL];
+                                if ([scanner scanString:@"[" intoString:NULL]) 
{
+                                    if (NO == [scanner scanUpToString:@"]" 
intoString:&sep]) sep = @"";
+                                    [scanner scanString:@"]" intoString:NULL];
+                                }
                             }
                         }
                         NSString *wordsString = [pub stringValueOfField:key];
@@ -594,6 +606,8 @@
                                 word = [self 
stringByStrictlySanitizingString:word forField:fieldName]; 
                                 if (NO == [slash isEqualToString:@"/"])
                                     word = [word 
stringByReplacingCharactersInSet:slashCharSet withString:slash];
+                                if (i > 0 && [NSString isEmptyString:word] == 
NO && [NSString isEmptyString:sep] == NO)
+                                    [parsedStr appendString:sep]; 
                                 [parsedStr appendString:word]; 
                             }
                         }
@@ -1067,7 +1081,7 @@
                // check optional arguments
                if ([validOptArgSpecifierChars characterIsMember:specifier]) {
                        if (NO == [scanner isAtEnd]) {
-                               NSInteger i, numOpts = ((specifier == 'A' || 
specifier == 'P' || specifier == 's')? 3 : ((specifier == 'a' || specifier == 
'p' || specifier == 'w')? 2 : 1));
+                               NSInteger i, numOpts = ((specifier == 'A' || 
specifier == 'P' || specifier == 'w' || specifier == 's')? 3 : ((specifier == 
'a' || specifier == 'p' || specifier == 'k')? 2 : 1));
                                for (i = 0; i < numOpts && [scanner 
scanString:@"[" intoString: NULL]; i++) {
                                        if (NO == [scanner scanUpToString:@"]" 
intoString:&string]) 
                                                string = @"";

Modified: trunk/bibdesk/English.lproj/BibDeskHelp/bibdesk.texi
===================================================================
--- trunk/bibdesk/English.lproj/BibDeskHelp/bibdesk.texi        2011-06-02 
21:14:05 UTC (rev 17923)
+++ trunk/bibdesk/English.lproj/BibDeskHelp/bibdesk.texi        2011-06-02 
21:24:47 UTC (rev 17924)
@@ -3699,7 +3699,7 @@
 
 @c End of macro definitions
 
-@multitable {@b{%s\{}\i{Field}\b{[][][]\}0}} {Bibliography document file name, 
without extension} {name separator, initial separator, et al., max number of 
editors}
+@multitable {@b{%w\{}\i{Field}\b{[ ][/][]\}0}} {Bibliography document file 
name, without extension} {name separator, initial separator, et al., max number 
of editors}
 @headitem Specifier @tab Replaced content description @tab Optional parameters
 @item @specparam{%a, [][]00}
 @tab Author last names
@@ -3725,9 +3725,9 @@
 @tab Year with century
 @item @spec{%m}
 @tab Month as decimal number
-@item @specparam{%k, [/]0 }
+@item @specparam{%k, [/][]0 }
 @tab Keywords concatenated together
-@tab slash replacement, max number of keywords
+@tab slash replacement, separator, max number of keywords
 @item @spec{%l}
 @tab File name of the linked file, without extension
 @item @spec{%L}
@@ -3739,9 +3739,9 @@
 @item @specargparam{%f, Field, [/]0 }
 @tab Arbitrary field, also @samp{Cite Key} or @samp{BibTeX Type}
 @tab slash replacement, max length
-@item @specargparam{%w, Field, [ ][/]0 }
+@item @specargparam{%w, Field, [ ][/][]0 }
 @tab Words of arbitrary field
-@tab separator characters, slash replacement, max number of words
+@tab separator characters, slash replacement, separator, max number of words
 @item @specargparam{%c, Field, 3}
 @tab Arbitrary field as initials (acronym)
 @tab max length of words to ignore


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to