diff --git a/src/languages/fortran.js b/src/languages/fortran.js
index cbe33fe642..e2ddbe8492 100644
--- a/src/languages/fortran.js
+++ b/src/languages/fortran.js
@@ -11,6 +11,14 @@ export default function(hljs) {
begin: '\\(', end: '\\)'
};
+ var COMMENT = {
+ variants: [
+ hljs.COMMENT('!', '$', {relevance: 0}),
+ // allow Fortran 77 style comments
+ hljs.COMMENT('^C', '$', {relevance: 0})
+ ]
+ }
+
var F_KEYWORDS = {
literal: '.False. .True.',
keyword: 'kind do concurrent local shared while private call intrinsic where elsewhere ' +
@@ -66,7 +74,13 @@ export default function(hljs) {
illegal: '[${=\\n]',
contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
},
- hljs.COMMENT('!', '$', {relevance: 0}),
+ // allow C = value for assignments so they aren't misdetected
+ // as Fortran 77 style comments
+ {
+ begin: /^C\s*=(?!=)/,
+ relevance:0,
+ },
+ COMMENT,
{
className: 'number',
// regex in both fortran and irpf90 should match
diff --git a/test/markup/fortran/comments.expect.txt b/test/markup/fortran/comments.expect.txt
new file mode 100644
index 0000000000..ba78a37f63
--- /dev/null
+++ b/test/markup/fortran/comments.expect.txt
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+C=2
+C = 2
+C ='boo'
diff --git a/test/markup/fortran/comments.txt b/test/markup/fortran/comments.txt
new file mode 100644
index 0000000000..6127dbc32e
--- /dev/null
+++ b/test/markup/fortran/comments.txt
@@ -0,0 +1,13 @@
+C
+C This program in FORTRAN 77 outputs "Hello, World!".
+C ====================================================
+
+ !===============================
+ ! This is a test subroutine
+ !===============================
+
+! another comment
+
+C=2
+C = 2 !correct
+C ='boo'