[SCM] master: Complete options.

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


The branch, master has been updated
       via  c51aa91611f6b182762c6e81f5684650ac0082ef (commit)
      from  7f9bb90dbeec8a3db40e22541347fdd9730e304f (commit)

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

- Log -----------------------------------------------------------------
commit c51aa91611f6b182762c6e81f5684650ac0082ef
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed Nov 14 14:18:07 2007 -0500

    Complete options.
    
    frysk-core/frysk/hpd/ChangeLog
    2007-11-14  Andrew Cagney  <cagney@redhat.com>
    
    	* ParameterizedCommand.java (complete(CLI,Input,int,List)): New.
    	(completer(CLI,Input,int,List)): New.
    	* Input.java (incompleteToken(int)): New.
    	(base(int)): Delete.
    	(Token.absolute(int)): New.
    	(start(int,int)): Delete.
    	* CompletionFactory.java: Use Input.incompleteToken(int).
    	(completeFocusedExpression): Delete.
    	* WhichsetsCommand.java: Ditto.
    	* AliasCommands.java: Update.
    	* ActionPointCommands.java: Update.
    	* AttachCommand.java: Update.
    	* CoreCommand.java: Update.
    	* DbgVariableCommands.java: Update.
    	* DebuginfoCommand.java: Update.
    	* DefsetCommand.java: Update.
    	* DetachCommand.java: Update.
    	* DisassembleCommand.java: Update.
    	* DisplayCommand.java: Update.
    	* TestParameterizedCommand.java: Ditto.
    	* StepNextiCommand.java: Ditto.
    	* StepNextCommand.java: Ditto.
    	* StepInstructionCommand.java: Ditto.
    	* StepFinishCommand.java: Ditto.
    	* StepCommand.java: Ditto.
    	* RegsCommand.java: Ditto.
    	* StackCommands.java: Ditto.
    	* QuitCommand.java: Ditto.
    	* PtypeCommand.java: Ditto.
    	* PlocationCommand.java: Ditto.
    	* PeekCommand.java: Ditto.
    	* LoadCommand.java: Ditto.
    	* ListCommand.java: Ditto.
    	* HaltCommand.java: Ditto.
    	* GoCommand.java: Update.
    	* FocusCommand.java: Update.
    	* ExamineCommand.java: Update.
    	* EvalCommands.java: Update.
    	* WhatCommand.java: Ditto.
    	* ViewsetCommand.java: Ditto.
    	* UndefsetCommand.java: Ditto.

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

