[SCM] master: Fix file name completion on second arg.

cagney@sourceware.org cagney@sourceware.org
Wed Nov 14 17:00:00 GMT 2007


The branch, master has been updated
       via  fb20dde8b9c322b77e642ba0d6f360deb3e9ee13 (commit)
      from  16bda633871baa0b3bcc450af73a5e7c2ed37621 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit fb20dde8b9c322b77e642ba0d6f360deb3e9ee13
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed Nov 14 09:14:00 2007 -0500

    Fix file name completion on second arg.
    
    frysk-core/frysk/hpd/ChangeLog
    2007-11-14  Andrew Cagney  <cagney@redhat.com>
    
    	* TestCompletionFactory.java: New.
    	* Input.java (base(int)): New.
    	(cursor(int,int)): New.
    	* Command.java (complete(CLI,Input,int,List)): Make abstract.
    	* ParameterizedCommand.java (complete(CLI,Input,int,List)): Delete.
    	(complete(CLI,PTSet,String,int,List)): Delete.
    	* CompletionFactory.java (completeExpression(CLI,Input,int,List)):
    	Replace completeExpression(CLI,PTSet,String,int,List).
    	(completeFileName(CLI,Input,int,List)): Replace
    	completeFileName(CLI,String,int,List); handle multiple arguments.
    	* WhichsetsCommand.java: Update.
    	* WhatCommand.java: Update.
    	* ViewsetCommand.java: Update.
    	* UndefsetCommand.java: Update.
    	* TestParameterizedCommand.java: Update.
    	* StepNextiCommand.java: Update.
    	* StepNextCommand.java: Update.
    	* StepInstructionCommand.java: Update.
    	* StepFinishCommand.java: Update.
    	* StepCommand.java: Update.
    	* RunCommand.java: Update.
    	* StackCommands.java: Update.
    	* QuitCommand.java: Update.
    	* RegsCommand.java: Update.
    	* PtypeCommand.java: Update.
    	* PlocationCommand.java: Update.
    	* PeekCommand.java: Update.
    	* LoadCommand.java: Update.
    	* ListCommand.java: Update.
    	* HaltCommand.java: Update.
    	* GoCommand.java: Update.
    	* FocusCommand.java: Update.
    	* EvalCommands.java: Update.
    	* ExamineCommand.java: Update.
    	* DisplayCommand.java: Update.
    	* DisassembleCommand.java: Update.
    	* DetachCommand.java: Update.
    	* CoreCommand.java: Update.
    	* DefsetCommand.java: Update.
    	* DebuginfoCommand.java: Update.
    	* AttachCommand.java: Update.
    	* ActionPointCommands.java: Update.
    	* BreakpointCommand.java: Update.
    	* DbgVariableCommands.java: Update.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/hpd/ActionPointCommands.java      |    3 +-
 frysk-core/frysk/hpd/AliasCommands.java            |    6 +-
 frysk-core/frysk/hpd/AttachCommand.java            |    2 +-
 frysk-core/frysk/hpd/BreakpointCommand.java        |    7 +--
 frysk-core/frysk/hpd/ChangeLog                     |   47 ++++++++++++++++++
 frysk-core/frysk/hpd/Command.java                  |    4 +-
 frysk-core/frysk/hpd/CompletionFactory.java        |   50 +++++++++++++++++--
 frysk-core/frysk/hpd/CoreCommand.java              |    5 +-
 frysk-core/frysk/hpd/DbgVariableCommands.java      |    8 ++-
 frysk-core/frysk/hpd/DebuginfoCommand.java         |    3 +-
 frysk-core/frysk/hpd/DefsetCommand.java            |    3 +-
 frysk-core/frysk/hpd/DetachCommand.java            |    3 +-
 frysk-core/frysk/hpd/DisassembleCommand.java       |    7 +--
 frysk-core/frysk/hpd/DisplayCommand.java           |    7 +--
 frysk-core/frysk/hpd/EvalCommands.java             |    7 +--
 frysk-core/frysk/hpd/ExamineCommand.java           |    7 +--
 frysk-core/frysk/hpd/FocusCommand.java             |    3 +-
 frysk-core/frysk/hpd/GoCommand.java                |    3 +-
 frysk-core/frysk/hpd/HaltCommand.java              |    3 +-
 frysk-core/frysk/hpd/Input.java                    |   25 ++++++++++
 frysk-core/frysk/hpd/ListCommand.java              |    3 +-
 frysk-core/frysk/hpd/LoadCommand.java              |    5 +-
 frysk-core/frysk/hpd/ParameterizedCommand.java     |   25 ----------
 frysk-core/frysk/hpd/PeekCommand.java              |    7 +--
 frysk-core/frysk/hpd/PlocationCommand.java         |    7 +--
 frysk-core/frysk/hpd/PtypeCommand.java             |    7 +--
 frysk-core/frysk/hpd/QuitCommand.java              |    3 +-
 frysk-core/frysk/hpd/RegsCommand.java              |    3 +-
 frysk-core/frysk/hpd/RunCommand.java               |    6 ++
 frysk-core/frysk/hpd/StackCommands.java            |    8 +---
 frysk-core/frysk/hpd/StepCommand.java              |    3 +-
 frysk-core/frysk/hpd/StepFinishCommand.java        |    3 +-
 frysk-core/frysk/hpd/StepInstructionCommand.java   |    3 +-
 frysk-core/frysk/hpd/StepNextCommand.java          |    3 +-
 frysk-core/frysk/hpd/StepNextiCommand.java         |    3 +-
 ...LoadCommand.java => TestCompletionFactory.java} |   40 +++++++++------
 frysk-core/frysk/hpd/TestCoreCommand.java          |    1 +
 frysk-core/frysk/hpd/TestParameterizedCommand.java |    4 +-
 frysk-core/frysk/hpd/UndefsetCommand.java          |    3 +-
 frysk-core/frysk/hpd/ViewsetCommand.java           |    3 +-
 frysk-core/frysk/hpd/WhatCommand.java              |    7 +--
 frysk-core/frysk/hpd/WhichsetsCommand.java         |    3 +-
 42 files changed, 209 insertions(+), 144 deletions(-)
 copy frysk-core/frysk/hpd/{TestLoadCommand.java => TestCompletionFactory.java} (75%)

