diff --git a/winixd/functions/run.cpp b/winixd/functions/run.cpp
index 8f47753..ac54562 100644
--- a/winixd/functions/run.cpp
+++ b/winixd/functions/run.cpp
@@ -1,4 +1,3 @@
-
/*
* This file is a part of Winix
* and is distributed under the 2-Clause BSD licence.
diff --git a/winixd/html/fun_uname.html b/winixd/html/fun_uname.html
index eaeab5f..34bc56c 100644
--- a/winixd/html/fun_uname.html
+++ b/winixd/html/fun_uname.html
@@ -2,7 +2,16 @@
{uname_header}
-Winix [sys_ver_major].[sys_ver_minor].[sys_ver_revision]
+Winix [if user_super_user][sys_ver_major].[sys_ver_minor].[sys_ver_revision][end]
+
+{uname_components}
+
+
+ - pikotools [if user_super_user][sys_pikotools_ver_major].[sys_pikotools_ver_minor].[sys_pikotools_ver_patch][end]
+ - morm [if user_super_user][sys_morm_ver_major].[sys_morm_ver_minor].[sys_morm_ver_patch][end]
+ - ezc [if user_super_user][sys_ezc_ver_major].[sys_ezc_ver_minor].[sys_ezc_ver_patch][end]
+ - tito [if user_super_user][sys_tito_ver_major].[sys_tito_ver_minor].[sys_tito_ver_patch][end]
+
[if sys_plugin_tab]
diff --git a/winixd/locale/en b/winixd/locale/en
index 4e10233..dcfc2a3 100644
--- a/winixd/locale/en
+++ b/winixd/locale/en
@@ -515,7 +515,8 @@ subject_header = Edit subject
tinymce_update_button = Update
tinymce_update_progressbar_img_alt = Progressbar
-uname_header = Uname
+uname_header = System
+uname_components = Components
uname_available_plugins = Available plugins
uname_plugin_unknown = Plugin has not set its name
diff --git a/winixd/locale/pl b/winixd/locale/pl
index 8a2e84d..9575e5f 100644
--- a/winixd/locale/pl
+++ b/winixd/locale/pl
@@ -533,7 +533,8 @@ subject_header = Zmień tytuł
tinymce_update_button = Aktualizuj
tinymce_update_progressbar_img_alt = Progressbar
-uname_header = Nazwa systemu
+uname_header = System
+uname_components = Komponenty
uname_available_plugins = Dostępne pluginy
uname_plugin_unknown = Plugin nie ustawił swojej nazwy
diff --git a/winixd/templates/sys.cpp b/winixd/templates/sys.cpp
index 0aee317..aa28570 100644
--- a/winixd/templates/sys.cpp
+++ b/winixd/templates/sys.cpp
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2008-2018, Tomasz Sowa
+ * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,10 @@
#include "templates.h"
#include "core/request.h"
#include "core/version.h"
+#include "pikotools/version.h"
+#include "ezc.h"
+#include "tito.h"
+
namespace Winix
@@ -66,6 +70,83 @@ void sys_ver_revision(Info & i)
+void sys_pikotools_ver_major(Info & i)
+{
+ i.out << PIKOTOOLS_VERSION_MAJOR;
+}
+
+
+void sys_pikotools_ver_minor(Info & i)
+{
+ i.out << PIKOTOOLS_VERSION_MINOR;
+}
+
+
+void sys_pikotools_ver_patch(Info & i)
+{
+ i.out << PIKOTOOLS_VERSION_PATCH;
+}
+
+
+
+void sys_morm_ver_major(Info & i)
+{
+ i.out << MORM_VERSION_MAJOR;
+}
+
+
+void sys_morm_ver_minor(Info & i)
+{
+ i.out << MORM_VERSION_MINOR;
+}
+
+
+void sys_morm_ver_patch(Info & i)
+{
+ i.out << MORM_VERSION_PATCH;
+}
+
+
+
+void sys_ezc_ver_major(Info & i)
+{
+ i.out << EZC_VERSION_MAJOR;
+}
+
+
+void sys_ezc_ver_minor(Info & i)
+{
+ i.out << EZC_VERSION_MINOR;
+}
+
+
+void sys_ezc_ver_patch(Info & i)
+{
+ i.out << EZC_VERSION_PATCH;
+}
+
+
+
+void sys_tito_ver_major(Info & i)
+{
+ i.out << TITO_VERSION_MAJOR;
+}
+
+
+void sys_tito_ver_minor(Info & i)
+{
+ i.out << TITO_VERSION_MINOR;
+}
+
+
+void sys_tito_ver_patch(Info & i)
+{
+ i.out << TITO_VERSION_PATCH;
+}
+
+
+
+
static size_t sys_plugin_index = 0;
diff --git a/winixd/templates/templates.cpp b/winixd/templates/templates.cpp
index d443632..df757e3 100644
--- a/winixd/templates/templates.cpp
+++ b/winixd/templates/templates.cpp
@@ -513,6 +513,18 @@ void Templates::CreateFunctions()
ezc_functions.Insert("sys_ver_major", sys_ver_major);
ezc_functions.Insert("sys_ver_minor", sys_ver_minor);
ezc_functions.Insert("sys_ver_revision", sys_ver_revision);
+ ezc_functions.Insert("sys_pikotools_ver_major", sys_pikotools_ver_major);
+ ezc_functions.Insert("sys_pikotools_ver_minor", sys_pikotools_ver_minor);
+ ezc_functions.Insert("sys_pikotools_ver_patch", sys_pikotools_ver_patch);
+ ezc_functions.Insert("sys_morm_ver_major", sys_morm_ver_major);
+ ezc_functions.Insert("sys_morm_ver_minor", sys_morm_ver_minor);
+ ezc_functions.Insert("sys_morm_ver_patch", sys_morm_ver_patch);
+ ezc_functions.Insert("sys_ezc_ver_major", sys_ezc_ver_major);
+ ezc_functions.Insert("sys_ezc_ver_minor", sys_ezc_ver_minor);
+ ezc_functions.Insert("sys_ezc_ver_patch", sys_ezc_ver_patch);
+ ezc_functions.Insert("sys_tito_ver_major", sys_tito_ver_major);
+ ezc_functions.Insert("sys_tito_ver_minor", sys_tito_ver_minor);
+ ezc_functions.Insert("sys_tito_ver_patch", sys_tito_ver_patch);
ezc_functions.Insert("sys_plugin_tab", sys_plugin_tab);
ezc_functions.Insert("sys_plugin_tab_has_name", sys_plugin_tab_has_name);
ezc_functions.Insert("sys_plugin_tab_name", sys_plugin_tab_name);
diff --git a/winixd/templates/templates.h b/winixd/templates/templates.h
index 4fa9e4a..3286ba8 100644
--- a/winixd/templates/templates.h
+++ b/winixd/templates/templates.h
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2008-2021, Tomasz Sowa
+ * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -436,6 +436,18 @@ namespace TemplatesFunctions
void sys_ver_major(Info & i);
void sys_ver_minor(Info & i);
void sys_ver_revision(Info & i);
+ void sys_pikotools_ver_major(Info & i);
+ void sys_pikotools_ver_minor(Info & i);
+ void sys_pikotools_ver_patch(Info & i);
+ void sys_morm_ver_major(Info & i);
+ void sys_morm_ver_minor(Info & i);
+ void sys_morm_ver_patch(Info & i);
+ void sys_ezc_ver_major(Info & i);
+ void sys_ezc_ver_minor(Info & i);
+ void sys_ezc_ver_patch(Info & i);
+ void sys_tito_ver_major(Info & i);
+ void sys_tito_ver_minor(Info & i);
+ void sys_tito_ver_patch(Info & i);
void sys_plugin_tab(Info & i);
void sys_plugin_tab_has_name(Info & i);
void sys_plugin_tab_name(Info & i);