Summary of changes:
 frysk-core/frysk/hpd/ActionPointCommands.java      |    2 +-
 frysk-core/frysk/hpd/AliasCommands.java            |    8 +-
 frysk-core/frysk/hpd/AttachCommand.java            |    3 +-
 frysk-core/frysk/hpd/BreakpointCommand.java        |    2 +-
 frysk-core/frysk/hpd/ChangeLog                     |   42 +++++++++
 frysk-core/frysk/hpd/CompletionFactory.java        |   89 +++++---------------
 frysk-core/frysk/hpd/CoreCommand.java              |    2 +-
 frysk-core/frysk/hpd/DbgVariableCommands.java      |   11 ++-
 frysk-core/frysk/hpd/DebuginfoCommand.java         |    2 +-
 frysk-core/frysk/hpd/DefsetCommand.java            |    2 +-
 frysk-core/frysk/hpd/DetachCommand.java            |    2 +-
 frysk-core/frysk/hpd/DisassembleCommand.java       |    2 +-
 frysk-core/frysk/hpd/DisplayCommand.java           |    2 +-
 frysk-core/frysk/hpd/EvalCommands.java             |    2 +-
 frysk-core/frysk/hpd/ExamineCommand.java           |    2 +-
 frysk-core/frysk/hpd/FocusCommand.java             |    2 +-
 frysk-core/frysk/hpd/GoCommand.java                |    2 +-
 frysk-core/frysk/hpd/HaltCommand.java              |    2 +-
 frysk-core/frysk/hpd/Input.java                    |   52 +++++++-----
 frysk-core/frysk/hpd/ListCommand.java              |    2 +-
 frysk-core/frysk/hpd/LoadCommand.java              |    2 +-
 frysk-core/frysk/hpd/ParameterizedCommand.java     |   32 +++++++
 frysk-core/frysk/hpd/PeekCommand.java              |    2 +-
 frysk-core/frysk/hpd/PlocationCommand.java         |    2 +-
 frysk-core/frysk/hpd/PtypeCommand.java             |    2 +-
 frysk-core/frysk/hpd/QuitCommand.java              |    2 +-
 frysk-core/frysk/hpd/RegsCommand.java              |    2 +-
 frysk-core/frysk/hpd/StackCommands.java            |    2 +-
 frysk-core/frysk/hpd/StepCommand.java              |    2 +-
 frysk-core/frysk/hpd/StepFinishCommand.java        |    2 +-
 frysk-core/frysk/hpd/StepInstructionCommand.java   |    2 +-
 frysk-core/frysk/hpd/StepNextCommand.java          |    2 +-
 frysk-core/frysk/hpd/StepNextiCommand.java         |    2 +-
 frysk-core/frysk/hpd/TestParameterizedCommand.java |    4 +-
 frysk-core/frysk/hpd/UndefsetCommand.java          |    2 +-
 frysk-core/frysk/hpd/ViewsetCommand.java           |    2 +-
 frysk-core/frysk/hpd/WhatCommand.java              |    2 +-
 frysk-core/frysk/hpd/WhichsetsCommand.java         |    2 +-
 38 files changed, 170 insertions(+), 131 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/hpd/ActionPointCommands.java b/frysk-core/frysk/hpd/ActionPointCommands.java
index 217970a..7c954c6 100644
--- a/frysk-core/frysk/hpd/ActionPointCommands.java
+++ b/frysk-core/frysk/hpd/ActionPointCommands.java
@@ -121,7 +121,7 @@ abstract class ActionPointCommands extends ParameterizedCommand {
 	    });
     }
 
