diff options
-rw-r--r-- | guix/import/utils.scm | 6 | ||||
-rw-r--r-- | tests/import-utils.scm | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 646482eb4a..c6b7341f2b 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -342,12 +342,12 @@ LENGTH characters." ;; Escape single @ to prevent it from being understood as ;; invalid Texinfo syntax. (cut regexp-substitute/global #f "@" <> 'pre "@@" 'post) - ;; Wrap camelCase or PascalCase words or text followed - ;; immediately by "()" in @code{...}. + ;; Wrap camelCase, PascalCase words, text followed + ;; immediately by "()", or text starting with "@@" in @code{...}. (lambda (word) (let ((pattern (make-regexp - "([A-Z][a-z]+[A-Z]|[a-z]+[A-Z]|.+\\(\\))"))) + "((@@)?[A-Z][a-z]+[A-Z]|(@@)?[a-z]+[A-Z]|(@@)?.+\\(\\))"))) (match (list-matches pattern word) (() word) ((m . rest) diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 4183903cd1..221866e871 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -53,6 +53,10 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS.")) "This @@ is not Texinfo syntax. Neither is this %@@>%." (beautify-description "This @ is not Texinfo syntax. Neither is this %@>%.")) +(test-equal "beautify-description: escape @stuff" + "This is not valid syntax: @code{@@importFrom} oh dear." + (beautify-description "This is not valid syntax: @importFrom oh dear.")) + (test-equal "beautify-description: wrap PascalCase words in @code" "The term @code{DelayedMatrix} refers to a class." (beautify-description "The term DelayedMatrix refers to a class.")) |