Revision: 29382
          http://sourceforge.net/p/bibdesk/svn/29382
Author:   hofman
Date:     2025-07-28 09:41:03 +0000 (Mon, 28 Jul 2025)
Log Message:
-----------
chek for unrecovarable error first, otherwise we could recover to allow a real 
error

Modified Paths:
--------------
    trunk/bibdesk/BDSKEditor.m

Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m  2025-07-28 09:37:16 UTC (rev 29381)
+++ trunk/bibdesk/BDSKEditor.m  2025-07-28 09:41:03 UTC (rev 29382)
@@ -2100,36 +2100,35 @@
     
     if (control == citeKeyField) {
         
-        NSString *message = nil;
-        NSCharacterSet *invalidSet = [[BDSKTypeManager sharedManager] 
fragileCiteKeyCharacterSet];
-        NSRange r = [obj rangeOfCharacterFromSet:invalidSet];
-        
-        // check for fragile invalid characters, as the formatter doesn't do 
this
-        if (r.location != NSNotFound && editorFlags.allowFragileCharacters == 
NO) {
-            
+        // check whether we won't crossref to the new citekey
+        BDSKCrossrefError errorCode = [publication canSetCiteKey:[control 
stringValue]];
+        if (errorCode != BDSKNoCrossrefError) {
             isValid = NO;
             if (error) {
+                NSString *message = nil;
+                if (errorCode == BDSKSelfCrossrefError)
+                    message = NSLocalizedString(@"An item cannot cross 
reference to itself.", @"Informative text in alert dialog");
+                else // shouldn't happen
+                    message = NSLocalizedString(@"Cannot set this cite key as 
this would lead to a crossreff chain.", @"Informative text in alert dialog");
+                
                 err = [NSError mutableLocalErrorWithCode:kBDSKFailedToCommit 
localizedDescription:NSLocalizedString(@"Invalid Value", @"Message in alert 
dialog when entering an invalid value")];
-                [err setValue:NSLocalizedString(@"The cite key you entered 
contains characters that could be invalid in TeX. Do you want to keep them or 
remove them?", @"Informative text in alert dialog") 
forKey:NSLocalizedRecoverySuggestionErrorKey];
-                [err setValue:self forKey:NSRecoveryAttempterErrorKey];
-                [err setValue:@[NSLocalizedString(@"Remove", @"Button title"), 
NSLocalizedString(@"Keep", @"Button title")] 
forKey:NSLocalizedRecoveryOptionsErrorKey];
+                [err setValue:message 
forKey:NSLocalizedRecoverySuggestionErrorKey];
             }
-            
         } else {
+            NSCharacterSet *invalidSet = [[BDSKTypeManager sharedManager] 
fragileCiteKeyCharacterSet];
+            NSRange r = [obj rangeOfCharacterFromSet:invalidSet];
             
-            // check whether we won't crossref to the new citekey
-            BDSKCrossrefError errorCode = [publication canSetCiteKey:[control 
stringValue]];
-            if (errorCode != BDSKNoCrossrefError) {
+            // check for fragile invalid characters, as the formatter doesn't 
do this
+            if (r.location != NSNotFound && editorFlags.allowFragileCharacters 
== NO) {
+                
                 isValid = NO;
                 if (error) {
-                    if (errorCode == BDSKSelfCrossrefError)
-                        message = NSLocalizedString(@"An item cannot cross 
reference to itself.", @"Informative text in alert dialog");
-                    else // shouldn't happen
-                        message = NSLocalizedString(@"Cannot set this cite key 
as this would lead to a crossreff chain.", @"Informative text in alert dialog");
-                    
                     err = [NSError 
mutableLocalErrorWithCode:kBDSKFailedToCommit 
localizedDescription:NSLocalizedString(@"Invalid Value", @"Message in alert 
dialog when entering an invalid value")];
-                    [err setValue:message 
forKey:NSLocalizedRecoverySuggestionErrorKey];
+                    [err setValue:NSLocalizedString(@"The cite key you entered 
contains characters that could be invalid in TeX. Do you want to keep them or 
remove them?", @"Informative text in alert dialog") 
forKey:NSLocalizedRecoverySuggestionErrorKey];
+                    [err setValue:self forKey:NSRecoveryAttempterErrorKey];
+                    [err setValue:@[NSLocalizedString(@"Remove", @"Button 
title"), NSLocalizedString(@"Keep", @"Button title")] 
forKey:NSLocalizedRecoveryOptionsErrorKey];
                 }
+                
             }
         }
         

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to