-    int complete(CLI cli, Input incomplete, int base, List alternatives) {
+    int completer(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 84fdb56..d099c85 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, Input input, int cursor, List completions) {
-	String incomplete = input.stringValue();
+    int completer(CLI cli, Input input, int cursor, List completions) {
+	Input.Token incomplete = input.incompleteToken(cursor);
 	for (Iterator i = cli.aliases.keySet().iterator(); i.hasNext(); ) {
 	    String key = (String)i.next();
-	    if (key.startsWith(incomplete))
+	    if (key.startsWith(incomplete.value))
 		completions.add(key);
 	}
 	CompletionFactory.padSingleCandidate(completions);
-	return input.cursor(0, cursor);
+	return incomplete.absolute(0);
     }
 
     AliasCommands(String name, String description, String syntax,
diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java
index 489993e..69c2ba2 100644
--- a/frysk-core/frysk/hpd/AttachCommand.java
+++ b/frysk-core/frysk/hpd/AttachCommand.java
@@ -104,8 +104,7 @@ class AttachCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, Input input, int base,
-		 List completions) {
+    int completer(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 13b379d..fcc95b8 100644
--- a/frysk-core/frysk/hpd/BreakpointCommand.java
+++ b/frysk-core/frysk/hpd/BreakpointCommand.java
@@ -186,7 +186,7 @@ class BreakpointCommand extends ParameterizedCommand {
 	outWriter.println();
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 da41ea0..5b8d78f 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,5 +1,47 @@
 2007-11-14  Andrew Cagney  <cagney@redhat.com>
 
+	* ParameterizedCommand.java (complete(CLI,Input,int,List)): New.
+	(completer(CLI,Input,int,List)): New.
+	* Input.java (incompleteToken(int)): New.
+	(base(int)): Delete.
+	(Token.absolute(int)): New.
+	(start(int,int)): Delete.
+	* CompletionFactory.java: Use Input.incompleteToken(int).
+	(completeFocusedExpression): Delete.
+	* WhichsetsCommand.java: Ditto.
+	* AliasCommands.java: Update.
+	* ActionPointCommands.java: Update.
+	* AttachCommand.java: Update.
+	* CoreCommand.java: Update.
+	* DbgVariableCommands.java: Update.
+	* DebuginfoCommand.java: Update.
+	* DefsetCommand.java: Update.
+	* DetachCommand.java: Update.
+	* DisassembleCommand.java: Update.
+	* DisplayCommand.java: Update.
+	* TestParameterizedCommand.java: Ditto.
+	* StepNextiCommand.java: Ditto.
+	* StepNextCommand.java: Ditto.
+	* StepInstructionCommand.java: Ditto.
+	* StepFinishCommand.java: Ditto.
+	* StepCommand.java: Ditto.
+	* RegsCommand.java: Ditto.
+	* StackCommands.java: Ditto.
+	* QuitCommand.java: Ditto.
+	* PtypeCommand.java: Ditto.
+	* PlocationCommand.java: Ditto.
+	* PeekCommand.java: Ditto.
+	* LoadCommand.java: Ditto.
+	* ListCommand.java: Ditto.
+	* HaltCommand.java: Ditto.
+	* GoCommand.java: Update.
+	* FocusCommand.java: Update.
+	* ExamineCommand.java: Update.
+	* EvalCommands.java: Update.
+	* WhatCommand.java: Ditto.
+	* ViewsetCommand.java: Ditto.
+	* UndefsetCommand.java: Ditto.
+
 	* TestParameterizedCommand.java (testShortAmbigiousOption()): New.
 	(testShortUnambigiousOption()): New.
 	* ParameterizedCommand.java: Allow shortened form of options.
diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java
index 9f07922..9a5e5f7 100644
--- a/frysk-core/frysk/hpd/CompletionFactory.java
+++ b/frysk-core/frysk/hpd/CompletionFactory.java
@@ -57,39 +57,6 @@ class CompletionFactory {
 	}
     }
 
-    static int completeFocusedExpression(CLI cli, Input input, int cursor,
-					 List candidates) {
-        PTSet ptset = cli.getCommandPTSet(input);
-	String incomplete = input.stringValue();
-	int start = input.token(0).start;
-	Iterator i = ptset.getTasks();
-	if (!i.hasNext()) {
-	    // Should still be able to complete $variables.
-	    return -1;
-	} else {
-	    int newCursor = -1;
-	    do {
-		Task task = (Task)i.next();
-		DebugInfoFrame frame = cli.getTaskFrame(task);
-		DebugInfo debugInfo = cli.getTaskDebugInfo(task);
-		int tmp = debugInfo.complete(frame, incomplete,
-					     cursor - start, candidates);
-		if (tmp >= 0)
-		    newCursor = tmp;
-	    } while (i.hasNext());
-	    // If only one candidate, pad out with a space.
-	    padSingleCandidate(candidates);
-	    // System.out.println("start=" + start);
-	    // System.out.println("cursor=" + cursor);
-	    // System.out.println("candidates=" + candidates);
-	    // System.out.println("newCursor=" + newCursor);
-	    if (newCursor >= 0)
-		return newCursor + start;
-	    else
-		return -1;
-	}
-    }
-
     static int completeExpression(CLI cli, Input input, int cursor,
 				  List candidates) {
 	PTSet ptset = cli.getCommandPTSet(input);
@@ -98,25 +65,32 @@ class CompletionFactory {
 	    // Should still be able to complete $variables.
 	    return -1;
 	} else {
-	    int newCursor = -1;
+	    int newOffset = -1;
 	    String incomplete = input.stringValue();
-	    int base = input.base(cursor);
+	    int start;
+	    if (input.size() == 0)
+		start = cursor;
+	    else
+		start = input.token(0).start;
 	    do {
 		Task task = (Task)i.next();
 		DebugInfoFrame frame = cli.getTaskFrame(task);
 		DebugInfo debugInfo = cli.getTaskDebugInfo(task);
 		int tmp = debugInfo.complete(frame, incomplete,
-					     base, candidates);
+					     cursor - start, candidates);
 		if (tmp >= 0)
-		    newCursor = tmp;
+		    newOffset = tmp;
 	    } while (i.hasNext());
 	    // If only one candidate, pad out with a space.
 	    padSingleCandidate(candidates);
 	    // System.out.println("start=" + start);
-	    // System.out.println("base=" + base);
+	    // System.out.println("offset=" + offset);
 	    // System.out.println("candidates=" + candidates);
 	    // System.out.println("newCursor=" + newCursor);
-	    return input.cursor(newCursor, cursor);
+	    if (newOffset < 0)
+		return -1;
+	    else
+		return newOffset + start;
 	}
     }
 
@@ -126,39 +100,18 @@ class CompletionFactory {
 	// System.out.println("cursor=" + cursor);
 	// System.out.println("input.size()=" + input.size());
 	if (input.size() == 0) {
-	    int newBase
+	    int newOffset
 		= new FileNameCompletor().complete("", 0, candidates);
-	    if (newBase < 0)
+	    if (newOffset < 0)
 		return -1;
 	    else
-		return newBase + cursor;
+		return newOffset + 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;
+	    Input.Token incomplete = input.incompleteToken(cursor);
+	    int newOffset = new FileNameCompletor()
+		.complete(incomplete.value, incomplete.end - incomplete.start,
+			  candidates);
+	    return incomplete.absolute(newOffset);
 	}
     }
 }
diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java
index e043aa1..31d75b6 100644
--- a/frysk-core/frysk/hpd/CoreCommand.java
+++ b/frysk-core/frysk/hpd/CoreCommand.java
@@ -169,7 +169,7 @@ public class CoreCommand extends ParameterizedCommand {
 			exeFile = new File(cli.parameter(1));
 	}
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 bfee9a2..0145d5c 100644
--- a/frysk-core/frysk/hpd/DbgVariableCommands.java
+++ b/frysk-core/frysk/hpd/DbgVariableCommands.java
@@ -48,11 +48,12 @@ abstract class DbgVariableCommands extends ParameterizedCommand {
 	super(name, description, syntax, full);
     }
 
-    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);
+    int completer(CLI cli, Input input, int cursor, List completions) {
+	Input.Token incomplete = input.incompleteToken(cursor);
+	int newOffset = cli.dbgvars.complete(incomplete.value,
+					     incomplete.end - incomplete.start,
+					     completions);
+	return incomplete.absolute(newOffset);
     }
 
     static class Set extends DbgVariableCommands {
diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java
index 9d6b27d..687ec7c 100644
--- a/frysk-core/frysk/hpd/DebuginfoCommand.java
+++ b/frysk-core/frysk/hpd/DebuginfoCommand.java
@@ -53,7 +53,7 @@ class DebuginfoCommand extends ParameterizedCommand {
 	      + "for a process and its shared modules.");
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 24764ac..de21d8d 100644
--- a/frysk-core/frysk/hpd/DefsetCommand.java
+++ b/frysk-core/frysk/hpd/DefsetCommand.java
@@ -78,7 +78,7 @@ class DefsetCommand extends ParameterizedCommand {
 	    }
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 3fa0092..32e5140 100644
--- a/frysk-core/frysk/hpd/DetachCommand.java
+++ b/frysk-core/frysk/hpd/DetachCommand.java
@@ -85,7 +85,7 @@ class DetachCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 0740d09..8cc0eef 100644
--- a/frysk-core/frysk/hpd/DisassembleCommand.java
+++ b/frysk-core/frysk/hpd/DisassembleCommand.java
@@ -294,7 +294,7 @@ public class DisassembleCommand extends ParameterizedCommand {
     }
 
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 ae84429..5932d4e 100644
--- a/frysk-core/frysk/hpd/DisplayCommand.java
+++ b/frysk-core/frysk/hpd/DisplayCommand.java
@@ -144,7 +144,7 @@ public class DisplayCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 ff1d46c..3514cdc 100644
--- a/frysk-core/frysk/hpd/EvalCommands.java
+++ b/frysk-core/frysk/hpd/EvalCommands.java
@@ -73,7 +73,7 @@ abstract class EvalCommands extends ParameterizedCommand {
 	    });
     }
 
