From ab4474244378108cb822c94a00b83dd819146cca Mon Sep 17 00:00:00 2001 From: Qrakhen Date: Fri, 8 May 2026 05:29:09 +0200 Subject: [PATCH] new stuff, vscode support, globals fixed, better test script --- .gitignore | 7 +- Qrakhen.Qamp.Core/Execution/Runner.cs | 3 + Qrakhen.Qamp.Core/Qrakhen.Qamp.Core.csproj | 1 + Qrakhen.Qamp.Core/Values/Value.cs | 7 +- Qrakhen.Qamp.VsCode/LICENSE.txt | 21 +++ .../language-configuration.json | 17 +++ Qrakhen.Qamp.VsCode/package.json | 33 +++++ Qrakhen.Qamp.VsCode/qamp-0.0.1.vsix | Bin 0 -> 3082 bytes .../snippets/qamp.code-snippets | 27 ++++ .../syntaxes/qamp.tmLanguage.json | 124 ++++++++++++++++++ .../syntaxes/qamp.tmLanguage.old.json | 37 ++++++ Qrakhen.Qamp.sln | 20 --- Static/test.qp | 34 +++-- build | 2 +- 14 files changed, 299 insertions(+), 34 deletions(-) create mode 100644 Qrakhen.Qamp.VsCode/LICENSE.txt create mode 100644 Qrakhen.Qamp.VsCode/language-configuration.json create mode 100644 Qrakhen.Qamp.VsCode/package.json create mode 100644 Qrakhen.Qamp.VsCode/qamp-0.0.1.vsix create mode 100644 Qrakhen.Qamp.VsCode/snippets/qamp.code-snippets create mode 100644 Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.json create mode 100644 Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.old.json diff --git a/.gitignore b/.gitignore index 12bcbe8..3e3ca78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ Debug/ +x86/ +x64/ Release/ Build/ bin/ @@ -9,9 +11,10 @@ log/ lib/ .vs/ *.nocmt.* +*.sqi +*.tmp +*.log *.depend *.stackdump *.layout *.user -x86/ -x64/ diff --git a/Qrakhen.Qamp.Core/Execution/Runner.cs b/Qrakhen.Qamp.Core/Execution/Runner.cs index 49de174..67ff007 100644 --- a/Qrakhen.Qamp.Core/Execution/Runner.cs +++ b/Qrakhen.Qamp.Core/Execution/Runner.cs @@ -121,6 +121,9 @@ public class Runner : IDisposable Globals["cos"] = Obj.Create(new NativeFunction("cos", v => new Value(Math.Cos(v[0].GetDecimal())), "v")); + Globals["sqrt"] = Obj.Create(new NativeFunction("sqrt", + v => new Value(Math.Sqrt(v[0].GetDecimal())), "v")); + Globals["exit"] = Obj.Create(new NativeFunction("exit", v => { Environment.Exit((int)(v.FirstOrDefault().Signed)); return Value.Void; diff --git a/Qrakhen.Qamp.Core/Qrakhen.Qamp.Core.csproj b/Qrakhen.Qamp.Core/Qrakhen.Qamp.Core.csproj index a8e5489..e4a9773 100644 --- a/Qrakhen.Qamp.Core/Qrakhen.Qamp.Core.csproj +++ b/Qrakhen.Qamp.Core/Qrakhen.Qamp.Core.csproj @@ -2,6 +2,7 @@ net10.0 + 0.0.12.632 enable enable true diff --git a/Qrakhen.Qamp.Core/Values/Value.cs b/Qrakhen.Qamp.Core/Values/Value.cs index 4ed69d5..e7f5eef 100644 --- a/Qrakhen.Qamp.Core/Values/Value.cs +++ b/Qrakhen.Qamp.Core/Values/Value.cs @@ -103,9 +103,12 @@ public readonly struct Value : public bool IsFalsy => IsBool ? Bool == false : Unsigned == 0; // another shortcut that will cost me greatly - public String? AsString() => Ptr.As(); - public string? GetString() => AsString()?.Value; + // edit: yes, did cost me greatly, lol. pointer was pointing to random strings in string table + // ending up with dozens of strings spat out using write(), accidentally, by giving write + // an integer (table index offset) rather than a string literal. oops. + public String? AsString() => IsString ? Ptr.As() : null; public double GetDecimal() => IsDecimal ? Decimal : (double)Signed; + public string? GetString() => AsString()?.Value; public bool Is(T type, bool exact = true) { diff --git a/Qrakhen.Qamp.VsCode/LICENSE.txt b/Qrakhen.Qamp.VsCode/LICENSE.txt new file mode 100644 index 0000000..21ea39a --- /dev/null +++ b/Qrakhen.Qamp.VsCode/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [2026] [David Neumaier, Qrakhen] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Qrakhen.Qamp.VsCode/language-configuration.json b/Qrakhen.Qamp.VsCode/language-configuration.json new file mode 100644 index 0000000..104614d --- /dev/null +++ b/Qrakhen.Qamp.VsCode/language-configuration.json @@ -0,0 +1,17 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} \ No newline at end of file diff --git a/Qrakhen.Qamp.VsCode/package.json b/Qrakhen.Qamp.VsCode/package.json new file mode 100644 index 0000000..0b84ed9 --- /dev/null +++ b/Qrakhen.Qamp.VsCode/package.json @@ -0,0 +1,33 @@ +{ + "name": "qamp", + "displayName": "Q& Language Support by Qrakhen", + "repository": "https://git.qrakhen.net/qrakhen/qamp-vscode.git", + "publisher": "qrakhen", + "version": "0.0.1", + "engines": { + "vscode": "^1.0.0" + }, + "categories": [ + "Programming Languages" + ], + "contributes": { + "contributes": { + "snippets": [{ + "language": "qamp", + "path": "./snippets/qamp.code-snippets" + }] + }, + "languages": [{ + "id": "qamp", + "aliases": ["Q&", "qamp"], + "icon": { "dark": "cogwheel", "light": "cogwheel" }, + "extensions": [ ".qp", ".sq", ".qamp" ], + "configuration": "./language-configuration.json" + }], + "grammars": [{ + "language": "qamp", + "scopeName": "source.qamp", + "path": "./syntaxes/qamp.tmLanguage.json" + }] + } +} diff --git a/Qrakhen.Qamp.VsCode/qamp-0.0.1.vsix b/Qrakhen.Qamp.VsCode/qamp-0.0.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..c190851d7c3959e9c559514c174a467b4794ab1a GIT binary patch literal 3082 zcmaJ@c|4SB8y<}u|>+3tt?}i!3;+BCCgBhk*z^7qLa~Njl@_= zBwLAWV>wFJIVK~@`Nlb49nSCj&i(%J{N8`A=ee)vx~}`NfdU!%00352z{v3mmxAdQ z&bmVYfDtPIAOHXWywE5wI1+|{gTs(8bf5a)qkfSJn_=7c){Y$X9bTVs;QK?){`(z2PC*axhd zES1SxifA@&hRJO$8GSdStE8H{%U!h{VWX0yio6qPYLB@c9U#T=G7MFp2vQ3e1Y`p= z+Z?XbtM|5()Yy%@a#?wjF`PeR&~OI>P$sH|5BXL%rJu2uIQEo@v6+!a?V7u-$7%$I z_)A^H`@0tID>CU(+HGC%E`+s=Lf*E#uTttDk7Ee6G4ZX#VWG@N=M?)@D~GkvSE+6H zjV40yZE!gDqg@Zwp@CmW2C%G+ESCPgx=5j<^sb<=RMCIrNW(P^f z##JEEws{5C{HeVz*HZNfG5X=u2<{!BWm}oJnX{kIBww)`y;>aPwl<1Cl>?p_ajGB< zuHekUa$h6}g=hZ#FnZDGp@Lk_kE)9W0hWm=1@W^@`!$CszLvF_K0^~t07nvcY~aM3%?q4hgR7v@=Yex9k&eRsA;hH<~hR4{O_5 z_yfIPoPQ)2UJZHyn?NxY(4K!yT*9clXuPGkoYeTfAtO#71U_t$_w5mUv)vj zscg&b+(Pw9C;TCGpIgdcfybbhaPd==>m%z&o_{y*?0}TTYS^1^P6s$RvMlo6TZv|x z&F??=@Ji%qq1%FO>$;3}iyXVBgxrv!&fftxP!`sF;w`^3boIQT$K~JTr-&RRUz&am zKSNY0zyt0RN@rj33Igs8^9c>{K<#Dg-d*6|=&~g#b0yDA*@317PRujbyS72fyUiUE z3gYzayCh{2PR2=YzOP{)Teu(odo~oE zYnqa>dJ~OqO$EKN>SV!AIkPK4GARWr%~+plK~6UD?L{rD=+uX7y`5%*cqI?1+s6s7 z2ED8?NRe-q&)~$+r(&|jCK!_7=Q(w4%mobeVeQt|@i%7h0yA-?De050v4IV*vG0_m z2ck0Na(a4&`dhUrX?F?8br_1>JJl@s{I`W|mlIy!_#VhV=kt#SB`Vz<=Exd#t^TgPa1f^!LHO@#KtYI;UJWs z*QNzBmD9Njl3ws0?JjCWJ4+NSKd+srJ6v!M8Rr!L3b-rqq@4Umfcl!2oMor?IGd{- zt7BcWQ@46i7_;q>TF>L4Y7agP8E3vu$O>#E2+MFp@>D6am|tw~ZhvYk400~NQ4yv% zJi1D~7%E~hl4Z{JbjX14H5t0WDk;gofulLMO=@~Ph%E<>mv_HcAge=uc#8yzojj^t~%{Tv$GU{_wm~T=bdr|_oC@gz= z-mO>@y+JpnHsgLh`~Jh2vIq2xjDVv&&|XNTV2{8cFe=dEzefGjn%8fU{5q6D$!pOV z_ZOojr)iK*_m6m%uJb$yBDP!A>uoe`hM>44kY_!c`)z6NeXyOqy_eYiqbhM@_TCq8 za|8ktXV|({xrQ;{%Q7=R(G;z?3R%jjx56?dlBBrMxC%Kvz8$gr*PD?H`fanj+h}`l z8{>PvVeiHr<=4=^uEs=@KgQ#0t{b4AuqS<;MHX_Dz)yBq4nw{|=J-^^P4qkj-b!J2 zjI4C+R&#BYp3Y6w%sc8VB8O`i7SJDdQ~2r_-E%uJxRuj&yo8Xt(`YSZ{$jDN}W{g8Wkx?h=ldHSQu z;yIc3L+(r0{SbQ+-cS9Wgnv|7{1pAk{*zv%e-*S1l!?9{0KiQDYU%fQmTm9vKYIfv AegFUf literal 0 HcmV?d00001 diff --git a/Qrakhen.Qamp.VsCode/snippets/qamp.code-snippets b/Qrakhen.Qamp.VsCode/snippets/qamp.code-snippets new file mode 100644 index 0000000..183b61f --- /dev/null +++ b/Qrakhen.Qamp.VsCode/snippets/qamp.code-snippets @@ -0,0 +1,27 @@ +{ + "Sine": { + "prefix": "sin", + "body": "sin(${1:number})", + "description": "Calculates the sine of number, assuming radians." + }, + "Cosine": { + "prefix": "cos", + "body": "cos(${1:number})", + "description": "Calculates the cosine of number, assuming radians." + }, + "Read": { + "prefix": "read", + "body": "read()", + "description": "Reads a line from stdin." + }, + "Write": { + "prefix": "write", + "body": "write(${1:string})", + "description": "Writes string to stdout." + }, + "Timestamp": { + "prefix": "time", + "body": "time()", + "description": "Returns current timestamp in microseconds." + } +} \ No newline at end of file diff --git a/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.json b/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.json new file mode 100644 index 0000000..dc1167a --- /dev/null +++ b/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "qamp", + "scopeName": "source.qamp", + "patterns": [ + { "include": "#comments" }, + { "include": "#strings" }, + { "include": "#keywords" }, + { "include": "#operators" }, + { "include": "#numbers" }, + { "include": "#functions" }, + { "include": "#globals" } + ], + "repository": { + "globals": { + "patterns": [ + { + "name": "support.function.qamp", + "match": "\\b(sin|cos|read|write|fread|fwrite|time|ftime)\\b" + }, + { + "name": "support.string.qamp", + "match": "\\b(SubString|IndexOf|Split|Length)\\b" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.double-slash.qamp", + "match": "#.*$" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.qamp", + "begin": "\"", + "end": "\"", + "patterns": [{ "name": "constant.character.escape.qamp", "match": "\\\\." }] + }, + { + "name": "string.quoted.single.qamp", + "begin": "'", + "end": "'" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.qamp", + "match": "\\b(if|else|for|while|var|do)\\b" + }, + { + "name": "storage.type.function.qamp", + "match": "\\b(fq|funq)\\b" + }, + { + "name": "keyword.class.qamp", + "match": "\\b(qlass|class|this|base)\\b" + }, + { + "name": "keyword.control.flow.return.qamp", + "match": "<:|\\breturn\\b" + }, + { + "name": "support.function.print.qamp", + "match": "\\bprint\\b|::" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.assignment.qamp", + "match": "<~|=|<\\+|<&" + }, + { + "name": "keyword.operator.comparison.qamp", + "match": "==|!=|<=|>=|<|>" + }, + { + "name": "keyword.operator.arithmetic.qamp", + "match": "\\+|\\-|\\*|/" + }, + { + "name": "keyword.operator.binary.qamp", + "match": "&|\\^|\\||~" + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.hex.qamp", + "match": "\\b0x[0-9a-fA-F]+\\b" + }, + { + "name": "constant.numeric.decimal.qamp", + "match": "\\b[0-9]+\\.[0-9]+\\b|\\.[0-9]+\\b|\\b[0-9]+\\b" + } + ] + }, + "functions": { + "patterns": [ + { + "match": "\\b(fq|funq|function)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "captures": { + "1": { "name": "storage.type.function.qamp" }, + "2": { "name": "entity.name.function.qamp" } + } + }, + { + "match": "([a-zA-Z_][a-zA-Z0-9_]*)\\(", + "captures": { + "1": { "name": "entity.name.function.qamp" } + } + } + ] + } + } +} \ No newline at end of file diff --git a/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.old.json b/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.old.json new file mode 100644 index 0000000..3afc57f --- /dev/null +++ b/Qrakhen.Qamp.VsCode/syntaxes/qamp.tmLanguage.old.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "Q&", + "patterns": [ + { + "name": "keyword.control.qamp", + "match": "\\b(if|else|while|return|function|fq|funq|do|for|print)\\b" + }, + { + "name": "number.literal.qamp", + "match": "\\b(\\d+?)\\b" + }, + { + "name": "string.quoted.double.qamp", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.qamp", + "match": "\\\\." + } + ] + }, + { + "name": "string.quoted.single.qamp", + "begin": "'", + "end": "'", + "patterns": [ + { + "name": "constant.character.escape.qamp", + "match": "\\\\." + } + ] + } + ], + "scopeName": "source.qamp" +} \ No newline at end of file diff --git a/Qrakhen.Qamp.sln b/Qrakhen.Qamp.sln index 7c78cf3..3e10aa0 100644 --- a/Qrakhen.Qamp.sln +++ b/Qrakhen.Qamp.sln @@ -17,12 +17,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qrakhen.Qamp.Core.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qrakhen.Qamp.Tests", "Qrakhen.Qamp.Tests\Qrakhen.Qamp.Tests.csproj", "{5440D742-6149-417A-B9C8-4DEF951221E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qrakhen.Qamp.Editor", "Qrakhen.Qamp.Editor\Qrakhen.Qamp.Editor.csproj", "{BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qrakhen.Qamp.Memory", "Qrakhen.Qamp.Memory\Qrakhen.Qamp.Memory.csproj", "{A8876A55-8007-4D20-9637-2099F1B82DAE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qrakhen.TilingFrames", "Qrakhen.TilingFrames\Qrakhen.TilingFrames.csproj", "{25C7B034-34AA-44A5-A428-37942B567AC2}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -87,14 +83,6 @@ Global {5440D742-6149-417A-B9C8-4DEF951221E9}.Release|Any CPU.Build.0 = Release|Any CPU {5440D742-6149-417A-B9C8-4DEF951221E9}.Release|x64.ActiveCfg = Release|Any CPU {5440D742-6149-417A-B9C8-4DEF951221E9}.Release|x64.Build.0 = Release|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Debug|x64.ActiveCfg = Debug|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Debug|x64.Build.0 = Debug|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Release|Any CPU.Build.0 = Release|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Release|x64.ActiveCfg = Release|Any CPU - {BE50AA8C-7D8F-4DDA-8102-92CFCE74DA96}.Release|x64.Build.0 = Release|Any CPU {A8876A55-8007-4D20-9637-2099F1B82DAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8876A55-8007-4D20-9637-2099F1B82DAE}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8876A55-8007-4D20-9637-2099F1B82DAE}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -103,14 +91,6 @@ Global {A8876A55-8007-4D20-9637-2099F1B82DAE}.Release|Any CPU.Build.0 = Release|Any CPU {A8876A55-8007-4D20-9637-2099F1B82DAE}.Release|x64.ActiveCfg = Release|Any CPU {A8876A55-8007-4D20-9637-2099F1B82DAE}.Release|x64.Build.0 = Release|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Debug|x64.ActiveCfg = Debug|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Debug|x64.Build.0 = Debug|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Release|Any CPU.Build.0 = Release|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Release|x64.ActiveCfg = Release|Any CPU - {25C7B034-34AA-44A5-A428-37942B567AC2}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Static/test.qp b/Static/test.qp index f0fe825..62557a8 100644 --- a/Static/test.qp +++ b/Static/test.qp @@ -1,5 +1,7 @@ print("\nQ& Test script."); +var now = time(); + *~ how <~ 'very cool'; var _WHAT_ = "ABQ&%$#@!"; @@ -11,15 +13,14 @@ var c <~ 8; :: _WHAT_.SubString(2, 2) + ' is ' + how; print(a * b * c * d); -if (a > d) { - :: "compare operator is sane"; -} else { - :: "sanity check failed"; -} +if (a > d) { :: "compare operator is sane"; } +else { :: "sanity check failed"; } -for (*~i<~1;i<=16;i++) { - :: "[" + i + "]: " + i*i; -} +for (*~i<~1;i<=16;i++) { :: "[" + i + "]: " + i * i; } + +# this part is spooky as fuck, write(b) prints out random variables :x +# almost like its taking the slot index of the global register, huh... +for (;b>0;) { ::b; b--; write(b); } fq fib(n) { if (n<2) <: 1; <: fib(n-1) + fib(n-2); } @@ -29,4 +30,19 @@ for (*~i<~0;i<16;i++) { } :: fibs; -:: "if you can read this, Q& probably works. Wow." \ No newline at end of file +class Vector { + Vector(x, y, z) { + .~:x <~ x; + this.y = y; + this:z <~ z; + } +} + +var delta = time() - now; +:: "this took " + delta + " microseconds. which are ~" + (delta / 1000) + " milliseconds."; + +var content = fread("./Build/.qpb"); +::typeof content; +write(content); + +:: "if you can read this, Q& probably works. Wow!"; diff --git a/build b/build index 2fdabde..773e963 100755 --- a/build +++ b/build @@ -7,5 +7,5 @@ DATE=`date` mkdir -p $FOUT cp -r ./Static/ $FOUT echo "$DEST" > "$FOUT.qpb" -echo "$date" >> "$FOUT.qpb" +echo "$DATE" >> "$FOUT.qpb" dotnet build ./Qrakhen.Qamp.CLI/ -o $FOUT