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