src/scripttools/debugging/scripts/commands/clear.qs
changeset 0 1918ee327afb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/scripttools/debugging/scripts/commands/clear.qs	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,59 @@
+name = "clear";
+
+group = "breakpoints";
+
+shortDescription = "Clear breakpoint at specified location";
+
+longDescription = "clear <file>:<line> : Clear breakpoints at the given location.";
+longDescription += "\nclear <line> : Clear breakpoints at the given line of the current script.";
+
+seeAlso = [ "delete" ];
+
+argumentTypes = [ "script-filename" ];
+
+function execute() {
+    if (arguments.length == 0) {
+        message("Missing argument.");
+        return;
+    }
+    var arg = arguments[0];
+    var colonIndex = arg.lastIndexOf(':');
+    if (colonIndex == -1) {
+        lineNumber = parseInt(arg);
+        if (isNaN(lineNumber)) {
+            message("Breakpoint location must be of the form <file>:<line> or <line>.");
+            return;
+        }
+        var sid = getCurrentScriptId();
+        if (sid == -1) {
+            message("No script.");
+            return;
+        }
+        scriptId = sid;
+    } else {
+        fileName = arg.slice(0, colonIndex);
+        lineNumber = parseInt(arg.slice(colonIndex+1));
+    }
+    scheduleGetBreakpoints();
+    state = 1;
+}
+
+function handleResponse(resp) {
+    if (state == 1) {
+        var breakpoints = resp.result;
+        if (breakpoints == undefined)
+            return;
+        for (var id in breakpoints) {
+            var data = breakpoints[id];
+            if ((data.lineNumber == lineNumber)
+                && (data.fileName == fileName)
+                    || ((data.scriptId != -1) && (data.scriptId = scriptId))) {
+                scheduleDeleteBreakpoint(id);
+                message("Deleted breakpoint " + id + ".");
+            }
+        }
+        state = 2;
+    } else if (state == 2) {
+
+    }
+}