Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
Internet
>
WWW/HTTP
>
Browsers
>
SIE
>
Ticket List/Search
>
Ticket #13394
Fork
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
Git
sie
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
FrontPage
Title index
Recent changes
Communication
Forums
List of Forums
公開討議 (9)
Mailing Lists
list of ML
sie-announce
sie-developers
News
Ticket #13394
Ticket List
Submit New Ticket
RSS
正規表現でソースをVML用に書き換える部分の修正
Open Date:
2008-08-27 05:41
Last Update:
2008-10-14 19:57
monitor
ON
OFF
Reporter:
revulo
Owner:
dhrname
Type:
パッチ報告
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
1
Details
Reply
・改行を入れて分かりやすく
・誤動作する可能性がありそうな正規表現を、より厳密なも
のに
・svg 要素と xmlns 属性は複数登場する可能性があるので、
g フラグを追加
・生成される VML がダブルクォーテーションを用いるように
変更
以前の処理だと、例えば <textPath> に対しても <text →
<div という置換が行われてしまうので、気付いた範囲でそう
いった箇所を直しています。
<script> タグの処理をどうしたいのかがよく分からなかった
ので、パッチでは <script>~</script> の範囲を除去するよ
うにしていますが、<script> の部分は除去せずに残しておい
た方が良さそうに思います。
正直、これでいいのか迷う部分も多いのですが、手始めにこ
んな感じに直していただけるとありがたいです。
Ticket History (3/11 Histories)
Show older Histories
2008-08-27 05:41
Updated by:
revulo
File
3321: sie_svgtovml_regexp.patch
is attached
2008-08-27 20:00
Updated by:
dhrname
Resolution
Update from
None
to
Accepted
Priority
Update from
5 - Medium
to
8
Comment
Reply
Logged In: YES
user_id=32883
ありがとうございます。かなり読みやすくなりそうなので、当てて
みます。
> <script> の部分は除去せずに残しておいた方が良さそうに思い
ます。
<script>タグの除去に関しては、スクリプトを実行させたくないの
で、やっています。スクリプトのエラーが起きたときに、チェック
事項を減らすことができるからです。
しかし、頻繁にエラーが発生した昔とは違って、今のSIEは比較
的、安定していますので、0.30以降で、<script>タグ除去をやめる
つもりです。
2008-08-27 20:00
Updated by:
dhrname
Owner
Update from
(None)
to
dhrname
2008-09-01 00:06
Updated by:
revulo
Comment
Reply
Logged In: YES
user_id=33975
パッチに1つバグがありました。svg 要素に属性を何も指定せず
<svg> のようになっている SVG ファイルがあったので、
.replace(/<svg(?=s|>)/g, '<v:group
style="position:relative;top:0;left:0;width:100%;height:100%
"')
としないといけませんでした。
2008-09-02 19:43
Updated by:
dhrname
Comment
Reply
Logged In: YES
user_id=32883
パッチのバグを、リビジョン464で修正しました。
2008-09-04 04:59
Updated by:
revulo
Comment
Reply
Logged In: YES
user_id=33975
すみません。前回の書き込みも¥が抜けてしまっていま
した。正しくはこうです。
.replace(/<svg(?=¥s|>)/g, ... (¥は本当は半角)
dhrname さんの方で直してくれたようですが、?= でな
く ?: を使うと、置換後の文字列の最後に $1 をつける
必要が出てきます。それよりも、その下の g 要素を
replace している行をコピペしてきて g → svg に書き
換える方が確実で良いです。
ここに半角の¥を書きこむと消されてしまうみたいです
ね。これからは気をつけるようにします。
2008-09-10 00:37
Updated by:
revulo
Comment
Reply
Logged In: YES
user_id=33975
現在の Rev.471 のコードには、属性無しの <svg> とい
うタグを変換した時に > が消えてしまうバグがありま
す。
以下のように ?: を ?= に変更して、できたら行末の空
白も削除して下さい。つまり <g> タグの処理と同じに
して欲しいです。
.replace(/<svg(?=¥s|>)/g, '<v:group
style="position:relative;top:0;left:0;width:100%;h
eight:100%"')
例によって、¥は本当は半角です。
2008-09-10 20:42
Updated by:
dhrname
Comment
Reply
Logged In: YES
user_id=32883
revuloさんへ。リビジョン472で修正しました。
2008-09-15 18:35
Updated by:
dhrname
Resolution
Update from
Accepted
to
Fixed
2008-09-27 20:29
Updated by:
dhrname
Priority
Update from
8
to
5 - Medium
2008-10-14 19:57
Updated by:
dhrname
Ticket Close date
is changed to
2008-10-14 19:57
Status
Update from
Open
to
Closed
Attachment File List (
1
)
Attachment File List
sie_svgtovml_regexp.patch
(4KB)
Edit
Add Comment
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Login
Add Comment
Preview
Submit
・誤動作する可能性がありそうな正規表現を、より厳密なも
のに
・svg 要素と xmlns 属性は複数登場する可能性があるので、
g フラグを追加
・生成される VML がダブルクォーテーションを用いるように
変更
以前の処理だと、例えば <textPath> に対しても <text →
<div という置換が行われてしまうので、気付いた範囲でそう
いった箇所を直しています。
<script> タグの処理をどうしたいのかがよく分からなかった
ので、パッチでは <script>~</script> の範囲を除去するよ
うにしていますが、<script> の部分は除去せずに残しておい
た方が良さそうに思います。
正直、これでいいのか迷う部分も多いのですが、手始めにこ
んな感じに直していただけるとありがたいです。