Whatever btparse or BibDesk does, it now silently loses the part of the 
abstract following the \%}, and that is not correct behavior.

adam

On Wednesday, January 16, 2008, at 04:02PM, "Christiaan Hofman" <[EMAIL 
PROTECTED]> wrote:
>In fact the problem with this one is actually indeed somewhere else. It's
>btparse and us disagreeing about what's valid. Btparse apparently does not
>regard the backslash as an escape for balancing braces, while we do in
>copyStringFromNoteField. If we follow btparse's rule and just ignore the
>backslash there won't be a problem.
>
>Christiaan
>
>On Jan 17, 2008 12:52 AM, Christiaan Hofman <[EMAIL PROTECTED]> wrote:
>
>> This one confuses me. First of all, if there is a bibtex syntax error
>> it's btparse that should catch it. I see no reason why detexification
>> should catch bibtex parsing errors, in particular as it does not
>> explicitly look for bibtex parsing errors. In fact I don't even think
>> this particular case should be considered a bug from the POV of
>> detexification. For example some TeX like  \{ without matching
>> closing brace is perfectly valid tex. I don't know how this one
>> should be handled, but it should be catched somewhere else.
>>
>> Christiaan
>>
>> On 17 Jan 2008, at 12:43 AM, Adam R. Maxwell wrote:
>>
>> >  Going back to the commit log and e-mail to the develop list a year
>> > ago, Mike posted this:
>> >
>> > @inproceedings{Liu04EXPERT,
>> >       Abstract = {Studying program behavior is a central component in
>> > architectural designs. In this paper, we study and exploit one aspect
>> > of program behavior, the behavior repetition, to expedite simulation.
>> > Detailed architectural simulation can be long and computationally
>> > expensive. Various alternatives are commonly used to simulate a much
>> > smaller instruction stream to evaluate design choices: using a
>> > reduced input set or simulating only a small window of the
>> > instruction stream. In this paper, we propose to reduce the amount of
>> > detailed simulation by avoiding simulating repeated code sections
>> > that demonstrate stable behavior. By characterizing program behavior
>> > repetition and use the information to select a subset of instructions
>> > for detailed simulation, we can significantly speed up the process
>> > without affecting the accuracy. In most cases, simulation time of
>> > full-length SPEC CPU2000 benchmarks is reduced from hundreds of hours
>> > to a few hours. The average error incurred is only about 1\{\%} or
>> > less for a range of metrics.},
>> > Title = {TEST},
>> > Author = {Mike McC}}
>> >
>> > ...which with your changes no longer shows an error message
>> > (printing to standard error doesn't count).  I added the nil return
>> > specifically to catch this syntax error, and it's noted in the
>> > parser's addValuesFromEntryToDictionary function.  What other
>> > BibTeX syntax errors do we ignore when parsing a file?
>> >
>> > On Wednesday, January 16, 2008, at 03:21PM, "Christiaan Hofman"
>> > <[EMAIL PROTECTED]> wrote:
>> >> We convert what we can, and not what we can't, anyway. Why would
>> >> these braces be any different from another tex syntax error? Also,
>> >> there seems to be only a single place where we might be interested in
>> >> syntax errors (namely the parser). The only syntax error that is
>> >> checked here is non-matching braces. However the bibtex parser is the
>> >> one place where non-matching braces can never occur (otherwise
>> >> btparse would have already raised). So it would be a no-op anyway.
>> >>
>> >> Christiaan
>> >>
>> >> On 17 Jan 2008, at 12:14 AM, Adam R. Maxwell wrote:
>> >>
>> >>> I don't think it's like cleaning at all.  It's primary purpose is
>> >>> conversion when parsing BibTeX, not temporary changing for display
>> >>> (as in stringByRemovingTeX).  It ultimately affects what gets saved
>> >>> back out to disk, so it's part of a critical data path.
>> >>>
>> >>> On Wednesday, January 16, 2008, at 03:10PM, "Christiaan Hofman"
>> >>> <[EMAIL PROTECTED]> wrote:
>> >>>> Isn't detexification something like cleaning? In particular as we
>> >>>> don't check lots of other tex mistakes either without returning
>> >>>> nil.
>> >>>> Why would this be considered an error?
>> >>>>
>> >>>> Christiaan
>> >>>>
>> >>>> On 17 Jan 2008, at 12:03 AM, Adam R. Maxwell wrote:
>> >>>>
>> >>>>> Is this a good idea?  I think returning nil from a syntax error is
>> >>>>> generally a good thing, and that's precisely the reason I added
>> >>>>> that.  We check for a nil return in BibTeXParser, and other parts
>> >>>>> of the code should check for it as well.
>> >>>>>
>> >>>>> On Wednesday, January 16, 2008, at 02:50PM,
>> >>>>> <[EMAIL PROTECTED]> wrote:
>> >>>>>> Revision: 12523
>> >>>>>>          http://bibdesk.svn.sourceforge.net/bibdesk/?
>> >>>>>> rev=12523&view=rev
>> >>>>>> Author:   hofman
>> >>>>>> Date:     2008-01-16 14:50:39 -0800 (Wed, 16 Jan 2008)
>> >>>>>>
>> >>>>>> Log Message:
>> >>>>>> -----------
>> >>>>>> Don't return nil when detexification fails.
>> >>>>>>
>> >>>>>> Modified Paths:
>> >>>>>> --------------
>> >>>>>>    trunk/bibdesk/BDSKConverter.m
>> >>>>>>
>> >>>>>> Modified: trunk/bibdesk/BDSKConverter.m
>> >>>>>> =================================================================
>> >>>>>> ==
>> >>>>>> --- trunk/bibdesk/BDSKConverter.m        2008-01-16 22:35:31 UTC
>> (rev
>> >>>>>> 12522)
>> >>>>>> +++ trunk/bibdesk/BDSKConverter.m        2008-01-16 22:50:39 UTC
>> (rev
>> >>>>>> 12523)
>> >>>>>> @@ -137,33 +137,39 @@
>> >>>>>>     [self setDetexifyAccents:[wholeDict
>> >>>>>> objectForKey:TEX_TO_ROMAN_ACCENTS_KEY]];
>> >>>>>> }
>> >>>>>>
>> >>>>>> +- (NSString *)copyComplexString:(BDSKComplexString *)cs
>> >>>>>> byCopyingStringNodesUsingSelector:(SEL)copySelector {
>> >>>>>> +    NSEnumerator *nodeEnum = [[cs nodes] objectEnumerator];
>> >>>>>> +    BDSKStringNode *node, *newNode;
>> >>>>>> +    NSMutableArray *nodes = [[NSMutableArray alloc]
>> >>>>>> initWithCapacity:[[cs nodes] count]];
>> >>>>>> +    NSString *string;
>> >>>>>> +
>> >>>>>> +    while(node = [nodeEnum nextObject]){
>> >>>>>> +        if([node type] == BSN_STRING){
>> >>>>>> +            string = [self performSelector:copySelector
>> >>>>>> withObject:[node value]];
>> >>>>>> +            newNode = [[BDSKStringNode alloc]
>> >>>>>> initWithQuotedString:string];
>> >>>>>> +            [string release];
>> >>>>>> +        } else {
>> >>>>>> +            newNode = [node copy];
>> >>>>>> +        }
>> >>>>>> +        [nodes addObject:newNode];
>> >>>>>> +        [newNode release];
>> >>>>>> +    }
>> >>>>>> +
>> >>>>>> +    string = [[NSString alloc] initWithNodes:nodes
>> >>>>>> macroResolver:
>> >>>>>> [cs macroResolver]];
>> >>>>>> +    [nodes release];
>> >>>>>> +    return string;
>> >>>>>> +}
>> >>>>>> +
>> >>>>>> - (NSString *)copyStringByTeXifyingString:(NSString *)s{
>> >>>>>>
>> >>>>>>  // TeXify only string nodes of complex strings;
>> >>>>>>  if([s isComplex]){
>> >>>>>> -                BDSKComplexString *cs = (BDSKComplexString *)s;
>> >>>>>> -                NSEnumerator *nodeEnum = [[cs nodes]
>> objectEnumerator];
>> >>>>>> -                BDSKStringNode *node, *newNode;
>> >>>>>> -                NSMutableArray *nodes = [[NSMutableArray alloc]
>> >>>>>> initWithCapacity:[[cs nodes] count]];
>> >>>>>> -        NSString *string;
>> >>>>>> -
>> >>>>>> -                while(node = [nodeEnum nextObject]){
>> >>>>>> -                        if([node type] == BSN_STRING){
>> >>>>>> -                                string = [self
>> copyStringByTeXifyingString:[node value]];
>> >>>>>> -                if(string == nil) break;
>> >>>>>> -                newNode = [[BDSKStringNode alloc]
>> >>>>>> initWithQuotedString:string];
>> >>>>>> -                [string release];
>> >>>>>> -                        } else {
>> >>>>>> -                                newNode = [node copy];
>> >>>>>> -                        }
>> >>>>>> -            [nodes addObject:newNode];
>> >>>>>> -                        [newNode release];
>> >>>>>> -                }
>> >>>>>> -
>> >>>>>> -        string = [[NSString alloc] initWithNodes:nodes
>> >>>>>> macroResolver:[cs macroResolver]];
>> >>>>>> -        [nodes release];
>> >>>>>> -                return string;
>> >>>>>> +        return [self copyComplexString:(BDSKComplexString *)s
>> >>>>>> byCopyingStringNodesUsingSelector:_cmd];
>> >>>>>>  }
>> >>>>>> +
>> >>>>>> +    if([NSString isEmptyString:s]){
>> >>>>>> +        return [s retain];
>> >>>>>> +    }
>> >>>>>>
>> >>>>>>     // we expect to find composed accented characters, as this is
>> >>>>>> also what we use in the CharacterConversion plist
>> >>>>>>     NSMutableString *precomposedString = [s mutableCopy];
>> >>>>>> @@ -264,31 +270,14 @@
>> >>>>>>
>> >>>>>> - (NSString *)copyStringByDeTeXifyingString:(NSString *)s{
>> >>>>>>
>> >>>>>> -    if([NSString isEmptyString:s]){
>> >>>>>> -        return [s retain];
>> >>>>>> -    }
>> >>>>>> -
>> >>>>>>  // deTeXify only string nodes of complex strings;
>> >>>>>>  if([s isComplex]){
>> >>>>>> -                BDSKComplexString *cs = (BDSKComplexString *)s;
>> >>>>>> -                NSEnumerator *nodeEnum = [[cs nodes]
>> objectEnumerator];
>> >>>>>> -                BDSKStringNode *node, *newNode;
>> >>>>>> -                NSMutableArray *nodes = [NSMutableArray
>> arrayWithCapacity:[[cs
>> >>>>>> nodes] count]];
>> >>>>>> -                NSString *string;
>> >>>>>> -
>> >>>>>> -                while(node = [nodeEnum nextObject]){
>> >>>>>> -                        if([node type] == BSN_STRING){
>> >>>>>> -                                string = [self
>> copyStringByDeTeXifyingString:[node value]];
>> >>>>>> -                                newNode = [[BDSKStringNode alloc]
>> >>>>>> initWithQuotedString:string];
>> >>>>>> -                [string release];
>> >>>>>> -                        } else {
>> >>>>>> -                                newNode = [node copy];
>> >>>>>> -                        }
>> >>>>>> -            [nodes addObject:newNode];
>> >>>>>> -                        [newNode release];
>> >>>>>> -                }
>> >>>>>> -                return [[NSString alloc] initWithNodes:nodes
>> macroResolver:[cs
>> >>>>>> macroResolver]];
>> >>>>>> +        return [self copyComplexString:(BDSKComplexString *)s
>> >>>>>> byCopyingStringNodesUsingSelector:_cmd];
>> >>>>>>  }
>> >>>>>> +
>> >>>>>> +    if([NSString isEmptyString:s]){
>> >>>>>> +        return [s retain];
>> >>>>>> +    }
>> >>>>>>
>> >>>>>>     NSMutableString *tmpConv = nil;
>> >>>>>>     NSString *TEXString = nil;
>> >>>>>> @@ -328,8 +317,7 @@
>> >>>>>>                 range = [convertedSoFar rangeOfString:@"{\\"
>> >>>>>> options:0 range:NSMakeRange(replaceRange.location + 1, length -
>> >>>>>> replaceRange.location - 1)];
>> >>>>>>             } else {
>> >>>>>>                 NSLog(@"missing brace in string %@",
>> >>>>>> convertedSoFar);
>> >>>>>> -                [convertedSoFar release];
>> >>>>>> -                return nil;
>> >>>>>> +                range = NSMakeRange(NSNotFound, 0);
>> >>>>>>             }
>> >>>>>>
>> >>>>>>         }
>> >>>>>>
>> >>>>>>
>> >>>>>> This was sent by the SourceForge.net collaborative development
>> >>>>>> platform, the world's largest Open Source development site.
>> >>>>>>
>> >>>>>> -----------------------------------------------------------------
>> >>>>>> --
>> >>>>>> --
>> >>>>>> ----
>> >>>>>> This SF.net email is sponsored by: Microsoft
>> >>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> >>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> >>>>>> _______________________________________________
>> >>>>>> Bibdesk-commit mailing list
>> >>>>>> [EMAIL PROTECTED]
>> >>>>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-commit
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>> ------------------------------------------------------------------
>> >>>>> --
>> >>>>> --
>> >>>>> ---
>> >>>>> This SF.net email is sponsored by: Microsoft
>> >>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> >>>>> _______________________________________________
>> >>>>> Bibdesk-develop mailing list
>> >>>>> Bibdesk-develop@lists.sourceforge.net
>> >>>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>> >>>>
>> >>>>
>> >>>> -------------------------------------------------------------------
>> >>>> --
>> >>>> ----
>> >>>> This SF.net email is sponsored by: Microsoft
>> >>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> >>>> _______________________________________________
>> >>>> Bibdesk-develop mailing list
>> >>>> Bibdesk-develop@lists.sourceforge.net
>> >>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>> >>>>
>> >>>>
>> >>>
>> >>> --------------------------------------------------------------------
>> >>> --
>> >>> ---
>> >>> This SF.net email is sponsored by: Microsoft
>> >>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> >>> _______________________________________________
>> >>> Bibdesk-develop mailing list
>> >>> Bibdesk-develop@lists.sourceforge.net
>> >>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> ----
>> >> This SF.net email is sponsored by: Microsoft
>> >> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> >> _______________________________________________
>> >> Bibdesk-develop mailing list
>> >> Bibdesk-develop@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>> >>
>> >>
>> >
>> > ----------------------------------------------------------------------
>> > ---
>> > This SF.net email is sponsored by: Microsoft
>> > Defy all challenges. Microsoft(R) Visual Studio 2008.
>> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> > _______________________________________________
>> > Bibdesk-develop mailing list
>> > Bibdesk-develop@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>>
>>
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to