? shtml/bin
? shtml/dist
Index: shtml/src/com/lightdev/app/shtm/DocumentPane.java
===================================================================
RCS file: /cvsroot/simplyhtml/shtml/src/com/lightdev/app/shtm/DocumentPane.java,v
retrieving revision 1.17
diff -c -r1.17 DocumentPane.java
*** shtml/src/com/lightdev/app/shtm/DocumentPane.java	25 Jun 2007 22:03:59 -0000	1.17
--- shtml/src/com/lightdev/app/shtm/DocumentPane.java	11 Jan 2008 05:22:24 -0000
***************
*** 766,771 ****
--- 766,785 ----
  
  
    /**
+    * Filters out sensitive HTML tags if they are not meant to be 
+    *   editable by the user. Meant mainly to be used just before the text
+    *   is set to the sourceEditorpane, from setHTMLSource()
+    */
+   private String filterRestrictedHTML(String code) {
+       if(!Util.preferenceIsTrue("writeHead"))
+           code = code.replaceAll("(?si)^.*?<body.*?>\\s*(.*)</body.*$","$1")
+                      .replaceAll("(?m)^ {0,4}","");
+       return code;
+   }
+   private void setHTMLSource(String code) {
+       sourceEditorPane.setText(filterRestrictedHTML(code));
+   }
+   /**
     * Switches the DocumentPane to HTML view.
     */
    private void setHTMLView() {
***************
*** 776,782 ****
        SHTMLEditorKit kit = (SHTMLEditorKit) editor.getEditorKit();
        kit.write(sw, lDoc, 0, lDoc.getLength());
        sw.close();
!       sourceEditorPane.setText(sw.toString());
        sourceEditorPane.getDocument().addDocumentListener(this);
        sourceEditorPane.addCaretListener(sourceEditorPane);
        setHtmlChanged(false);
--- 790,796 ----
        SHTMLEditorKit kit = (SHTMLEditorKit) editor.getEditorKit();
        kit.write(sw, lDoc, 0, lDoc.getLength());
        sw.close();
!       setHTMLSource(sw.toString());
        sourceEditorPane.getDocument().addDocumentListener(this);
        sourceEditorPane.addCaretListener(sourceEditorPane);
        setHtmlChanged(false);
***************
*** 819,825 ****
            editor.setText(sText);
          break;
        case VIEW_TAB_HTML:
!           sourceEditorPane.setText(sText);
            setHtmlChanged(true);
          break;
      }
--- 833,839 ----
            editor.setText(sText);
          break;
        case VIEW_TAB_HTML:
!           setHTMLSource(sText);
            setHtmlChanged(true);
          break;
      }
