diff options
| -rw-r--r-- | dists/amiga/RM2AG.rx | 170 | ||||
| -rw-r--r-- | dists/amiga/convertRM.sed | 17 | 
2 files changed, 187 insertions, 0 deletions
diff --git a/dists/amiga/RM2AG.rx b/dists/amiga/RM2AG.rx new file mode 100644 index 0000000000..6ee56bb645 --- /dev/null +++ b/dists/amiga/RM2AG.rx @@ -0,0 +1,170 @@ +/* +README to .guide converter $Ver: 0.13 (29.01.2016) + +This script converts the pure ASCII-text based README file of ScummVM to a +basic Amiga guide file. + +More AmigaGuide features being added in the process if feasible. +*/ + +PARSE ARG readme_txt + +/* Check if the given file is really the readme */ +/* If a given filename has spaces in it's name, AmigaDOS/AmigaCLI will add extra quotation marks +to secure a sane working path. We get rid of them to make AREXX find the file */ +readme_txt=COMPRESS(readme_txt,'"') +OPEN(check_readme,readme_txt,'R') +IF READCH(check_readme,14) = 'ScummVM README' THEN +	CLOSE(check_readme) +ELSE DO +	SAY "Not the README file. Aborting!" +	CLOSE(readme_read) +	EXIT 0 +END + +/* If it's the proper file, lets start converting */ + +OPEN(readme_read,readme_txt,'R') +OPEN(guide_write,'README.guide','W') + +/* Prepare the Amiga guide file, add the intro and fixed text */ + +WRITELN(guide_write,'@DATABASE ScummVM README.guide') +WRITELN(guide_write,'@WORDWRAP') +WRITELN(guide_write,'@NODE "main" "ScummVM README Guide"') +WRITELN(guide_write,' ') +WRITELN(guide_write,'@{b}') +WRITELN(guide_write,READLN(readme_read)) +WRITELN(guide_write,'@{ub}') + +/* Creating the main link nodes */ + +x=1 + +DO WHILE EOF(readme_read) = 0 +	/* Read in the line */ +	working_line=READLN(readme_read) + +	/* Checking if the sub links have been reached and leave the loop, if met */ +	IF POS('°1.0°',working_line) = 1 & x > 1 THEN +		LEAVE +	ENDIF +	/* If no chapter has been found, simply write the line */ +	IF POS('°',working_line) = 0 THEN +		WRITELN(guide_write,working_line) +	ENDIF + +	/* Fix the empty chapters - two chapters (1.0 and 7.8) are empty and consist of only the headlines. +	    We add them to the following chapter and link both of them to the empty one */ + +	/* If chapter 1.1 is found add a link node to 1.0 (as chapter 1.0 is empty) */ +	IF POS(' * °1.1°',working_line) = 1 THEN DO +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +		WRITELN(guide_write,'    @{" 1.1 " Link "1.0"} 'working_line) +	END + +	/* If chapter 7.8.1 is found add a link node to 7.8 (as chapter 7.8  is empty) */ +	IF POS(' * * °7.8.1°',working_line) = 1 THEN DO +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +		WRITELN(guide_write,'      @{" 7.8.1 " Link "7.8"} 'working_line) +	END + +	/* If a single number main chapter is found 1.0 upto 9.0), prepare and write the link node */ +	IF POS('.0',working_line) = 3 THEN DO +		WRITELN(guide_write,' ') +		WRITELN(guide_write,'  @{" 'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1) '" Link "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'"} 'COMPRESS(working_line,'*°')) +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +		x=x+1 +	END + +	/* If a double number main chapter is found (10.0 ff), prepare and write the link node */ +	IF POS('.0',working_line) = 4 THEN DO +		WRITELN(guide_write,' ') +		WRITELN(guide_write,'  @{" 'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1) '" Link "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'"} 'COMPRESS(working_line,'*°')) +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +	END + +	/* If a level one sub chapter is found (i.e. 1.1), prepare and write the link node */ +	IF POS(' * °',working_line) = 1 THEN DO +		WRITELN(guide_write,'    @{" 'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1) '" Link "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'"} 'COMPRESS(working_line,'*°')) +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +	END + +	/* If a level two sub chapter is found (i.e. 1.1.1), prepare and write the link node */ +	IF POS(' * * °',working_line) = 1 THEN DO +		WRITELN(guide_write,'      @{" 'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1) '" Link "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'"} 'COMPRESS(working_line,'*°')) +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'*°') +	END +END + +/* Finish the TOC, hardcoded due the outro text getting read in last, but needs to be read/written after the TOC creation */ +WRITELN(guide_write,'------------------------------------------------------------------------') +WRITELN(guide_write,'Good Luck and Happy Adventuring!') +WRITELN(guide_write,'The ScummVM team.') +WRITELN(guide_write,'@{"http://www.scummvm.org/" System "URLOpen http://www.scummvm.org/"}') +WRITELN(guide_write,'------------------------------------------------------------------------') + +/* Creating the sub links nodes */ + +DO WHILE EOF(readme_read) = 0 +	/* If no chapter has been found, simply write the line */ +	IF POS('°',working_line) = 0 THEN +		WRITELN(guide_write,working_line) +	ENDIF + +	/* Fix the empty chapters - two chapters (1.0 and 7.8) are empty and consist of only the Headlines. +	    We don't close the NODE, rather add the following chapter to the former empty one */ + +	/* If chapter 1.1 is found don't close the NODE, just write the line */ +	IF POS('°1.1°',working_line) = 1 THEN DO +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'°') +		WRITELN(guide_write,working_line) +	END +	/* If chapter 7.8.1 is found don't close the NODE, just write the line */ +	IF POS('°7.8.1°',working_line) = 1 THEN DO +		/* Get rid of the markers so the following loops doesn't process them again */ +		working_line=COMPRESS(working_line,'°') +		WRITELN(guide_write,working_line) +	END + +	IF POS('°',working_line) > 0 THEN DO +		/* Check for link references inside the text and create link nodes for them */ +		IF POS('section °',working_line) > 0 THEN DO +			working_line=SUBSTR(working_line,1,POS('°',working_line)-1)'@{"'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'" Link "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'"}'SUBSTR(working_line,LASTPOS('°',working_line)+1) +			/* Get rid of the markers so the following loops doesn't process them again */ +			WRITELN(guide_write,COMPRESS(working_line,'°')) +		END +		ELSE DO +		/* If a chapter has been found, prepare and write the link */ +		WRITELN(guide_write,'@ENDNODE') +		WRITELN(guide_write,'@NODE "'SUBSTR(working_line,POS('°',working_line)+1,LASTPOS('°',working_line)-POS('°',working_line)-1)'" "'COMPRESS(working_line,'°')'"') +		WRITELN(guide_write,' ') +		/* Get rid of the markers so the following loops doesn't process them again */ +		WRITELN(guide_write,COMPRESS(working_line,'°')) +		END +	END + +	/* Read in the line at the end of the second loop, as the first line to work with was already read in on the end of the first loop */ +	working_line=READLN(readme_read) + +	/* If the outtro text is found, leave the loop and prepare for closing */ +	IF POS('------------------------------------------------------------------------',working_line) > 0 THEN +		LEAVE +	ENDIF +END + +WRITELN(guide_write,'@ENDNODE') + +/* Closing the guide and cleaning up */ +WRITELN(guide_write,'@ENDNODE') + +CLOSE(readme_read) +CLOSE(guide_write) +EXIT 0
\ No newline at end of file diff --git a/dists/amiga/convertRM.sed b/dists/amiga/convertRM.sed new file mode 100644 index 0000000000..47b6707001 --- /dev/null +++ b/dists/amiga/convertRM.sed @@ -0,0 +1,17 @@ +# $VER: READMEconverter.sed 1.04 (22.12.2015) © Eugene "sev" Sandulenko
 +# Additions by Raziel
 +#
 +# Preprocessing the README file and adding some landmarks for easier parsing
 +# and for converting it to an AmigaGuide Hypertext file later.
 +#
 +s/http:\/\/[#?=&a-zA-Z0-9_.\/\-]*/@{"&" System "URLOpen &"}/	# Convert all URLs to AmigaGuide format
 +s/https:\/\/[#?=&a-zA-Z0-9_.\/\-]*/@{"&" System "URLOpen &"}/	# Convert all secure URLs to AmigaGuide format
 +s/[0-9][0-9]*\.[0-9][0-9]*/°&°/								# Convert all chapter numbers to °x°...
 +s/°\([0-9][0-9]*\.[0-9][0-9]*\)°\(\.[0-9]\)/°\1\2°/					# ...and all three-digit chapter numbers...
 +s/°\([01]\.[0-9][0-9]*\.[0-9][0-9]*\)°/\1/						# ...and restore mentioned version numbers like 1.0.0 and 0.7.0.
 +s/of °0\.0°/of 0.0/										# "Fluidsynth's gain setting of 0.0" is not a chapter reference.
 +s/through °10\.0°/through 10.0/							# "through 10.0" is not a chapter reference.
 +s/ttf-°2\.00.1°/ttf-2.00.1/									# This part of an url link is not a chapter reference.
 +s/patch °1\.2°/patch 1.2/									# "Zork patch 1.2" is not a chapter reference.
 +s/Mac OS X °10\.2.8°/Mac OS X 10.2.8/						# "Mac OS X 10.2.8" is not a chapter reference.
 +s/Mac_OS_X_°10\.2.8°/Mac_OS_X_10.2.8/						# "Mac_OS_X_10.2.8" is not a chapter reference.
\ No newline at end of file  | 
