OSDN Git Service

ハッシュタグ管理画面で新規→キャンセルで例外発生するバグ修正
authorkiri_feather <kiri_feather@users.sourceforge.jp>
Fri, 12 Feb 2010 16:26:26 +0000 (16:26 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:11:01 +0000 (23:11 +0900)
検索タブの詳細表示にてhtmlエスケープが不十分な問題を修正

git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@98 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/HashtagManage.vb
Tween/Resources/ChangeLog.txt
Tween/Twitter.vb

index 9bf1f2c..e6e9393 100644 (file)
@@ -237,7 +237,11 @@ Public Class HashtagManage
     End Sub
 
     Private Sub PermCancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PermCancel_Button.Click
-        Me.UseHashText.Text = Me.HistoryHashList.Items(Me.HistoryHashList.SelectedIndices(0)).ToString
+        If Me.HistoryHashList.Items.Count > 0 Then
+            Me.UseHashText.Text = Me.HistoryHashList.Items(Me.HistoryHashList.SelectedIndices(0)).ToString
+        Else
+            Me.UseHashText.Text = ""
+        End If
 
         ChangeMode(False)
     End Sub
index 0477680..9176ba6 100644 (file)
@@ -1,5 +1,8 @@
 更新履歴
 
+==== Ver 0.8.6.0(Unreleased)
+ * 検索タブでhtmlのエスケープが不十分だった問題を修正
+ * ハッシュタグ管理画面で、リストが空の時に「新規」→「キャンセル」で例外が発生するバグ修正
 ==== Ver 0.8.5.0(2010/2/12)
  * 検索タブでFav操作すると、データ不整合で例外が発生するバグ修正
  * 1秒ごとにネットワークの死活チェックを行うバグ修正
index ab29704..19bbba9 100644 (file)
@@ -3423,7 +3423,7 @@ Public Module Twitter
                 post.IsMe = post.Name.ToLower.Equals(_uid)
 
                 'HTMLに整形
-                post.OriginalData = CreateHtmlAnchor(post.Data, post.ReplyToList)
+                post.OriginalData = CreateHtmlAnchor(HttpUtility.HtmlEncode(post.Data), post.ReplyToList)
                 post.Data = HttpUtility.HtmlDecode(post.Data)
                 'Source整形
                 If post.Source.StartsWith("<") Then
@@ -3797,9 +3797,8 @@ Public Module Twitter
     End Function
 
     Private Function CreateHtmlAnchor(ByVal Text As String, ByVal AtList As List(Of String)) As String
-        Dim retStr As String = HttpUtility.HtmlEncode(Text)     '要検証(デコードされて取得されるので再エンコード)
-        '半角スペースを置換(Thanks @anis774)
-        retStr = retStr.Replace(" ", "&nbsp;")                  'HttpUtility.HtmlEncode()ではスペースが処理されない為
+        'Dim retStr As String = HttpUtility.HtmlEncode(Text)     '要検証(デコードされて取得されるので再エンコード)
+        Dim retStr As String = HttpUtility.HtmlDecode(Text)
 
         'uriの正規表現
         Dim rgUrl As Regex = New Regex("(?<![0-9A-Za-z])(?:https?|shttp|ftps?)://(?:(?:[-_.!~*'()a-zA-Z0-9;:&=+$,]|%[0-9A-Fa-f" + _
@@ -3812,7 +3811,15 @@ Public Module Twitter
                          "*)?(?:\?(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])" + _
                          "*)?(?:#(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])*)?")
         '絶対パス表現のUriをリンクに置換
-        retStr = rgUrl.Replace(Text, "<a href=""$&"">$&</a>")
+        'retStr = rgUrl.Replace(retStr, "<a href=""$&"">$&</a>")
+        For Each mt As Match In rgUrl.Matches(retStr)
+            Text.Replace(mt.Result("$&"), "<a href=""" + mt.Result("$&") + """>" + mt.Result("$&") + "</a>")
+        Next
+        retStr = Text
+
+        '半角スペースを置換(Thanks @anis774)
+        retStr = retStr.Replace(" ", "&nbsp;")                  'HttpUtility.HtmlEncode()ではスペースが処理されない為
+
         '@返信を抽出し、@先リスト作成
         'Dim rg As New Regex("(^|[ -/:-@[-^`{-~])@([a-zA-Z0-9_]{1,20}/[a-zA-Z0-9_\-]{1,24}[a-zA-Z0-9_])")
         Dim rg As New Regex("(^|[^a-zA-Z0-9_])[@@]([a-zA-Z0-9_]{1,20}/[a-zA-Z0-9_\-]{1,24}[a-zA-Z0-9_])")