Sfoglia il codice sorgente

put a unique end of stream marker in the session dictionary

Brian Gough 11 anni fa
parent
commit
b684ed0837
1 ha cambiato i file con 7 aggiunte e 1 eliminazioni
  1. 7 1
      services/spelling/app/coffee/ASpellWorker.coffee

+ 7 - 1
services/spelling/app/coffee/ASpellWorker.coffee

@@ -45,6 +45,7 @@ class ASpellWorker
 		# receive the end of data marker
 		# receive the end of data marker
 		@state = 'busy'
 		@state = 'busy'
 		@callback = callback
 		@callback = callback
+		@setEndOfStreamMarker()
 		@setTerseMode()
 		@setTerseMode()
 		@write(words)
 		@write(words)
 		@flush()
 		@flush()
@@ -60,7 +61,7 @@ class ASpellWorker
 	flush: () ->
 	flush: () ->
 		# get aspell to send an end of data marker "*" when ready
 		# get aspell to send an end of data marker "*" when ready
 		@sendCommand("%")		# take the aspell pipe out of terse mode so we can look for a '*'
 		@sendCommand("%")		# take the aspell pipe out of terse mode so we can look for a '*'
-		@sendCommand("end") # send a valid word ("end") so it will generate a '*'
+		@sendCommand("^ENDOFSTREAMMARKER") # send our marker which will generate a '*'
 		@sendCommand("!")		# go back into terse mode
 		@sendCommand("!")		# go back into terse mode
 
 
 	shutdown: (reason) ->
 	shutdown: (reason) ->
@@ -68,6 +69,11 @@ class ASpellWorker
 		@state = "closing"
 		@state = "closing"
 		@pipe.stdin.end()
 		@pipe.stdin.end()
 
 
+	setEndOfStreamMarker: () ->
+		return if @setup
+		@sendCommand("@ENDOFSTREAMMARKER") # make this string a valid word
+		@setup = true
+
 	setTerseMode: () ->
 	setTerseMode: () ->
 		@sendCommand("!")
 		@sendCommand("!")