diff --git a/fcore/normal-mode/make-normal-delete.sml b/fcore/normal-mode/make-normal-delete.sml index 2b9d6e5..6c865d5 100644 --- a/fcore/normal-mode/make-normal-delete.sml +++ b/fcore/normal-mode/make-normal-delete.sml @@ -12,7 +12,7 @@ struct let val searchString = #searchString app val buffer = LineGap.goToStart buffer - val msgs = SEARCH (buffer, searchString) :: initialMsg + val msgs = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = SearchList.buildRange (buffer, searchString, low + 1111) @@ -106,7 +106,7 @@ struct * Instead, a single character is deleted at different places. * So it doesn't make any sense to use Fn.initMsgs * which expects a range. *) - finishAfterDeletingBuffer (app, cursorIdx, buffer, time, []) + finishAfterDeletingBuffer (app, cursorIdx, buffer, time, []) else let val buffer = LineGap.goToIdx (cursorIdx, buffer) @@ -198,7 +198,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer val searchString = #searchString app - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer) val searchList = @@ -413,7 +413,7 @@ struct val buffer = LineGap.delete (0, cursorIdx, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, #searchString app) :: initialMsg + val initialMsg = SEARCH (buffer, #searchString app, time) :: initialMsg val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer) val searchList = @@ -449,7 +449,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = SearchList.buildRange (buffer, searchString, low + 1111) @@ -507,7 +507,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = @@ -539,7 +539,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = @@ -568,7 +568,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = @@ -682,7 +682,7 @@ struct val searchString = #searchString app val buffer = LineGap.goToStart buffer - val initialMsg = SEARCH (buffer, searchString) :: initialMsg + val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val searchList = diff --git a/fcore/normal-mode/normal-mode.sml b/fcore/normal-mode/normal-mode.sml index 9ee7d97..dfeca4e 100644 --- a/fcore/normal-mode/normal-mode.sml +++ b/fcore/normal-mode/normal-mode.sml @@ -39,7 +39,7 @@ struct val buffer = LineGap.insert (lineStart, indentString, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = [SEARCH (buffer, searchString)] + val initialMsg = [SEARCH (buffer, searchString, time)] in NormalDelete.finishAfterDeletingBuffer (app, cursorIdx, buffer, time, initialMsg) diff --git a/fcore/normal-mode/normal-search-mode.sml b/fcore/normal-mode/normal-search-mode.sml index ceb1873..03c3067 100644 --- a/fcore/normal-mode/normal-search-mode.sml +++ b/fcore/normal-mode/normal-search-mode.sml @@ -45,13 +45,13 @@ struct end (* save search string and tempSearchList and return to normal mode *) - fun saveSearch (app: app_type, searchString, tempSearchList) = + fun saveSearch (app: app_type, searchString, tempSearchList, time) = let val {buffer, cursorIdx, windowWidth, windowHeight, startLine, ...} = app val buffer = LineGap.goToStart buffer val searchString = EscapeString.unescape searchString - val initialMsg = [SEARCH (buffer, searchString)] + val initialMsg = [SEARCH (buffer, searchString, time)] (* move LineGap to first line displayed on screen *) val buffer = LineGap.goToLine (startLine, buffer) @@ -136,7 +136,7 @@ struct | KEY_BACKSPACE => backspace (app, searchString, tempSearchList, searchCursorIdx) | KEY_ESC => exitToNormalMode app - | KEY_ENTER => saveSearch (app, searchString, tempSearchList) + | KEY_ENTER => saveSearch (app, searchString, tempSearchList, time) | ARROW_LEFT => moveLeft (app, searchString, tempSearchList, searchCursorIdx) | ARROW_RIGHT => diff --git a/message-types/mailbox-type.sml b/message-types/mailbox-type.sml index f08bd9d..9d5619c 100644 --- a/message-types/mailbox-type.sml +++ b/message-types/mailbox-type.sml @@ -1,2 +1,2 @@ structure MailboxType = -struct datatype t = DRAW of DrawMsg.t | SEARCH of LineGap.t * string end +struct datatype t = DRAW of DrawMsg.t | SEARCH of LineGap.t * string * Time.time end diff --git a/shell/search-thread.sml b/shell/search-thread.sml index 595bb9a..dcc1d64 100644 --- a/shell/search-thread.sml +++ b/shell/search-thread.sml @@ -5,7 +5,7 @@ struct (* Prerequisite to sending message: move buffer to end. *) fun loop (searchMailbox, inputMailbox) = let - val (buffer, searchString) = Mailbox.recv searchMailbox + val (buffer, searchString, time) = Mailbox.recv searchMailbox val searchList = SearchList.build (buffer, searchString) val () = Mailbox.send (inputMailbox, InputMsg.WITH_SEARCH_LIST searchList) in diff --git a/shell/update-thread.sml b/shell/update-thread.sml index 3a56833..a4550c7 100644 --- a/shell/update-thread.sml +++ b/shell/update-thread.sml @@ -7,8 +7,8 @@ struct fun sendMsg (msg, drawMailbox, searchMailbox) = case msg of DRAW msg => Mailbox.send (drawMailbox, msg) - | SEARCH (buffer, searchString) => - Mailbox.send (searchMailbox, (buffer, searchString)) + | SEARCH (buffer, searchString, time) => + Mailbox.send (searchMailbox, (buffer, searchString, time)) fun sendMsgs (msgList, drawMailbox, searchMailbox) = case msgList of