First 500 lines of diff:
diff --git a/frysk-core/frysk/hpd/ActionPointCommands.java b/frysk-core/frysk/hpd/ActionPointCommands.java
index dc45628..217970a 100644
--- a/frysk-core/frysk/hpd/ActionPointCommands.java
+++ b/frysk-core/frysk/hpd/ActionPointCommands.java
@@ -121,8 +121,7 @@ abstract class ActionPointCommands extends ParameterizedCommand {
 	    });
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List alternatives) {
+    int complete(CLI cli, Input incomplete, int base, List alternatives) {
 	return -1;
     }
 
diff --git a/frysk-core/frysk/hpd/AliasCommands.java b/frysk-core/frysk/hpd/AliasCommands.java
index aba2b26..84fdb56 100644
--- a/frysk-core/frysk/hpd/AliasCommands.java
+++ b/frysk-core/frysk/hpd/AliasCommands.java
@@ -45,15 +45,15 @@ import java.util.Iterator;
 
 abstract class AliasCommands extends ParameterizedCommand {
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	String incomplete = input.stringValue();
 	for (Iterator i = cli.aliases.keySet().iterator(); i.hasNext(); ) {
 	    String key = (String)i.next();
 	    if (key.startsWith(incomplete))
 		completions.add(key);
 	}
 	CompletionFactory.padSingleCandidate(completions);
-	return 0;
+	return input.cursor(0, cursor);
     }
 
     AliasCommands(String name, String description, String syntax,
diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java
index b87ec91..489993e 100644
--- a/frysk-core/frysk/hpd/AttachCommand.java
+++ b/frysk-core/frysk/hpd/AttachCommand.java
@@ -104,7 +104,7 @@ class AttachCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, PTSet ptset, String input, int base,
+    int complete(CLI cli, Input input, int base,
 		 List completions) {
 	return -1;
     }
diff --git a/frysk-core/frysk/hpd/BreakpointCommand.java b/frysk-core/frysk/hpd/BreakpointCommand.java
index c00e240..13b379d 100644
--- a/frysk-core/frysk/hpd/BreakpointCommand.java
+++ b/frysk-core/frysk/hpd/BreakpointCommand.java
@@ -186,9 +186,8 @@ class BreakpointCommand extends ParameterizedCommand {
 	outWriter.println();
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base, 
-		 List completions) {
-	return CompletionFactory.completeExpression(cli, ptset, incomplete,
-						    base, completions);
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeExpression(cli, input, cursor,
+						    completions);
     }
 }
diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
index 4a1a67e..b833658 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,3 +1,50 @@
+2007-11-14  Andrew Cagney  <cagney@redhat.com>
+
+	* TestCompletionFactory.java: New.
+	* Input.java (base(int)): New.
+	(cursor(int,int)): New.
+	* Command.java (complete(CLI,Input,int,List)): Make abstract.
+	* ParameterizedCommand.java (complete(CLI,Input,int,List)): Delete.
+	(complete(CLI,PTSet,String,int,List)): Delete.
+	* CompletionFactory.java (completeExpression(CLI,Input,int,List)):
+	Replace completeExpression(CLI,PTSet,String,int,List).
+	(completeFileName(CLI,Input,int,List)): Replace
+	completeFileName(CLI,String,int,List); handle multiple arguments.
+	* WhichsetsCommand.java: Update.
+	* WhatCommand.java: Update.
+	* ViewsetCommand.java: Update.
+	* UndefsetCommand.java: Update.
+	* TestParameterizedCommand.java: Update.
+	* StepNextiCommand.java: Update.
+	* StepNextCommand.java: Update.
+	* StepInstructionCommand.java: Update.
+	* StepFinishCommand.java: Update.
+	* StepCommand.java: Update.
+	* RunCommand.java: Update.
+	* StackCommands.java: Update.
+	* QuitCommand.java: Update.
+	* RegsCommand.java: Update.
+	* PtypeCommand.java: Update.
+	* PlocationCommand.java: Update.
+	* PeekCommand.java: Update.
+	* LoadCommand.java: Update.
+	* ListCommand.java: Update.
+	* HaltCommand.java: Update.
+	* GoCommand.java: Update.
+	* FocusCommand.java: Update.
+	* EvalCommands.java: Update.
+	* ExamineCommand.java: Update.
+	* DisplayCommand.java: Update.
+	* DisassembleCommand.java: Update.
+	* DetachCommand.java: Update.
+	* CoreCommand.java: Update.
+	* DefsetCommand.java: Update.
+	* DebuginfoCommand.java: Update.
+	* AttachCommand.java: Update.
+	* ActionPointCommands.java: Update.
+	* BreakpointCommand.java: Update.
+	* DbgVariableCommands.java: Update.
+
 2007-11-14  Mark Wielaard  <mwielaard@redhat.com>
 
 	* CLI.java (addMessage): New variant that takes a possible
diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java
index 943a1a7..aa55f78 100644
--- a/frysk-core/frysk/hpd/Command.java
+++ b/frysk-core/frysk/hpd/Command.java
@@ -71,9 +71,7 @@ public abstract class Command {
      * "foobar" can be inserted.  Rreturn -1 when completion isn't
      * supported.
      */
-    int complete(CLI cli, Input buffer, int cursor, List candidates) {
-	return -1;
-    }
+    abstract int complete(CLI cli, Input buffer, int cursor, List candidates);
 
     /**
      * Print a full "help" message (syntax and then details) for this
diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java
index ccf172e..9f07922 100644
--- a/frysk-core/frysk/hpd/CompletionFactory.java
+++ b/frysk-core/frysk/hpd/CompletionFactory.java
@@ -90,15 +90,17 @@ class CompletionFactory {
 	}
     }
 
-    static int completeExpression(CLI cli, PTSet ptset,
-				  String incomplete, int base,
+    static int completeExpression(CLI cli, Input input, int cursor,
 				  List candidates) {
+	PTSet ptset = cli.getCommandPTSet(input);
 	Iterator i = ptset.getTasks();
 	if (!i.hasNext()) {
 	    // Should still be able to complete $variables.
 	    return -1;
 	} else {
 	    int newCursor = -1;
+	    String incomplete = input.stringValue();
+	    int base = input.base(cursor);
 	    do {
 		Task task = (Task)i.next();
 		DebugInfoFrame frame = cli.getTaskFrame(task);
@@ -114,13 +116,49 @@ class CompletionFactory {
 	    // System.out.println("base=" + base);
 	    // System.out.println("candidates=" + candidates);
 	    // System.out.println("newCursor=" + newCursor);
-	    return newCursor;
+	    return input.cursor(newCursor, cursor);
 	}
     }
 
-    static int completeFileName(CLI cli, String incomplete, int base,
+    static int completeFileName(CLI cli, Input input, int cursor,
 				List candidates) {
-	return new FileNameCompletor().complete(incomplete, base,
-						candidates);
+	// System.out.println("input.stringValue()=" + input.stringValue());
+	// System.out.println("cursor=" + cursor);
+	// System.out.println("input.size()=" + input.size());
+	if (input.size() == 0) {
+	    int newBase
+		= new FileNameCompletor().complete("", 0, candidates);
+	    if (newBase < 0)
+		return -1;
+	    else
+		return newBase + cursor;
+	} else {
+	    // Need to find the parameter that contains the cursor and
+	    // have that completed.
+	    Input.Token token = null;
+	    for (int i = 0; i < input.size(); i++) {
+		Input.Token t = input.token(i);
+		// System.out.println("token " + i + "=" + t);
+		if (cursor >= t.start && cursor <= t.end) {
+		    token = t;
+		    break;
+		}
+	    }
+	    if (token == null)
+		return -1;
+	    Input.Token token0 = input.token(0);
+	    String incomplete
+		= input.stringValue().substring(token.start - token0.start,
+						token.end - token0.start);
+	    // System.out.println("incomplete=" + incomplete);
+	    int newBase
+		= new FileNameCompletor().complete(incomplete,
+						   cursor - token.start,
+						   candidates);
+	    if (newBase < 0)
+		return -1;
+	    else
+		return newBase + token.start;
+	}
     }
 }
diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java
index 0ffefaf..e043aa1 100644
--- a/frysk-core/frysk/hpd/CoreCommand.java
+++ b/frysk-core/frysk/hpd/CoreCommand.java
@@ -169,9 +169,8 @@ public class CoreCommand extends ParameterizedCommand {
 			exeFile = new File(cli.parameter(1));
 	}
 
-    int complete(CLI cli, PTSet set, String incomplete, int base,
-		 List completions) {
-	return CompletionFactory.completeFileName(cli, incomplete, base,
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeFileName(cli, input, cursor,
 						  completions);
     }
 }
diff --git a/frysk-core/frysk/hpd/DbgVariableCommands.java b/frysk-core/frysk/hpd/DbgVariableCommands.java
index e8c90d2..bfee9a2 100644
--- a/frysk-core/frysk/hpd/DbgVariableCommands.java
+++ b/frysk-core/frysk/hpd/DbgVariableCommands.java
@@ -48,9 +48,11 @@ abstract class DbgVariableCommands extends ParameterizedCommand {
 	super(name, description, syntax, full);
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
-	return cli.dbgvars.complete(incomplete, base, completions);
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	int base = input.base(cursor);
+	String incomplete = input.stringValue();
+	int newBase = cli.dbgvars.complete(incomplete, base, completions);
+	return input.cursor(newBase, cursor);
     }
 
     static class Set extends DbgVariableCommands {
diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java
index bab4d3d..9d6b27d 100644
--- a/frysk-core/frysk/hpd/DebuginfoCommand.java
+++ b/frysk-core/frysk/hpd/DebuginfoCommand.java
@@ -53,8 +53,7 @@ class DebuginfoCommand extends ParameterizedCommand {
 	      + "for a process and its shared modules.");
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 
diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java
index e3759d3..24764ac 100644
--- a/frysk-core/frysk/hpd/DefsetCommand.java
+++ b/frysk-core/frysk/hpd/DefsetCommand.java
@@ -78,8 +78,7 @@ class DefsetCommand extends ParameterizedCommand {
 	    }
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/DetachCommand.java b/frysk-core/frysk/hpd/DetachCommand.java
index acf26f0..3fa0092 100644
--- a/frysk-core/frysk/hpd/DetachCommand.java
+++ b/frysk-core/frysk/hpd/DetachCommand.java
@@ -85,8 +85,7 @@ class DetachCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java
index 4c303e4..0740d09 100644
--- a/frysk-core/frysk/hpd/DisassembleCommand.java
+++ b/frysk-core/frysk/hpd/DisassembleCommand.java
@@ -294,10 +294,9 @@ public class DisassembleCommand extends ParameterizedCommand {
     }
 
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
-	return CompletionFactory.completeExpression(cli, ptset, incomplete,
-						    base, completions);
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeExpression(cli, input, cursor,
+						    completions);
     }
 
 }
diff --git a/frysk-core/frysk/hpd/DisplayCommand.java b/frysk-core/frysk/hpd/DisplayCommand.java
index 391385a..ae84429 100644
--- a/frysk-core/frysk/hpd/DisplayCommand.java
+++ b/frysk-core/frysk/hpd/DisplayCommand.java
@@ -144,9 +144,8 @@ public class DisplayCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
-	return CompletionFactory.completeExpression(cli, ptset, incomplete,
-						    base, completions);
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeExpression(cli, input, cursor,
+						    completions);
     }
 }
diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java
index d9679db..ff1d46c 100644
--- a/frysk-core/frysk/hpd/EvalCommands.java
+++ b/frysk-core/frysk/hpd/EvalCommands.java
@@ -73,10 +73,9 @@ abstract class EvalCommands extends ParameterizedCommand {
 	    });
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List candidates) {
-	return CompletionFactory.completeExpression(cli, ptset, incomplete,
-						    base, candidates);
+    int complete(CLI cli, Input input, int cursor, List candidates) {
+	return CompletionFactory.completeExpression(cli, input, cursor,
+						    candidates);
     }
 
     static private void eval(CLI cli, PTSet ptset, String expression,
diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java
index 348f6ab..8372bb0 100644
--- a/frysk-core/frysk/hpd/ExamineCommand.java
+++ b/frysk-core/frysk/hpd/ExamineCommand.java
@@ -78,9 +78,8 @@ public class ExamineCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
-	return CompletionFactory.completeExpression(cli, ptset, incomplete,
-						    base, completions);
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeExpression(cli, input, cursor,
+						    completions);
     }
 }
diff --git a/frysk-core/frysk/hpd/FocusCommand.java b/frysk-core/frysk/hpd/FocusCommand.java
index 8d2bbe9..e265c23 100644
--- a/frysk-core/frysk/hpd/FocusCommand.java
+++ b/frysk-core/frysk/hpd/FocusCommand.java
@@ -77,8 +77,7 @@ class FocusCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/GoCommand.java b/frysk-core/frysk/hpd/GoCommand.java
index 4bbcdbe..effc63d 100644
--- a/frysk-core/frysk/hpd/GoCommand.java
+++ b/frysk-core/frysk/hpd/GoCommand.java
@@ -70,8 +70,7 @@ class GoCommand extends ParameterizedCommand {
 	    cli.addMessage("Not attached to any process", Message.TYPE_ERROR);
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/HaltCommand.java b/frysk-core/frysk/hpd/HaltCommand.java
index 72cc051..7ac37e6 100644
--- a/frysk-core/frysk/hpd/HaltCommand.java
+++ b/frysk-core/frysk/hpd/HaltCommand.java
@@ -71,8 +71,7 @@ class HaltCommand extends ParameterizedCommand {
 	    cli.addMessage("Not attached to any process", Message.TYPE_ERROR);
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List completions) {
+    int complete(CLI cli, Input input, int cursor, List completions) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java
index e8f450f..3e98244 100644
--- a/frysk-core/frysk/hpd/Input.java
+++ b/frysk-core/frysk/hpd/Input.java
@@ -257,4 +257,29 @@ class Input {
 	}
 	return tokens;
     }
+
+    /**
+     * Given the input "cursor", return the offset or base into
+     * stringValue() - the remaining parameters.
+     */
+    int base(int cursor) {
+	if (size() == 0)
+	    return 0;
+	else
+	    return cursor - token(0).start;
+    }
+
+    /**
+     * The reverse of base; given a base, return a corresponding
+     * cursor.
+     */
+    int cursor(int base, int cursor) {
+	if (base < 0) {
+	    return -1;
+	} else if (size() == 0) {
+	    return cursor + base;
+	} else {
+	    return base + token(0).start;
+	}
+    }
 }
diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java
index 81dbd74..e059b65 100644
--- a/frysk-core/frysk/hpd/ListCommand.java
+++ b/frysk-core/frysk/hpd/ListCommand.java
@@ -204,8 +204,7 @@ class ListCommand extends ParameterizedCommand {
 
     }
 
-    int complete(CLI cli, PTSet ptset, String incomplete, int base,
-		 List candidates) {
+    int complete(CLI cli, Input input, int cursor, List candidates) {
 	return -1;
     }
 }
diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java
index 7117833..c24d815 100644
--- a/frysk-core/frysk/hpd/LoadCommand.java
+++ b/frysk-core/frysk/hpd/LoadCommand.java
@@ -100,9 +100,8 @@ public class LoadCommand extends ParameterizedCommand {
     }
 
 
-    int complete(CLI cli, PTSet set, String incomplete, int base,
-		 List completions) {
-	return CompletionFactory.completeFileName(cli, incomplete, base,
+    int complete(CLI cli, Input input, int cursor, List completions) {
+	return CompletionFactory.completeFileName(cli, input, cursor,
 						  completions);
     }
 }
diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java
index 12fe094..91329ea 100644
--- a/frysk-core/frysk/hpd/ParameterizedCommand.java
+++ b/frysk-core/frysk/hpd/ParameterizedCommand.java
@@ -42,7 +42,6 @@ package frysk.hpd;
 import java.util.TreeMap;
 import java.util.Iterator;
 import java.util.SortedMap;
-import java.util.List;
 
 abstract class ParameterizedCommand extends Command {
     private final SortedMap longOptions = new TreeMap();
@@ -166,28 +165,4 @@ abstract class ParameterizedCommand extends Command {
      * Interpret command, using options.
      */
     abstract void interpret(CLI cli, Input input, Object options);
-
-    /**
-     * Complete the input.
-     */
-    final int complete(CLI cli, Input input, int cursor, List candidates) {
-	int start;
-	if (input.size() == 0)
-	    start = cursor;
-	else
-	    start = input.token(0).start;
-	int pos = complete(cli, cli.getCommandPTSet(input),
-			   input.stringValue(), cursor - start, candidates);
-	if (pos >= 0) {
-	    return pos + start;
-	} else {
-	    return -1;


hooks/post-receive
--
frysk system monitor/debugger



More information about the Frysk-cvs mailing list