Fix -F -T option combination

Change-Id: I1dd87e6b12118db44cac5c209d737a0d4fee63e1
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
index c0f8dba..a843d82 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -1955,23 +1955,29 @@
             // Determine output zip label. Prefer combined label if both tagger and parser are active
             var targetFoundry = "base"
             val labelParts = mutableListOf<String>()
-            if (taggerName != null) {
-                val tagger = AnnotationToolBridgeFactory.getTagger(taggerName!!, taggerModel!!, LOGGER)
-                if (tagger != null) {
-                    labelParts.add(tagger.foundry)
+            
+            // Check if foundry override is set - if so, use it directly
+            if (foundryOverride != null) {
+                targetFoundry = foundryOverride!!
+            } else {
+                if (taggerName != null) {
+                    val tagger = AnnotationToolBridgeFactory.getTagger(taggerName!!, taggerModel!!, LOGGER)
+                    if (tagger != null) {
+                        labelParts.add(tagger.foundry)
+                    }
                 }
-            }
-            if (parserName != null) {
-                // Only add parser foundry if it's different from tagger foundry
-                if (taggerName == null || taggerName != parserName) {
-                    labelParts.add(parserName!!)
+                if (parserName != null) {
+                    // Only add parser foundry if it's different from tagger foundry
+                    if (taggerName == null || taggerName != parserName) {
+                        labelParts.add(parserName!!)
+                    }
                 }
-            }
-            if (labelParts.isNotEmpty()) {
-                targetFoundry = labelParts.joinToString("-")
-            } else if (annotateWith.isNotEmpty()) {
-                targetFoundry = externalFoundry ?: detectFoundryFromAnnotateCmd(annotateWith)
-                LOGGER.info("Detected foundry '$targetFoundry' from annotation command: $annotateWith")
+                if (labelParts.isNotEmpty()) {
+                    targetFoundry = labelParts.joinToString("-")
+                } else if (annotateWith.isNotEmpty()) {
+                    targetFoundry = externalFoundry ?: detectFoundryFromAnnotateCmd(annotateWith)
+                    LOGGER.info("Detected foundry '$targetFoundry' from annotation command: $annotateWith")
+                }
             }
             dbFactory = DocumentBuilderFactory.newInstance()
             dBuilder = dbFactory!!.newDocumentBuilder()
@@ -2977,8 +2983,8 @@
             output.setLength(0)
         } else {
             // Direct ZIP output without external annotation: write morpho.xml and, if parser is active, dependency.xml
-            val morphoDir = taggerToolBridges[Thread.currentThread().threadId()]?.foundry ?: morphoFoundry
-            val depDir = parserName ?: morphoDir
+            val morphoDir = foundryOverride ?: (taggerToolBridges[Thread.currentThread().threadId()]?.foundry ?: morphoFoundry)
+            val depDir = foundryOverride ?: (parserName ?: morphoDir)
              var wroteOne = false
              // Always write morpho.xml if we have morpho annotations (tagger or from input)
              if (morpho[docId] != null && morpho[docId]!!.isNotEmpty()) {