Merge remote-tracking branch

'origin/GP-990-dragonmacher-script-header-parsing--SQUASHED' into
Ghidra_10.0
This commit is contained in:
ghidravore 2021-06-01 16:11:09 -04:00
commit a94630a330
4 changed files with 37 additions and 17 deletions

View file

@ -81,6 +81,9 @@ public abstract class GhidraScriptProvider
* @param sourceFile the source file
* @param writer the print writer to write warning/error messages
* @return a GhidraScript instance for the specified source file
* @throws ClassNotFoundException if the script class cannot be found
* @throws InstantiationException if the construction of the script fails for some reason
* @throws IllegalAccessException if the class constructor is not accessible
*/
public abstract GhidraScript getScriptInstance(ResourceFile sourceFile, PrintWriter writer)
throws ClassNotFoundException, InstantiationException, IllegalAccessException;
@ -168,8 +171,7 @@ public abstract class GhidraScriptProvider
}
/**
* Return the start of certification header line if this file type is
* subject to certification.
* Return the start of certification header line if this file type is subject to certification.
* @return start of certification header or null if not supported
*/
protected String getCertifyHeaderStart() {
@ -177,21 +179,19 @@ public abstract class GhidraScriptProvider
}
/**
* Return the prefix for each certification header bofy line if
* this file is subject to certification
* @return certification heaber body prefix or null if not supported
* Return the prefix for each certification header body line if this file is subject to
* certification.
* @return certification header body prefix or null if not supported
*/
protected String getCertificationBodyPrefix() {
return null;
}
/**
* Return the end of certification header line if this file type is
* subject to certification.
* Return the end of certification header line if this file type is subject to certification.
* @return end of certification header or null if not supported
*/
protected String getCertifyHeaderEnd() {
return null;
}
}

View file

@ -198,6 +198,11 @@ public class JavaScriptProvider extends GhidraScriptProvider {
return "*/";
}
@Override
protected String getCertificationBodyPrefix() {
return "*";
}
/**
*
* Fix script name for search in script directories, such as Java package parts in the name and inner class names.

View file

@ -61,6 +61,21 @@ public class PythonScriptProvider extends GhidraScriptProvider {
return "#";
}
@Override
protected String getCertifyHeaderStart() {
return "## ###";
}
@Override
protected String getCertificationBodyPrefix() {
return "#";
}
@Override
protected String getCertifyHeaderEnd() {
return "##";
}
@Override
public String getDescription() {
return "Python";

View file

@ -137,15 +137,15 @@ public class PythonScriptInfoTest extends AbstractGhidraHeadedIntegrationTest {
try {
//@formatter:off
scriptFile = createTempPyScriptFileWithLines(
"## ###" +
"# IP: GHIDRA" +
"# " +
"# Some license text..." +
"# you may not use this file except in compliance with the License." +
"# " +
"# blah blah blah" +
"##" +
"" +
"## ###",
"# IP: GHIDRA",
"# ",
"# Some license text...",
"# you may not use this file except in compliance with the License.",
"# ",
"# blah blah blah",
"##",
"",
"'''",
"This is a test block comment. It will be ignored.",
"@category NotTheRealCategory",