gitlab-pygments.rb 0.3.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +71 -0
- data/Gemfile +1 -1
- data/LICENSE +17 -0
- data/README.md +28 -1
- data/Rakefile +2 -5
- data/lexers +0 -0
- data/lib/pygments/mentos.py +19 -12
- data/lib/pygments/popen.rb +21 -4
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -0
- data/test/test_pygments.rb +13 -2
- data/vendor/custom_lexers/github.py +206 -3
- data/vendor/pygments-main/AUTHORS +41 -3
- data/vendor/pygments-main/CHANGES +132 -5
- data/vendor/pygments-main/LICENSE +1 -1
- data/vendor/pygments-main/Makefile +1 -1
- data/vendor/pygments-main/REVISION +1 -1
- data/vendor/pygments-main/docs/generate.py +1 -1
- data/vendor/pygments-main/docs/src/api.txt +1 -1
- data/vendor/pygments-main/docs/src/index.txt +1 -1
- data/vendor/pygments-main/docs/src/integrate.txt +5 -0
- data/vendor/pygments-main/docs/src/java.txt +70 -0
- data/vendor/pygments-main/docs/src/lexerdevelopment.txt +52 -0
- data/vendor/pygments-main/external/autopygmentize +64 -0
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
- data/vendor/pygments-main/external/markdown-processor.py +2 -2
- data/vendor/pygments-main/external/moin-parser.py +1 -1
- data/vendor/pygments-main/external/rst-directive-old.py +1 -1
- data/vendor/pygments-main/external/rst-directive.py +1 -1
- data/vendor/pygments-main/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +2 -2
- data/vendor/pygments-main/pygments/cmdline.py +14 -6
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +3 -4
- data/vendor/pygments-main/pygments/formatter.py +4 -1
- data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
- data/vendor/pygments-main/pygments/formatters/_mapping.py +3 -3
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +73 -2
- data/vendor/pygments-main/pygments/formatters/img.py +2 -2
- data/vendor/pygments-main/pygments/formatters/latex.py +9 -9
- data/vendor/pygments-main/pygments/formatters/other.py +1 -3
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
- data/vendor/pygments-main/pygments/lexer.py +78 -10
- data/vendor/pygments-main/pygments/lexers/__init__.py +13 -2
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mapping.py +92 -36
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +4 -3
- data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +11 -0
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -3
- data/vendor/pygments-main/pygments/lexers/agile.py +525 -38
- data/vendor/pygments-main/pygments/lexers/asm.py +45 -7
- data/vendor/pygments-main/pygments/lexers/compiled.py +1257 -425
- data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +97 -62
- data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +931 -32
- data/vendor/pygments-main/pygments/lexers/github.py +206 -3
- data/vendor/pygments-main/pygments/lexers/hdl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/jvm.py +309 -44
- data/vendor/pygments-main/pygments/lexers/math.py +876 -30
- data/vendor/pygments-main/pygments/lexers/other.py +956 -517
- data/vendor/pygments-main/pygments/lexers/parsers.py +85 -2
- data/vendor/pygments-main/pygments/lexers/shell.py +81 -18
- data/vendor/pygments-main/pygments/lexers/special.py +1 -1
- data/vendor/pygments-main/pygments/lexers/sql.py +2 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +119 -8
- data/vendor/pygments-main/pygments/lexers/text.py +155 -15
- data/vendor/pygments-main/pygments/lexers/web.py +1578 -397
- data/vendor/pygments-main/pygments/modeline.py +40 -0
- data/vendor/pygments-main/pygments/plugin.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +1 -1
- data/vendor/pygments-main/pygments/style.py +1 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +36 -26
- data/vendor/pygments-main/pygments/util.py +46 -1
- data/vendor/pygments-main/scripts/check_sources.py +2 -2
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +2 -0
- data/vendor/pygments-main/scripts/find_codetags.py +1 -1
- data/vendor/pygments-main/scripts/find_error.py +5 -6
- data/vendor/pygments-main/setup.cfg +1 -0
- data/vendor/pygments-main/setup.py +6 -4
- data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
- data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
- data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
- data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
- data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
- data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
- data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
- data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
- data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +89 -4
- data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
- data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
- data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
- data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
- data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
- data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
- data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
- data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
- data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
- data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
- data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
- data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
- data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
- data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
- data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
- data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
- data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
- data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
- data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
- data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
- data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
- data/vendor/pygments-main/tests/examplefiles/http_request_example +2 -1
- data/vendor/pygments-main/tests/examplefiles/http_response_example +4 -2
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
- data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +5 -2
- data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
- data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
- data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
- data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +7 -0
- data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
- data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
- data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
- data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
- data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
- data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
- data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +149 -115
- data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
- data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
- data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
- data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
- data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
- data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
- data/vendor/pygments-main/tests/examplefiles/type.lisp +16 -0
- data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
- data/vendor/pygments-main/tests/old_run.py +1 -1
- data/vendor/pygments-main/tests/run.py +3 -2
- data/vendor/pygments-main/tests/support/tags +36 -0
- data/vendor/pygments-main/tests/test_basic_api.py +4 -3
- data/vendor/pygments-main/tests/test_clexer.py +1 -1
- data/vendor/pygments-main/tests/test_cmdline.py +1 -1
- data/vendor/pygments-main/tests/test_examplefiles.py +3 -1
- data/vendor/pygments-main/tests/test_html_formatter.py +17 -1
- data/vendor/pygments-main/tests/test_latex_formatter.py +1 -1
- data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
- data/vendor/pygments-main/tests/test_perllexer.py +1 -1
- data/vendor/pygments-main/tests/test_regexlexer.py +1 -1
- data/vendor/pygments-main/tests/test_token.py +1 -1
- data/vendor/pygments-main/tests/test_using_api.py +1 -1
- data/vendor/pygments-main/tests/test_util.py +22 -3
- metadata +84 -16
@@ -0,0 +1,23 @@
|
|
1
|
+
role q {
|
2
|
+
token stopper { \' }
|
3
|
+
|
4
|
+
token escape:sym<\\> { <sym> <item=.backslash> }
|
5
|
+
|
6
|
+
token backslash:sym<qq> { <?before 'q'> <quote=.LANG('MAIN','quote')> }
|
7
|
+
token backslash:sym<\\> { <text=.sym> }
|
8
|
+
token backslash:sym<stopper> { <text=.stopper> }
|
9
|
+
|
10
|
+
token backslash:sym<miscq> { {} . }
|
11
|
+
|
12
|
+
method tweak_q($v) { self.panic("Too late for :q") }
|
13
|
+
method tweak_qq($v) { self.panic("Too late for :qq") }
|
14
|
+
}
|
15
|
+
|
16
|
+
role qq does b1 does c1 does s1 does a1 does h1 does f1 {
|
17
|
+
token stopper { \" }
|
18
|
+
token backslash:sym<unrec> { {} (\w) { self.throw_unrecog_backslash_seq: $/[0].Str } }
|
19
|
+
token backslash:sym<misc> { \W }
|
20
|
+
|
21
|
+
method tweak_q($v) { self.panic("Too late for :q") }
|
22
|
+
method tweak_qq($v) { self.panic("Too late for :qq") }
|
23
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#include <IE.au3>
|
2
|
+
;http://msdn.microsoft.com/en-us/library/Aa752084.aspx
|
3
|
+
$ourl="http://localhost:5000/"
|
4
|
+
|
5
|
+
$oIE = _IEAttach ($ourl,"url")
|
6
|
+
If @error = $_IEStatus_NoMatch Then
|
7
|
+
$oIE = _IECreate ($ourl & "sample.html")
|
8
|
+
endIf
|
9
|
+
|
10
|
+
$oForm = _IEFormGetObjByName ($oIE, "form1")
|
11
|
+
;username, call DOM directly
|
12
|
+
$oIE.document.getElementById("username").value="helloAutoIT"
|
13
|
+
;state select
|
14
|
+
$oSelect = _IEFormElementGetObjByName ($oForm, "state")
|
15
|
+
_IEFormElementOptionSelect ($oSelect, "S2", 1, "byText")
|
16
|
+
;options raido
|
17
|
+
_IEFormElementRadioSelect($oForm, "2nd", "type", 1, "byValue")
|
18
|
+
|
19
|
+
ConsoleWrite(@Error)
|
20
|
+
Sleep(10000)
|
21
|
+
_IEFormSubmit($oForm, 0)
|
22
|
+
_IELoadWait($oIE)
|
23
|
+
Sleep(60000)
|
24
|
+
_IEQuit($oIE)
|
25
|
+
|
@@ -0,0 +1,308 @@
|
|
1
|
+
; bigtest.nsi
|
2
|
+
;
|
3
|
+
; This script attempts to test most of the functionality of the NSIS exehead.
|
4
|
+
|
5
|
+
;--------------------------------
|
6
|
+
|
7
|
+
!ifdef HAVE_UPX
|
8
|
+
!packhdr tmp.dat "upx\upx -9 tmp.dat"
|
9
|
+
!endif
|
10
|
+
|
11
|
+
!ifdef NOCOMPRESS
|
12
|
+
SetCompress off
|
13
|
+
!endif
|
14
|
+
|
15
|
+
;--------------------------------
|
16
|
+
|
17
|
+
Name "BigNSISTest"
|
18
|
+
Caption "NSIS Big Test"
|
19
|
+
Icon "${NSISDIR}\Contrib\Graphics\Icons\nsis1-install.ico"
|
20
|
+
OutFile "bigtest.exe"
|
21
|
+
|
22
|
+
SetDateSave on
|
23
|
+
SetDatablockOptimize on
|
24
|
+
CRCCheck on
|
25
|
+
SilentInstall normal
|
26
|
+
BGGradient 000000 800000 FFFFFF
|
27
|
+
InstallColors FF8080 000030
|
28
|
+
XPStyle on
|
29
|
+
|
30
|
+
InstallDir "$PROGRAMFILES\NSISTest\BigNSISTest"
|
31
|
+
InstallDirRegKey HKLM "Software\NSISTest\BigNSISTest" "Install_Dir"
|
32
|
+
|
33
|
+
CheckBitmap "${NSISDIR}\Contrib\Graphics\Checks\classic-cross.bmp"
|
34
|
+
|
35
|
+
LicenseText "A test text, make sure it's all there"
|
36
|
+
LicenseData "bigtest.nsi"
|
37
|
+
|
38
|
+
RequestExecutionLevel admin
|
39
|
+
|
40
|
+
;--------------------------------
|
41
|
+
|
42
|
+
Page license
|
43
|
+
Page components
|
44
|
+
Page directory
|
45
|
+
Page instfiles
|
46
|
+
|
47
|
+
UninstPage uninstConfirm
|
48
|
+
UninstPage instfiles
|
49
|
+
|
50
|
+
;--------------------------------
|
51
|
+
|
52
|
+
!ifndef NOINSTTYPES ; only if not defined
|
53
|
+
InstType "Most"
|
54
|
+
InstType "Full"
|
55
|
+
InstType "More"
|
56
|
+
InstType "Base"
|
57
|
+
;InstType /NOCUSTOM
|
58
|
+
;InstType /COMPONENTSONLYONCUSTOM
|
59
|
+
!endif
|
60
|
+
|
61
|
+
AutoCloseWindow false
|
62
|
+
ShowInstDetails show
|
63
|
+
|
64
|
+
;--------------------------------
|
65
|
+
|
66
|
+
Section "" ; empty string makes it hidden, so would starting with -
|
67
|
+
|
68
|
+
; write reg info
|
69
|
+
StrCpy $1 "POOOOOOOOOOOP"
|
70
|
+
DetailPrint "I like to be able to see what is going on (debug) $1"
|
71
|
+
WriteRegStr HKLM SOFTWARE\NSISTest\BigNSISTest "Install_Dir" "$INSTDIR"
|
72
|
+
|
73
|
+
; write uninstall strings
|
74
|
+
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "DisplayName" "BigNSISTest (remove only)"
|
75
|
+
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "UninstallString" '"$INSTDIR\bt-uninst.exe"'
|
76
|
+
|
77
|
+
SetOutPath $INSTDIR
|
78
|
+
File /a "silent.nsi"
|
79
|
+
CreateDirectory "$INSTDIR\MyProjectFamily\MyProject" ; 2 recursively create a directory for fun.
|
80
|
+
WriteUninstaller "bt-uninst.exe"
|
81
|
+
|
82
|
+
Nop ; for fun
|
83
|
+
|
84
|
+
SectionEnd
|
85
|
+
|
86
|
+
Section "TempTest"
|
87
|
+
|
88
|
+
SectionIn 1 2 3
|
89
|
+
Start: MessageBox MB_OK "Start:"
|
90
|
+
|
91
|
+
MessageBox MB_YESNO "Goto MyLabel" IDYES MyLabel
|
92
|
+
|
93
|
+
MessageBox MB_OK "Right before MyLabel:"
|
94
|
+
|
95
|
+
MyLabel: MessageBox MB_OK "MyLabel:"
|
96
|
+
|
97
|
+
MessageBox MB_OK "Right after MyLabel:"
|
98
|
+
|
99
|
+
MessageBox MB_YESNO "Goto Start:?" IDYES Start
|
100
|
+
|
101
|
+
SectionEnd
|
102
|
+
|
103
|
+
SectionGroup /e SectionGroup1
|
104
|
+
|
105
|
+
Section "Test Registry/INI functions"
|
106
|
+
|
107
|
+
SectionIn 1 4 3
|
108
|
+
|
109
|
+
WriteRegStr HKLM SOFTWARE\NSISTest\BigNSISTest "StrTest_INSTDIR" "$INSTDIR"
|
110
|
+
WriteRegDword HKLM SOFTWARE\NSISTest\BigNSISTest "DwordTest_0xDEADBEEF" 0xdeadbeef
|
111
|
+
WriteRegDword HKLM SOFTWARE\NSISTest\BigNSISTest "DwordTest_123456" 123456
|
112
|
+
WriteRegDword HKLM SOFTWARE\NSISTest\BigNSISTest "DwordTest_0123" 0123
|
113
|
+
WriteRegBin HKLM SOFTWARE\NSISTest\BigNSISTest "BinTest_deadbeef01f00dbeef" "DEADBEEF01F00DBEEF"
|
114
|
+
StrCpy $8 "$SYSDIR\IniTest"
|
115
|
+
WriteINIStr "$INSTDIR\test.ini" "MySection" "Value1" $8
|
116
|
+
WriteINIStr "$INSTDIR\test.ini" "MySectionIni" "Value1" $8
|
117
|
+
WriteINIStr "$INSTDIR\test.ini" "MySectionIni" "Value2" $8
|
118
|
+
WriteINIStr "$INSTDIR\test.ini" "IniOn" "Value1" $8
|
119
|
+
|
120
|
+
Call MyFunctionTest
|
121
|
+
|
122
|
+
DeleteINIStr "$INSTDIR\test.ini" "IniOn" "Value1"
|
123
|
+
DeleteINISec "$INSTDIR\test.ini" "MySectionIni"
|
124
|
+
|
125
|
+
ReadINIStr $1 "$INSTDIR\test.ini" "MySectionIni" "Value1"
|
126
|
+
StrCmp $1 "" INIDelSuccess
|
127
|
+
MessageBox MB_OK "DeleteINISec failed"
|
128
|
+
INIDelSuccess:
|
129
|
+
|
130
|
+
ClearErrors
|
131
|
+
ReadRegStr $1 HKCR "software\microsoft" xyz_cc_does_not_exist
|
132
|
+
IfErrors 0 NoError
|
133
|
+
MessageBox MB_OK "could not read from HKCR\software\microsoft\xyz_cc_does_not_exist"
|
134
|
+
Goto ErrorYay
|
135
|
+
NoError:
|
136
|
+
MessageBox MB_OK "read '$1' from HKCR\software\microsoft\xyz_cc_does_not_exist"
|
137
|
+
ErrorYay:
|
138
|
+
|
139
|
+
SectionEnd
|
140
|
+
|
141
|
+
Section "Test CreateShortCut"
|
142
|
+
|
143
|
+
SectionIn 1 2 3
|
144
|
+
|
145
|
+
Call CSCTest
|
146
|
+
|
147
|
+
SectionEnd
|
148
|
+
|
149
|
+
SectionGroup Group2
|
150
|
+
|
151
|
+
Section "Test Branching"
|
152
|
+
|
153
|
+
BeginTestSection:
|
154
|
+
SectionIn 1 2 3
|
155
|
+
|
156
|
+
SetOutPath $INSTDIR
|
157
|
+
|
158
|
+
IfFileExists "$INSTDIR\LogicLib.nsi" 0 BranchTest69
|
159
|
+
|
160
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to overwrite $INSTDIR\LogicLib.nsi?" IDNO NoOverwrite ; skipped if file doesn't exist
|
161
|
+
|
162
|
+
BranchTest69:
|
163
|
+
|
164
|
+
SetOverwrite ifnewer ; NOT AN INSTRUCTION, NOT COUNTED IN SKIPPINGS
|
165
|
+
|
166
|
+
NoOverwrite:
|
167
|
+
|
168
|
+
File "LogicLib.nsi" ; skipped if answered no
|
169
|
+
SetOverwrite try ; NOT AN INSTRUCTION, NOT COUNTED IN SKIPPINGS
|
170
|
+
|
171
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to skip the rest of this section?" IDYES EndTestBranch
|
172
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to go back to the beginning of this section?" IDYES BeginTestSection
|
173
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to hide the installer and wait five seconds?" IDNO NoHide
|
174
|
+
|
175
|
+
HideWindow
|
176
|
+
Sleep 5000
|
177
|
+
BringToFront
|
178
|
+
|
179
|
+
NoHide:
|
180
|
+
|
181
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to call the function 5 times?" IDNO NoRecurse
|
182
|
+
|
183
|
+
StrCpy $1 "x"
|
184
|
+
|
185
|
+
LoopTest:
|
186
|
+
|
187
|
+
Call myfunc
|
188
|
+
StrCpy $1 "x$1"
|
189
|
+
StrCmp $1 "xxxxxx" 0 LoopTest
|
190
|
+
|
191
|
+
NoRecurse:
|
192
|
+
|
193
|
+
EndTestBranch:
|
194
|
+
|
195
|
+
SectionEnd
|
196
|
+
|
197
|
+
SectionGroupEnd
|
198
|
+
|
199
|
+
Section "Test CopyFiles"
|
200
|
+
|
201
|
+
SectionIn 1 2 3
|
202
|
+
|
203
|
+
SetOutPath $INSTDIR\cpdest
|
204
|
+
CopyFiles "$WINDIR\*.ini" "$INSTDIR\cpdest" 0
|
205
|
+
|
206
|
+
SectionEnd
|
207
|
+
|
208
|
+
SectionGroupEnd
|
209
|
+
|
210
|
+
Section "Test Exec functions" TESTIDX
|
211
|
+
|
212
|
+
SectionIn 1 2 3
|
213
|
+
|
214
|
+
SearchPath $1 notepad.exe
|
215
|
+
|
216
|
+
MessageBox MB_OK "notepad.exe=$1"
|
217
|
+
Exec '"$1"'
|
218
|
+
ExecShell "open" '"$INSTDIR"'
|
219
|
+
Sleep 500
|
220
|
+
BringToFront
|
221
|
+
|
222
|
+
SectionEnd
|
223
|
+
|
224
|
+
Section "Test ActiveX control registration"
|
225
|
+
|
226
|
+
SectionIn 2
|
227
|
+
|
228
|
+
UnRegDLL "$SYSDIR\spin32.ocx"
|
229
|
+
Sleep 1000
|
230
|
+
RegDLL "$SYSDIR\spin32.ocx"
|
231
|
+
Sleep 1000
|
232
|
+
|
233
|
+
SectionEnd
|
234
|
+
|
235
|
+
;--------------------------------
|
236
|
+
|
237
|
+
Function "CSCTest"
|
238
|
+
|
239
|
+
CreateDirectory "$SMPROGRAMS\Big NSIS Test"
|
240
|
+
SetOutPath $INSTDIR ; for working directory
|
241
|
+
CreateShortCut "$SMPROGRAMS\Big NSIS Test\Uninstall BIG NSIS Test.lnk" "$INSTDIR\bt-uninst.exe" ; use defaults for parameters, icon, etc.
|
242
|
+
; this one will use notepad's icon, start it minimized, and give it a hotkey (of Ctrl+Shift+Q)
|
243
|
+
CreateShortCut "$SMPROGRAMS\Big NSIS Test\silent.nsi.lnk" "$INSTDIR\silent.nsi" "" "$WINDIR\notepad.exe" 0 SW_SHOWMINIMIZED CONTROL|SHIFT|Q
|
244
|
+
CreateShortCut "$SMPROGRAMS\Big NSIS Test\TheDir.lnk" "$INSTDIR\" "" "" 0 SW_SHOWMAXIMIZED CONTROL|SHIFT|Z
|
245
|
+
|
246
|
+
FunctionEnd
|
247
|
+
|
248
|
+
Function myfunc
|
249
|
+
|
250
|
+
StrCpy $2 "MyTestVar=$1"
|
251
|
+
MessageBox MB_OK "myfunc: $2"
|
252
|
+
|
253
|
+
FunctionEnd
|
254
|
+
|
255
|
+
Function MyFunctionTest
|
256
|
+
|
257
|
+
ReadINIStr $1 "$INSTDIR\test.ini" "MySectionIni" "Value1"
|
258
|
+
StrCmp $1 $8 NoFailedMsg
|
259
|
+
MessageBox MB_OK "WriteINIStr failed"
|
260
|
+
|
261
|
+
NoFailedMsg:
|
262
|
+
|
263
|
+
FunctionEnd
|
264
|
+
|
265
|
+
Function .onSelChange
|
266
|
+
|
267
|
+
SectionGetText ${TESTIDX} $0
|
268
|
+
StrCmp $0 "" e
|
269
|
+
SectionSetText ${TESTIDX} ""
|
270
|
+
Goto e2
|
271
|
+
e:
|
272
|
+
SectionSetText ${TESTIDX} "TextInSection"
|
273
|
+
e2:
|
274
|
+
|
275
|
+
FunctionEnd
|
276
|
+
|
277
|
+
;--------------------------------
|
278
|
+
|
279
|
+
; Uninstaller
|
280
|
+
|
281
|
+
UninstallText "This will uninstall example2. Hit next to continue."
|
282
|
+
UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\nsis1-uninstall.ico"
|
283
|
+
|
284
|
+
Section "Uninstall"
|
285
|
+
|
286
|
+
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest"
|
287
|
+
DeleteRegKey HKLM "SOFTWARE\NSISTest\BigNSISTest"
|
288
|
+
Delete "$INSTDIR\silent.nsi"
|
289
|
+
Delete "$INSTDIR\LogicLib.nsi"
|
290
|
+
Delete "$INSTDIR\bt-uninst.exe"
|
291
|
+
Delete "$INSTDIR\test.ini"
|
292
|
+
Delete "$SMPROGRAMS\Big NSIS Test\*.*"
|
293
|
+
RMDir "$SMPROGRAMS\BiG NSIS Test"
|
294
|
+
|
295
|
+
MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to remove the directory $INSTDIR\cpdest?" IDNO NoDelete
|
296
|
+
Delete "$INSTDIR\cpdest\*.*"
|
297
|
+
RMDir "$INSTDIR\cpdest" ; skipped if no
|
298
|
+
NoDelete:
|
299
|
+
|
300
|
+
RMDir "$INSTDIR\MyProjectFamily\MyProject"
|
301
|
+
RMDir "$INSTDIR\MyProjectFamily"
|
302
|
+
RMDir "$INSTDIR"
|
303
|
+
|
304
|
+
IfFileExists "$INSTDIR" 0 NoErrorMsg
|
305
|
+
MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
|
306
|
+
NoErrorMsg:
|
307
|
+
|
308
|
+
SectionEnd
|
@@ -0,0 +1,284 @@
|
|
1
|
+
;--------------------------------------
|
2
|
+
; Lychrel numbers.
|
3
|
+
;
|
4
|
+
; :author: Marc 'BlackJack' Rintsch
|
5
|
+
; :date: 2008-03-07
|
6
|
+
; :version: 0.1
|
7
|
+
;
|
8
|
+
; Prints all `Lychrel numbers`_ between 1 and 100000.
|
9
|
+
;
|
10
|
+
; The numbers are stored as array of "digits" in little endian
|
11
|
+
; order. Each digit is a byte with a value between 0 and 9.
|
12
|
+
;
|
13
|
+
; Runtime on C64: 00:21:01
|
14
|
+
;
|
15
|
+
; .. _Lychrel numbers: http://en.wikipedia.org/wiki/Lychrel_number
|
16
|
+
;
|
17
|
+
; .. cl65 -l -tnone -C simple.cfg lychrel.s -o lychrel.prg
|
18
|
+
;--------------------------------------
|
19
|
+
|
20
|
+
;--------------------------------------
|
21
|
+
; External addresses.
|
22
|
+
;--------------------------------------
|
23
|
+
chrout = $ffd2
|
24
|
+
|
25
|
+
;--------------------------------------
|
26
|
+
; Constants.
|
27
|
+
;--------------------------------------
|
28
|
+
TO = 100000
|
29
|
+
TO_DIGITS = 10
|
30
|
+
ITERATIONS = 100
|
31
|
+
MAX_DIGITS = TO_DIGITS + ITERATIONS
|
32
|
+
|
33
|
+
;--------------------------------------
|
34
|
+
; Global variables.
|
35
|
+
;--------------------------------------
|
36
|
+
.zeropage
|
37
|
+
;
|
38
|
+
; Length of the currently tested `n` in digits.
|
39
|
+
;
|
40
|
+
n_length:
|
41
|
+
.res 1
|
42
|
+
;
|
43
|
+
; Length of the number(s) `xa` and `xb` while testing.
|
44
|
+
;
|
45
|
+
length:
|
46
|
+
.res 1
|
47
|
+
|
48
|
+
.bss
|
49
|
+
;
|
50
|
+
; Number to be tested as digits i.e. bytes with values between
|
51
|
+
; 0 and 9. The length is stored in `n_length`.
|
52
|
+
;
|
53
|
+
n:
|
54
|
+
.res TO_DIGITS
|
55
|
+
;
|
56
|
+
; Space for calculating the reversed and added values.
|
57
|
+
; In the `main` code the current number is copied into `xa`
|
58
|
+
; and then repeatedly `reverse_add`\ed to itself with the
|
59
|
+
; result of that adding stored in `xb`.
|
60
|
+
;
|
61
|
+
xa:
|
62
|
+
.res MAX_DIGITS
|
63
|
+
xb:
|
64
|
+
.res MAX_DIGITS
|
65
|
+
|
66
|
+
;--------------------------------------
|
67
|
+
; BASIC header.
|
68
|
+
;--------------------------------------
|
69
|
+
.code
|
70
|
+
.word 0800h ; Load address.
|
71
|
+
.byte 0
|
72
|
+
.word @line_end
|
73
|
+
.word 2008 ; Line number.
|
74
|
+
.byte $9e ; SYS token.
|
75
|
+
.byte "2080 " ; SYS argument.
|
76
|
+
.byte "LYCHREL NUMBERS/BJ"
|
77
|
+
@line_end:
|
78
|
+
.byte 0, 0, 0 ; Line and program end marker.
|
79
|
+
|
80
|
+
;--------------------------------------
|
81
|
+
; Main program.
|
82
|
+
;--------------------------------------
|
83
|
+
.proc main
|
84
|
+
|
85
|
+
.zeropage
|
86
|
+
;
|
87
|
+
; Three byte counter for `TO` iterations (100000 = $0186a0).
|
88
|
+
;
|
89
|
+
i:
|
90
|
+
.res 3
|
91
|
+
|
92
|
+
.code
|
93
|
+
;
|
94
|
+
; Clear and set `n` and `i` to 1.
|
95
|
+
;
|
96
|
+
lda #0 ; n := 0; n := 1; i := 1
|
97
|
+
sta i+1
|
98
|
+
sta i+2
|
99
|
+
ldx #TO_DIGITS
|
100
|
+
clear_n:
|
101
|
+
sta n-1,x
|
102
|
+
dex
|
103
|
+
bne clear_n
|
104
|
+
inx
|
105
|
+
stx i
|
106
|
+
stx n
|
107
|
+
stx n_length
|
108
|
+
|
109
|
+
mainloop:
|
110
|
+
jsr is_lychrel
|
111
|
+
bcc no_lychrel
|
112
|
+
jsr print_n
|
113
|
+
no_lychrel:
|
114
|
+
jsr increase_n
|
115
|
+
|
116
|
+
inc i ; INC(i)
|
117
|
+
bne skip
|
118
|
+
inc i+1
|
119
|
+
bne skip
|
120
|
+
inc i+2
|
121
|
+
skip:
|
122
|
+
lda i
|
123
|
+
cmp #<TO
|
124
|
+
bne mainloop
|
125
|
+
lda i+1
|
126
|
+
cmp #>TO
|
127
|
+
bne mainloop
|
128
|
+
lda i+2
|
129
|
+
cmp #^TO
|
130
|
+
bne mainloop
|
131
|
+
|
132
|
+
rts
|
133
|
+
.endproc
|
134
|
+
|
135
|
+
;--------------------------------------
|
136
|
+
; Print `n` and a trailing newline.
|
137
|
+
;
|
138
|
+
; :in: `n_length`, `n`
|
139
|
+
;--------------------------------------
|
140
|
+
.proc print_n
|
141
|
+
ldy n_length
|
142
|
+
L1:
|
143
|
+
lda n-1,y
|
144
|
+
ora #%110000 ; = '0'
|
145
|
+
jsr chrout
|
146
|
+
dey
|
147
|
+
bne L1
|
148
|
+
|
149
|
+
lda #13
|
150
|
+
jmp chrout
|
151
|
+
.endproc
|
152
|
+
|
153
|
+
;--------------------------------------
|
154
|
+
; Increase `n` by one.
|
155
|
+
;
|
156
|
+
; This procedure expects n[n_length] == 0 in case the number gets
|
157
|
+
; one digit longer.
|
158
|
+
;
|
159
|
+
; :in: `n`, `n_length`
|
160
|
+
; :out: `n`, `n_length`
|
161
|
+
;--------------------------------------
|
162
|
+
.proc increase_n
|
163
|
+
ldx #0
|
164
|
+
L1:
|
165
|
+
inc n,x ; Increase digit.
|
166
|
+
lda n,x
|
167
|
+
cmp #10 ; If "carry", store 0 and go to next digit.
|
168
|
+
bne return
|
169
|
+
lda #0
|
170
|
+
sta n,x
|
171
|
+
inx
|
172
|
+
bne L1
|
173
|
+
return:
|
174
|
+
cpx n_length ; If "carry" after last digit, increase length.
|
175
|
+
bcc skip
|
176
|
+
inc n_length
|
177
|
+
skip:
|
178
|
+
rts
|
179
|
+
.endproc
|
180
|
+
|
181
|
+
;--------------------------------------
|
182
|
+
; Tests if `n` is a Lychrel number.
|
183
|
+
;
|
184
|
+
; :in: `n`, `n_length`
|
185
|
+
; :out: C is set if yes, cleared otherwise.
|
186
|
+
; :uses: `length`, `xa`, `xb`
|
187
|
+
;--------------------------------------
|
188
|
+
.proc is_lychrel
|
189
|
+
.zeropage
|
190
|
+
i:
|
191
|
+
.res 1
|
192
|
+
|
193
|
+
.code
|
194
|
+
ldx n_length ; xa := n; length := n_length
|
195
|
+
stx length
|
196
|
+
L1:
|
197
|
+
lda n-1,x
|
198
|
+
sta xa-1,x
|
199
|
+
dex
|
200
|
+
bne L1
|
201
|
+
|
202
|
+
lda #ITERATIONS ; i := ITERATIONS
|
203
|
+
sta i
|
204
|
+
L2:
|
205
|
+
jsr reverse_add
|
206
|
+
jsr is_palindrome
|
207
|
+
bne no_palindrome
|
208
|
+
clc
|
209
|
+
rts
|
210
|
+
no_palindrome:
|
211
|
+
ldx length ; a := b
|
212
|
+
L3:
|
213
|
+
lda xb-1,x
|
214
|
+
sta xa-1,x
|
215
|
+
dex
|
216
|
+
bne L3
|
217
|
+
|
218
|
+
dec i ; Loop body end.
|
219
|
+
bne L2
|
220
|
+
|
221
|
+
sec
|
222
|
+
rts
|
223
|
+
.endproc
|
224
|
+
|
225
|
+
;--------------------------------------
|
226
|
+
; Add the reverse to `xa` to itself and store the result in `xb`.
|
227
|
+
;
|
228
|
+
; :in: `length`, `xa`
|
229
|
+
; :out: `length`, `xb`
|
230
|
+
;--------------------------------------
|
231
|
+
.proc reverse_add
|
232
|
+
.code
|
233
|
+
ldx #0
|
234
|
+
ldy length
|
235
|
+
clc
|
236
|
+
L1:
|
237
|
+
lda xa,x
|
238
|
+
adc xa-1,y
|
239
|
+
|
240
|
+
cmp #10
|
241
|
+
bcc no_adjust
|
242
|
+
sbc #10
|
243
|
+
no_adjust:
|
244
|
+
sta xb,x
|
245
|
+
|
246
|
+
dey
|
247
|
+
inx
|
248
|
+
txa ; ``eor`` instead of ``cpx`` to keep the carry flag
|
249
|
+
eor length ; of the addition above.
|
250
|
+
bne L1
|
251
|
+
|
252
|
+
bcc no_carry
|
253
|
+
lda #1
|
254
|
+
sta xb,x
|
255
|
+
inc length
|
256
|
+
no_carry:
|
257
|
+
rts
|
258
|
+
.endproc
|
259
|
+
|
260
|
+
;--------------------------------------
|
261
|
+
; Checks if `xb` is a palindrome.
|
262
|
+
;
|
263
|
+
; :in: `length`, `xb`
|
264
|
+
; :out: Z flag set if `xb` is a palindrome, cleared otherwise.
|
265
|
+
;--------------------------------------
|
266
|
+
.proc is_palindrome
|
267
|
+
.code
|
268
|
+
ldx #0
|
269
|
+
lda length
|
270
|
+
tay
|
271
|
+
lsr
|
272
|
+
sta L1+1 ; Self modifying code!
|
273
|
+
L1:
|
274
|
+
cpx #0 ; <<< 0 replaced by (`length` / 2).
|
275
|
+
beq return
|
276
|
+
lda xb,x
|
277
|
+
cmp xb-1,y
|
278
|
+
bne return
|
279
|
+
dey
|
280
|
+
inx
|
281
|
+
bne L1
|
282
|
+
return:
|
283
|
+
rts
|
284
|
+
.endproc
|