-    int complete(CLI cli, Input input, int cursor, List candidates) {
+    int completer(CLI cli, Input input, int cursor, List candidates) {
 	return CompletionFactory.completeExpression(cli, input, cursor,
 						    candidates);
     }
diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java
index 8372bb0..0bdb7ca 100644
--- a/frysk-core/frysk/hpd/ExamineCommand.java
+++ b/frysk-core/frysk/hpd/ExamineCommand.java
@@ -78,7 +78,7 @@ public class ExamineCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 e265c23..633c03f 100644
--- a/frysk-core/frysk/hpd/FocusCommand.java
+++ b/frysk-core/frysk/hpd/FocusCommand.java
@@ -77,7 +77,7 @@ class FocusCommand extends ParameterizedCommand {
 	}
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 effc63d..5c1cd82 100644
--- a/frysk-core/frysk/hpd/GoCommand.java
+++ b/frysk-core/frysk/hpd/GoCommand.java
@@ -70,7 +70,7 @@ class GoCommand extends ParameterizedCommand {
 	    cli.addMessage("Not attached to any process", Message.TYPE_ERROR);
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 7ac37e6..2f8dafa 100644
--- a/frysk-core/frysk/hpd/HaltCommand.java
+++ b/frysk-core/frysk/hpd/HaltCommand.java
@@ -71,7 +71,7 @@ class HaltCommand extends ParameterizedCommand {
 	    cli.addMessage("Not attached to any process", Message.TYPE_ERROR);
     }
 
-    int complete(CLI cli, Input input, int cursor, List completions) {
+    int completer(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 3e98244..80317c7 100644
--- a/frysk-core/frysk/hpd/Input.java
+++ b/frysk-core/frysk/hpd/Input.java
@@ -56,6 +56,17 @@ class Input {
 	    this.start = start;
 	    this.end = end;
 	}
+	/**
+	 * Given the OFFSET into this TOKEN, return the absolute
+	 * offset from the start of the command.
+	 */
+	int absolute(int offset) {
+	    if (offset < 0) {
+		return -1;
+	    } else {
+		return offset + start;
+	    }
+	}
 	public String toString() {
 	    return ("{" + super.toString()
 		    + ",value=" + value
@@ -259,27 +270,28 @@ class Input {
     }
 
     /**
-     * Given the input "cursor", return the offset or base into
-     * stringValue() - the remaining parameters.
+     * Return the 'incomplete' token that should be completed; note
+     * that an "incomplete" token has "end" set to the cursor position
+     * and not the end of the string.
      */
-    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;
+    Token incompleteToken(int cursor) {
+	// Need to find the parameter that contains the cursor and
+	// have that completed.
+	Token token = null;
+	for (int i = 0; i < size(); i++) {
+	    Token t = token(i);
+	    // System.out.println("token " + i + "=" + t);
+	    if (cursor >= t.start && cursor <= t.end) {
+		token = t;
+		break;
+	    }
+	    }
+	// Cursor doesn't fall within any of the arguments, assume it
+	// is in a blank area and complete blank space.
+	if (token == null) {
+	    return new Token("", cursor, cursor);
 	}
+	return new Token(fullCommand.substring(token.start, token.end),
+			 token.start, cursor);
     }
 }
diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java
index e059b65..c0dec55 100644
--- a/frysk-core/frysk/hpd/ListCommand.java
+++ b/frysk-core/frysk/hpd/ListCommand.java
@@ -204,7 +204,7 @@ class ListCommand extends ParameterizedCommand {
 
     }
 
-    int complete(CLI cli, Input input, int cursor, List candidates) {
+    int completer(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 c24d815..cbad88d 100644
--- a/frysk-core/frysk/hpd/LoadCommand.java
+++ b/frysk-core/frysk/hpd/LoadCommand.java


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



More information about the Frysk-cvs mailing list