# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: lex@onm.su-20081204204905-1ag0mk8z09sliu9a
# target_branch: ../main
# testament_sha1: ae758cf945dc139dac69446fc2a68d34a20d6793
# timestamp: 2008-12-04 23:28:14 +0200
# base_revision_id: jamie@jantrid.net-20081204121745-tnq6be9mor0jwmfl
# 
# Begin patch
=== modified file 'source/speech.py'
--- source/speech.py	2008-11-20 09:04:51 +0000
+++ source/speech.py	2008-12-04 20:49:05 +0000
@@ -284,6 +284,12 @@
 	if text and not text.isspace():
 		getSynth().speakText(text,index=index)
 
+def speakSelectionChangeHelper(text,unselected=False):
+	if len(text) < 512:
+		speakMessage(text)
+	else:
+		speakMessage(_("Selected %d characters") % len(text) if not unselected else _("unselected %d characters")%len(text))
+
 def speakSelectionChange(oldInfo,newInfo,speakSelected=True,speakUnselected=True,generalize=False):
 	"""Speaks a change in selection, either selected or unselected text.
 	@param oldInfo: a TextInfo instance representing what the selection was before
@@ -333,25 +339,25 @@
 			for text in selectedTextList:
 				if  len(text)==1:
 					text=processSymbol(text)
-				speakMessage(_("selecting %s")%text)
+				speakSelectionChangeHelper(_("selecting %s")%text)
 		elif len(selectedTextList)>0:
 			text=newInfo.text
 			if len(text)==1:
 				text=processSymbol(text)
-			speakMessage(_("selected %s")%text)
+			speakSelectionChangeHelper(_("selected %s")%text)
 	if speakUnselected:
 		if not generalize:
 			for text in unselectedTextList:
 				if  len(text)==1:
 					text=processSymbol(text)
-				speakMessage(_("unselecting %s")%text)
+				speakSelectionChangeHelper(_("unselecting %s")%text,True)
 		elif len(unselectedTextList)>0:
 			speakMessage(_("selection removed"))
 			if not newInfo.isCollapsed:
 				text=newInfo.text
 				if len(text)==1:
 					text=processSymbol(text)
-				speakMessage(_("selected %s")%text)
+				speakSelectionChangeHelper(_("selected %s")%text)
 
 def speakTypedCharacters(ch):
 	global curWordChars;

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWRcI8kEAAezfgEAyU3f//3tC
DAC////wUASM1D0M51G2dl3WCSTSEymJspo9Jk9T1MmEDRoGgA0CSQCGiZU/SZNpJow0NIANAaBo
JEiGoDSbTSninlNDaTJ6h6TammnqGjQHMAmmATIYAAmCYAAAJJFPRpPQobJqYEAA9TQADQGjAoCZ
hlgCIcNdg6PTd1kscMquDKhslUzxBQyPbG1znFmzcYHXAuJ3sebJk0ndhY2jn4C/U7B5WZmNylHR
7YcqdeDfPot0/T+eOKq8xuu7m6v2Yq56KUiK+e+JO+2kqR3Wav3OEXTYdjzQp3W/mFCjEq98OE3e
zpkW6/Rwe0Zi4oJdOyXxaGmx/CgzawYecfgU9gSjcpXXqbU2OGQz56nnFZCcFRdnSuRZrzzU4c8Y
ZQUg/SW3Ajux7EYxEaVxT+sFlctR71BBYwmFcrS1I7DyFxL5GZvUeQWKCeDKW+9QtegitIYTqeB5
jJZdtplepDmMxSV/bid/Va+3bYIcIgJlrTOw8nanmBjHTqdF5ItLlBEGMrOxR+y03SonoiUTCeOc
KrbLMIMVymd0pCvHl44jHDdY1BWB4QdInQbA9Rgy9pMYurqbXcZF17UN9abnYbFh/lQxM1C61w0U
+uxOzM53K0sCmq4+VLh4hiSwVj7zmFV6xo8WSYsxM3naKRoTXPmbFU0UxNXj1wi0tehvcMoajNWh
Zau0z8lwYuTP7bn2UbiXuifBkD9fUaccqoK4iV+0mruxKqVrG3+cAo7tJUihopAo5d4Q9FeFMHb8
40tYLKokwxoNBvnQu2fMWcgUfnZaKkJAeRBq+sJuV2qnvocWKVeOmIUida751GIuhWmWpaUy7C7m
zgRLzAaCZcBQWPJFapLVqyZmgDohS4c9J4MJd4xrtUJVfKpIk6dNIh/lSqYln4xtmXK1tmHWw5ZC
bQspO+ordBTcllJCRYrMpxYEQYJHDag0D1EJgDVFFrQG3Iho0x5bAGE34jf17cyjsBkYUYd2qTBg
CO1fcS/jIsoVIMCW3ISpmiXG9mM60l50EG5TKjpMBz6rcizwHjBvYxXRANDR56r2K8IbhOFz7i39
vPeSbPjsa/ggvpEFKc8+YrUR9oXXPOt8LQgJgYdXyoHGKrIKdu/GalPwLINEVyfnAuBuOMsdSkaR
5vunANkDub81libvkKtxMUCe3HX1ZgS6FxoXc+RotIrdoKnuUIk3Qxc5yc5CqZPiEPwIKA4vaROA
8uBuZRJAnqZTKeAmUMm3DRXbM7IWzEPalEmRxLAG8thBVXKoXlqhnz0TFlmNRJ0KlFwTv5XWWDaB
etvKixMnA4OqxdcBXW8K1ZPtnrWJOKBMUxnCpRJPtlr15oi7wskdga7J0G7A04GQ5htxnN9Zq2MR
EBsK5BUQV45ticayl20jO04aUnPbkPtdqhBQHqvsL5mOkdaVzDHx1ppuFhyxlxNoPKAObiqhJLJM
osqWPIpPF1v04FXrZf4usivHVettjARViks4CR0RdOccZD2e67wr+BevTWV/4u5IpwoSAuEeSCA=

