langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
changeset 46080 65ccd412049b
parent 45913 90f6a96c1603
child 46085 373965429061
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Fri Jul 28 15:00:53 2017 -0700
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Wed Aug 02 09:26:35 2017 -0700
@@ -40,10 +40,12 @@
 
 import jdk.javadoc.doclet.Doclet;
 import jdk.javadoc.doclet.DocletEnvironment;
+import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlVersion;
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.Content;
+import jdk.javadoc.internal.doclets.toolkit.DocletException;
 import jdk.javadoc.internal.doclets.toolkit.Messages;
 import jdk.javadoc.internal.doclets.toolkit.Resources;
 import jdk.javadoc.internal.doclets.toolkit.WriterFactory;
@@ -162,6 +164,11 @@
     public boolean createtree = true;
 
     /**
+     * The META charset tag used for cross-platform viewing.
+     */
+    public String charset = null;
+
+    /**
      * True if command line option "-nodeprecated" is used. Default value is
      * false.
      */
@@ -797,4 +804,23 @@
         oset.addAll(super.getSupportedOptions());
         return oset;
     }
+
+    @Override
+    protected boolean finishOptionSettings0() throws DocletException {
+        if (docencoding == null) {
+            if (charset == null) {
+                docencoding = charset = (encoding == null) ? HtmlConstants.HTML_DEFAULT_CHARSET : encoding;
+            } else {
+                docencoding = charset;
+            }
+        } else {
+            if (charset == null) {
+                charset = docencoding;
+            } else if (!charset.equals(docencoding)) {
+                reporter.print(ERROR, getText("doclet.Option_conflict", "-charset", "-docencoding"));
+                return false;
+            }
+        }
+        return super.finishOptionSettings0();
+    }
 }