From 24175d13cad5d091378a06f25bf54a6d381fa44c Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Fri, 24 Jul 2026 16:30:04 -0400 Subject: [PATCH 1/7] internal procs --- content/language/{proc => internal}/_dm_db_close.md | 0 content/language/{proc => internal}/_dm_db_columns.md | 0 content/language/{proc => internal}/_dm_db_connect.md | 0 content/language/{proc => internal}/_dm_db_error_msg.md | 0 content/language/{proc => internal}/_dm_db_execute.md | 0 .../language/{proc => internal}/_dm_db_is_connected.md | 0 content/language/{proc => internal}/_dm_db_new_con.md | 0 content/language/{proc => internal}/_dm_db_new_query.md | 0 content/language/{proc => internal}/_dm_db_next_row.md | 0 content/language/{proc => internal}/_dm_db_quote.md | 0 content/language/{proc => internal}/_dm_db_row_count.md | 0 .../language/{proc => internal}/_dm_db_rows_affected.md | 0 content/language/internal/_index.md | 8 ++++++++ 13 files changed, 8 insertions(+) rename content/language/{proc => internal}/_dm_db_close.md (100%) rename content/language/{proc => internal}/_dm_db_columns.md (100%) rename content/language/{proc => internal}/_dm_db_connect.md (100%) rename content/language/{proc => internal}/_dm_db_error_msg.md (100%) rename content/language/{proc => internal}/_dm_db_execute.md (100%) rename content/language/{proc => internal}/_dm_db_is_connected.md (100%) rename content/language/{proc => internal}/_dm_db_new_con.md (100%) rename content/language/{proc => internal}/_dm_db_new_query.md (100%) rename content/language/{proc => internal}/_dm_db_next_row.md (100%) rename content/language/{proc => internal}/_dm_db_quote.md (100%) rename content/language/{proc => internal}/_dm_db_row_count.md (100%) rename content/language/{proc => internal}/_dm_db_rows_affected.md (100%) create mode 100644 content/language/internal/_index.md diff --git a/content/language/proc/_dm_db_close.md b/content/language/internal/_dm_db_close.md similarity index 100% rename from content/language/proc/_dm_db_close.md rename to content/language/internal/_dm_db_close.md diff --git a/content/language/proc/_dm_db_columns.md b/content/language/internal/_dm_db_columns.md similarity index 100% rename from content/language/proc/_dm_db_columns.md rename to content/language/internal/_dm_db_columns.md diff --git a/content/language/proc/_dm_db_connect.md b/content/language/internal/_dm_db_connect.md similarity index 100% rename from content/language/proc/_dm_db_connect.md rename to content/language/internal/_dm_db_connect.md diff --git a/content/language/proc/_dm_db_error_msg.md b/content/language/internal/_dm_db_error_msg.md similarity index 100% rename from content/language/proc/_dm_db_error_msg.md rename to content/language/internal/_dm_db_error_msg.md diff --git a/content/language/proc/_dm_db_execute.md b/content/language/internal/_dm_db_execute.md similarity index 100% rename from content/language/proc/_dm_db_execute.md rename to content/language/internal/_dm_db_execute.md diff --git a/content/language/proc/_dm_db_is_connected.md b/content/language/internal/_dm_db_is_connected.md similarity index 100% rename from content/language/proc/_dm_db_is_connected.md rename to content/language/internal/_dm_db_is_connected.md diff --git a/content/language/proc/_dm_db_new_con.md b/content/language/internal/_dm_db_new_con.md similarity index 100% rename from content/language/proc/_dm_db_new_con.md rename to content/language/internal/_dm_db_new_con.md diff --git a/content/language/proc/_dm_db_new_query.md b/content/language/internal/_dm_db_new_query.md similarity index 100% rename from content/language/proc/_dm_db_new_query.md rename to content/language/internal/_dm_db_new_query.md diff --git a/content/language/proc/_dm_db_next_row.md b/content/language/internal/_dm_db_next_row.md similarity index 100% rename from content/language/proc/_dm_db_next_row.md rename to content/language/internal/_dm_db_next_row.md diff --git a/content/language/proc/_dm_db_quote.md b/content/language/internal/_dm_db_quote.md similarity index 100% rename from content/language/proc/_dm_db_quote.md rename to content/language/internal/_dm_db_quote.md diff --git a/content/language/proc/_dm_db_row_count.md b/content/language/internal/_dm_db_row_count.md similarity index 100% rename from content/language/proc/_dm_db_row_count.md rename to content/language/internal/_dm_db_row_count.md diff --git a/content/language/proc/_dm_db_rows_affected.md b/content/language/internal/_dm_db_rows_affected.md similarity index 100% rename from content/language/proc/_dm_db_rows_affected.md rename to content/language/internal/_dm_db_rows_affected.md diff --git a/content/language/internal/_index.md b/content/language/internal/_index.md new file mode 100644 index 000000000..de72cdf2c --- /dev/null +++ b/content/language/internal/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Internal Procs" +weight = 0 ++++ +{% parity() %} +Because these are meant for internal use and undocumented,
+OpenDream's implementation of these procs may vary in accuracy. +{% end %} \ No newline at end of file From ffc1bde734b057b496ac2b6382643e7783f0b51d Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Fri, 24 Jul 2026 19:42:14 -0400 Subject: [PATCH 2/7] documents all the procs --- content/language/internal/_dm_db_close.md | 14 +++++- content/language/internal/_dm_db_columns.md | 48 ++++++++++++++++++- content/language/internal/_dm_db_connect.md | 45 ++++++++++++++++- content/language/internal/_dm_db_error_msg.md | 11 ++++- content/language/internal/_dm_db_execute.md | 32 ++++++++++++- .../language/internal/_dm_db_is_connected.md | 7 ++- content/language/internal/_dm_db_new_con.md | 12 ++++- content/language/internal/_dm_db_new_query.md | 11 ++++- content/language/internal/_dm_db_next_row.md | 24 +++++++++- content/language/internal/_dm_db_quote.md | 12 ++++- content/language/internal/_dm_db_row_count.md | 11 ++++- .../language/internal/_dm_db_rows_affected.md | 11 ++++- content/language/internal/_index.md | 1 + 13 files changed, 216 insertions(+), 23 deletions(-) diff --git a/content/language/internal/_dm_db_close.md b/content/language/internal/_dm_db_close.md index 8d58cbd75..827ba5494 100644 --- a/content/language/internal/_dm_db_close.md +++ b/content/language/internal/_dm_db_close.md @@ -1,7 +1,17 @@ +++ title = "_dm_db_close" -render = false +[[extra.args]] +name = "db_obj" +description = "An internal database object, db_conn or db_query" +[extra.return] +type = "num" # AUTOGEN SKIP +description = "`TRUE` if the object was closed, otherwise `FALSE`" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +"Closes" the [`db_conn`](./_dm_db_new_con.md) or [`db_query`](./_dm_db_new_query.md), resetting the object to its initial state. + +It's important to ensure that `db_conn` instances always closes its connection at the end of its lifetime,
+as failing to do so can cause hanging connections that are impossible to close. \ No newline at end of file diff --git a/content/language/internal/_dm_db_columns.md b/content/language/internal/_dm_db_columns.md index ee79df2d8..6eb088208 100644 --- a/content/language/internal/_dm_db_columns.md +++ b/content/language/internal/_dm_db_columns.md @@ -1,7 +1,51 @@ +++ title = "_dm_db_columns" -render = false +[[extra.args]] +name = "db_query" +description = "A database query" +[[extra.args]] +name = "column_type" +description = "Path that represents column data" +[extra.return] +type = "list" # AUTOGEN SKIP +description = "An associative list of text keys to instance values" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Once a query is executed, the `db_query` can be used to create a list of names along with their column data, which is useful for iterating over a set of rows. + +Each entry will have the name of the column as the key and an instance of the provided path as the value. +For example, the query: +```sql +SELECT `first_name`, `last_name`, `dob` IN `my_table`; +``` +will create this list: +```dm +list( + "first_name" = new /column(...), + "last_name" = new /column(...), + "dob" = new /column(...), +) +``` + +The arguments provided to each instance will differ based on the database driver. + +## MySql +```dm +/column/New( + name, // column name + table, // also column name + position, // column index, 0-index (BYOND is 1-index) + type, // appears to always be 0 + flag, // column definition flags + length, // appears to always be a huge number + max_length // appears to always be a huge number +) +``` + +## SQLite +```dm +// TODO +``` \ No newline at end of file diff --git a/content/language/internal/_dm_db_connect.md b/content/language/internal/_dm_db_connect.md index f5258fa41..98fa9afca 100644 --- a/content/language/internal/_dm_db_connect.md +++ b/content/language/internal/_dm_db_connect.md @@ -1,7 +1,48 @@ +++ title = "_dm_db_connect" -render = false +[[extra.args]] +name = "db_conn" +description = "A database connection" +[[extra.args]] +name = "dsn" +description = "The data source name (DSN) of the connection" +[[extra.args]] +name = "username" +description = "Username for login credentials" +[[extra.args]] +name = "password" +description = "Password for login credentials" +[[extra.args]] +name = "cursor_type" +description = "Cursor type that the query will use" +[[extra.args]] +name = "?" +description = "The purpose of this argument is unknown" +[extra.return] +type = "num" # AUTOGEN SKIP +description = "`TRUE` if a connection was established successfully, otherwise `FALSE`" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Establishes a remote connection to a database. + +The format for a DSN in BYOND is:
+``` +dbi:[driver]:[identifier]:[address]:[port] +dbi:mysql:my_database:192.168.0.1:3306 +``` + +Database drivers currently supported by BYOND: +- MySQL (`mysql`) +- SQLite (`unknown identifier`) + +{% parity() %} +It is currently unknown if the database changes the values for `cursor_type`. +{% end %} + +`cursor_type` changes how the query is handled: +- `0` uses the database's default cursor behaviour. +- `1` uses client cursor. +- `2` uses server cursor. \ No newline at end of file diff --git a/content/language/internal/_dm_db_error_msg.md b/content/language/internal/_dm_db_error_msg.md index c437e83b8..721e13cfa 100644 --- a/content/language/internal/_dm_db_error_msg.md +++ b/content/language/internal/_dm_db_error_msg.md @@ -1,7 +1,14 @@ +++ title = "_dm_db_error_msg" -render = false +[[extra.args]] +name = "db_obj" +description = "An internal database object, db_conn or db_query" +[extra.return] +type = "text" # AUTOGEN SKIP +description = "The error given by the database object" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +If the provided object did not create an error during its previous action, the error message will be an empty string. \(`""`\) \ No newline at end of file diff --git a/content/language/internal/_dm_db_execute.md b/content/language/internal/_dm_db_execute.md index dec3b3f5e..53ef0a9a9 100644 --- a/content/language/internal/_dm_db_execute.md +++ b/content/language/internal/_dm_db_execute.md @@ -1,7 +1,35 @@ +++ title = "_dm_db_execute" -render = false +[[extra.args]] +name = "db_query" +description = "A database query" +[[extra.args]] +name = "query" +description = "The query being sent to the database" +[[extra.args]] +name = "db_conn" +description = "A database connection" +[[extra.args]] +name = "cursor_type" +description = "Cursor type that the query will use" +[[extra.args]] +name = "?" +description = "The purpose of this argument is unknown" +[extra.return] +type = "num" # AUTOGEN SKIP +description = "`TRUE` if the query executed successfully, otherwise `FALSE`" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Performs a query on a [`db_conn`](./_dm_db_new_con.md) and stores the result in a [`db_query`](./_dm_db_new_query.md).
+ +{% parity() %} +It is currently unknown if the database changes the values for `cursor_type`. +{% end %} + +`cursor_type` changes how the query is handled: +- `0` uses the database's default cursor behaviour. +- `1` uses client cursor. +- `2` uses server cursor. \ No newline at end of file diff --git a/content/language/internal/_dm_db_is_connected.md b/content/language/internal/_dm_db_is_connected.md index 9af83509f..aedc427cf 100644 --- a/content/language/internal/_dm_db_is_connected.md +++ b/content/language/internal/_dm_db_is_connected.md @@ -1,6 +1,11 @@ +++ title = "_dm_db_is_connected" -render = false +[[extra.args]] +name = "db_conn" +description = "A database connection" +[extra.return] +type = "num" # AUTOGEN SKIP +description = "`TRUE` if a database connection is open, otherwise `FALSE`" [extra] od_unimplemented = true # AUTOGEN FIELD diff --git a/content/language/internal/_dm_db_new_con.md b/content/language/internal/_dm_db_new_con.md index 6cfb9aea8..e3e109e98 100644 --- a/content/language/internal/_dm_db_new_con.md +++ b/content/language/internal/_dm_db_new_con.md @@ -1,7 +1,15 @@ +++ title = "_dm_db_new_con" -render = false +[extra.return] +type = "db_conn" # AUTOGEN SKIP +description = "A new connection object" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ +Creates and returns an internal object we call a `db_conn`. + +`db_conn` is a special data type, different from a {{ datum() }} but still counted as an object. +It is used to perform database operations. + +{{ database() }} also internally creates a `db_conn`. \ No newline at end of file diff --git a/content/language/internal/_dm_db_new_query.md b/content/language/internal/_dm_db_new_query.md index f8775fa19..487b44259 100644 --- a/content/language/internal/_dm_db_new_query.md +++ b/content/language/internal/_dm_db_new_query.md @@ -1,7 +1,14 @@ +++ title = "_dm_db_new_query" -render = false +[extra.return] +type = "db_query" # AUTOGEN SKIP +description = "A new query object" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ +Creates and returns an internal object we call a `db_query`. + +`db_query` is a special data type, different from a {{ datum() }} but still counted as an object for reference purposes.
+ +It is used to store the results of a [query](./_dm_db_execute.md). \ No newline at end of file diff --git a/content/language/internal/_dm_db_next_row.md b/content/language/internal/_dm_db_next_row.md index b7e90f4b3..30c28d7d0 100644 --- a/content/language/internal/_dm_db_next_row.md +++ b/content/language/internal/_dm_db_next_row.md @@ -1,7 +1,27 @@ +++ title = "_dm_db_next_row" -render = false +[[extra.args]] +name = "db_query" +description = "A database query" +[[extra.args]] +name = "items" +description = "Container for the row items" +[[extra.args]] +name = "conversions" +description = "A list" +[extra.return] +type = "num" # AUTOGEN SKIP +description = "`TRUE` if another row was selected, otherwise `FALSE`" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +{% parity() %} +Behaviour of `conversions` is currently unknown. +{% end %} + +If possible, inserts the values of the next row into `items`. + +Calling this proc repeatedly will continue stepping through rows until there are no more rows in the selection.
+It is not possible to step backwards. diff --git a/content/language/internal/_dm_db_quote.md b/content/language/internal/_dm_db_quote.md index 102a1b0c2..b03833388 100644 --- a/content/language/internal/_dm_db_quote.md +++ b/content/language/internal/_dm_db_quote.md @@ -1,7 +1,15 @@ +++ title = "_dm_db_quote" -render = false +[[extra.args]] +name = "db_conn" +description = "A database connection" +[extra.return] +type = "text" # AUTOGEN SKIP +description = "Sanitized form of the input text" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Asks the connection to escape the provided text (Ex: `this 'dangerous' text` to `this \\'dangerous\\' text`).
+Very important for treating user input, as it can prevent [malicious attacks](https://en.wikipedia.org/wiki/SQL_injection) on databases. \ No newline at end of file diff --git a/content/language/internal/_dm_db_row_count.md b/content/language/internal/_dm_db_row_count.md index 9e2ad88c8..294cbe6d7 100644 --- a/content/language/internal/_dm_db_row_count.md +++ b/content/language/internal/_dm_db_row_count.md @@ -1,7 +1,14 @@ +++ title = "_dm_db_row_count" -render = false +[[extra.args]] +name = "db_query" +description = "A database query" +[extra.return] +type = "num, null" # AUTOGEN SKIP +description = "The number of rows, or `null` if not applicable" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Returns the number of rows that were **found** by the query's execution. \ No newline at end of file diff --git a/content/language/internal/_dm_db_rows_affected.md b/content/language/internal/_dm_db_rows_affected.md index f979c4f7c..31730391b 100644 --- a/content/language/internal/_dm_db_rows_affected.md +++ b/content/language/internal/_dm_db_rows_affected.md @@ -1,7 +1,14 @@ +++ title = "_dm_db_rows_affected" -render = false +[[extra.args]] +name = "db_query" +description = "A database query" +[extra.return] +type = "num, null" # AUTOGEN SKIP +description = "The number of rows, or `null` if not applicable" [extra] od_unimplemented = true # AUTOGEN FIELD -+++ \ No newline at end of file ++++ + +Returns the number of rows that were **altered** by the query's execution. \ No newline at end of file diff --git a/content/language/internal/_index.md b/content/language/internal/_index.md index de72cdf2c..d764dea5c 100644 --- a/content/language/internal/_index.md +++ b/content/language/internal/_index.md @@ -1,6 +1,7 @@ +++ title = "Internal Procs" weight = 0 +page_template = "proc.html" +++ {% parity() %} Because these are meant for internal use and undocumented,
From 69c5541d77b57a875be2dac7259e29118a38e5ae Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:02:14 -0400 Subject: [PATCH 3/7] small corrections --- content/language/internal/_dm_db_close.md | 2 +- content/language/internal/_dm_db_columns.md | 5 +++-- content/language/internal/_dm_db_new_con.md | 2 +- content/language/internal/_dm_db_new_query.md | 3 +-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/language/internal/_dm_db_close.md b/content/language/internal/_dm_db_close.md index 827ba5494..8abd5b7b2 100644 --- a/content/language/internal/_dm_db_close.md +++ b/content/language/internal/_dm_db_close.md @@ -13,5 +13,5 @@ od_unimplemented = true # AUTOGEN FIELD "Closes" the [`db_conn`](./_dm_db_new_con.md) or [`db_query`](./_dm_db_new_query.md), resetting the object to its initial state. -It's important to ensure that `db_conn` instances always closes its connection at the end of its lifetime,
+It's important to ensure that `db_conn` instances always close their connection at the end of their lifetime,
as failing to do so can cause hanging connections that are impossible to close. \ No newline at end of file diff --git a/content/language/internal/_dm_db_columns.md b/content/language/internal/_dm_db_columns.md index 6eb088208..0a9a89c63 100644 --- a/content/language/internal/_dm_db_columns.md +++ b/content/language/internal/_dm_db_columns.md @@ -14,7 +14,7 @@ description = "An associative list of text keys to instance values" od_unimplemented = true # AUTOGEN FIELD +++ -Once a query is executed, the `db_query` can be used to create a list of names along with their column data, which is useful for iterating over a set of rows. +Once a query is [executed](./_dm_db_execute.md), the `db_query` can be used to create a list of names along with their column data, which is useful for iterating over a set of rows. Each entry will have the name of the column as the key and an instance of the provided path as the value. For example, the query: @@ -30,7 +30,8 @@ list( ) ``` -The arguments provided to each instance will differ based on the database driver. +Each database instance is created with **index-based** arguments. +The arguments that are provided will differ based on the database driver. ## MySql ```dm diff --git a/content/language/internal/_dm_db_new_con.md b/content/language/internal/_dm_db_new_con.md index e3e109e98..5591f40dc 100644 --- a/content/language/internal/_dm_db_new_con.md +++ b/content/language/internal/_dm_db_new_con.md @@ -9,7 +9,7 @@ od_unimplemented = true # AUTOGEN FIELD +++ Creates and returns an internal object we call a `db_conn`. -`db_conn` is a special data type, different from a {{ datum() }} but still counted as an object. +`db_conn` is a special data type, different from a {{ datum() }} but still treated as an object.
It is used to perform database operations. {{ database() }} also internally creates a `db_conn`. \ No newline at end of file diff --git a/content/language/internal/_dm_db_new_query.md b/content/language/internal/_dm_db_new_query.md index 487b44259..57576365e 100644 --- a/content/language/internal/_dm_db_new_query.md +++ b/content/language/internal/_dm_db_new_query.md @@ -9,6 +9,5 @@ od_unimplemented = true # AUTOGEN FIELD +++ Creates and returns an internal object we call a `db_query`. -`db_query` is a special data type, different from a {{ datum() }} but still counted as an object for reference purposes.
- +`db_query` is a special data type, different from a {{ datum() }} but still treated as an object
It is used to store the results of a [query](./_dm_db_execute.md). \ No newline at end of file From 2138188fd61996680730b5efad8488e3a89a7009 Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:05:46 -0400 Subject: [PATCH 4/7] forgot a period --- content/language/internal/_dm_db_new_query.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/language/internal/_dm_db_new_query.md b/content/language/internal/_dm_db_new_query.md index 57576365e..e380cb62e 100644 --- a/content/language/internal/_dm_db_new_query.md +++ b/content/language/internal/_dm_db_new_query.md @@ -9,5 +9,5 @@ od_unimplemented = true # AUTOGEN FIELD +++ Creates and returns an internal object we call a `db_query`. -`db_query` is a special data type, different from a {{ datum() }} but still treated as an object
+`db_query` is a special data type, different from a {{ datum() }} but still treated as an object.
It is used to store the results of a [query](./_dm_db_execute.md). \ No newline at end of file From 9380a5df44106b76b319dd2a88b69ada0c988fcf Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:06:42 -0400 Subject: [PATCH 5/7] we don't call it strings --- content/language/internal/_dm_db_error_msg.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/language/internal/_dm_db_error_msg.md b/content/language/internal/_dm_db_error_msg.md index 721e13cfa..3f7287dc5 100644 --- a/content/language/internal/_dm_db_error_msg.md +++ b/content/language/internal/_dm_db_error_msg.md @@ -11,4 +11,4 @@ description = "The error given by the database object" od_unimplemented = true # AUTOGEN FIELD +++ -If the provided object did not create an error during its previous action, the error message will be an empty string. \(`""`\) \ No newline at end of file +If the provided object did not create an error during its previous action, the error message will be empty text. \(`""`\) \ No newline at end of file From b6f3e98cbb19aea78de015743c17c2ba5d5a9cde Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Sat, 25 Jul 2026 11:43:13 -0400 Subject: [PATCH 6/7] updates the tool to sort internal procs --- .../OpenDreamDocumentationTool.csproj | 2 +- .../OpenDreamDocumentationTool/Program.cs | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/OpenDreamDocumentationTool.csproj b/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/OpenDreamDocumentationTool.csproj index 860c7b09b..10bc04861 100644 --- a/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/OpenDreamDocumentationTool.csproj +++ b/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/OpenDreamDocumentationTool.csproj @@ -1,7 +1,7 @@  Exe - net9.0 + net10.0 enable enable diff --git a/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/Program.cs b/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/Program.cs index 669946c73..8e139c990 100644 --- a/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/Program.cs +++ b/tools/OpenDreamDocumentationTool/OpenDreamDocumentationTool/Program.cs @@ -110,6 +110,11 @@ public static void Main(string[] args) { continue; } + if (file.Contains("language/internal")) { + pathToFile["internalProcs"] = file; + continue; + } + if (!pageTitle.StartsWith('/')) { continue; } @@ -120,10 +125,13 @@ public static void Main(string[] args) { ParseAstStatements(astFile.BlockInner.Statements); var globalProcs = pathToFile["globalProcs"]; + var internalProcs = pathToFile["internalProcs"]; + foreach (var pair in Procs) { var proc = pair.Value; + var usedPath = !proc.Name.StartsWith("_dm_") ? globalProcs : internalProcs; - var newProcPage = globalProcs.Replace("_index.md", $"{proc.Name.ToLower()}.md"); + var newProcPage = usedPath.Replace("_index.md", $"{proc.Name.ToLower()}.md"); ProcessPage(newProcPage, proc, ProcessProc); } From 03c6caa71c64f52c2ce787e2a0cbcf071f5d14e4 Mon Sep 17 00:00:00 2001 From: tontyGH <39193182+tontyGH@users.noreply.github.com> Date: Tue, 18 Aug 2026 15:51:12 -0400 Subject: [PATCH 7/7] tweaks the documentation a little bit --- content/language/internal/_dm_db_columns.md | 5 ----- content/language/internal/_dm_db_connect.md | 5 ++--- content/language/internal/_dm_db_execute.md | 8 +++----- tools/OpenDreamDocumentationTool/OpenDream | 2 +- 4 files changed, 6 insertions(+), 14 deletions(-) mode change 160000 => 120000 tools/OpenDreamDocumentationTool/OpenDream diff --git a/content/language/internal/_dm_db_columns.md b/content/language/internal/_dm_db_columns.md index 0a9a89c63..984e7da0c 100644 --- a/content/language/internal/_dm_db_columns.md +++ b/content/language/internal/_dm_db_columns.md @@ -44,9 +44,4 @@ The arguments that are provided will differ based on the database driver. length, // appears to always be a huge number max_length // appears to always be a huge number ) -``` - -## SQLite -```dm -// TODO ``` \ No newline at end of file diff --git a/content/language/internal/_dm_db_connect.md b/content/language/internal/_dm_db_connect.md index 98fa9afca..3cf3abdab 100644 --- a/content/language/internal/_dm_db_connect.md +++ b/content/language/internal/_dm_db_connect.md @@ -16,8 +16,8 @@ description = "Password for login credentials" name = "cursor_type" description = "Cursor type that the query will use" [[extra.args]] -name = "?" -description = "The purpose of this argument is unknown" +name = "arg_6" +od_unimplemented = true [extra.return] type = "num" # AUTOGEN SKIP description = "`TRUE` if a connection was established successfully, otherwise `FALSE`" @@ -36,7 +36,6 @@ dbi:mysql:my_database:192.168.0.1:3306 Database drivers currently supported by BYOND: - MySQL (`mysql`) -- SQLite (`unknown identifier`) {% parity() %} It is currently unknown if the database changes the values for `cursor_type`. diff --git a/content/language/internal/_dm_db_execute.md b/content/language/internal/_dm_db_execute.md index 53ef0a9a9..e8658f6d5 100644 --- a/content/language/internal/_dm_db_execute.md +++ b/content/language/internal/_dm_db_execute.md @@ -13,8 +13,8 @@ description = "A database connection" name = "cursor_type" description = "Cursor type that the query will use" [[extra.args]] -name = "?" -description = "The purpose of this argument is unknown" +name = "arg_5" +od_unimplemented = true [extra.return] type = "num" # AUTOGEN SKIP description = "`TRUE` if the query executed successfully, otherwise `FALSE`" @@ -25,9 +25,7 @@ od_unimplemented = true # AUTOGEN FIELD Performs a query on a [`db_conn`](./_dm_db_new_con.md) and stores the result in a [`db_query`](./_dm_db_new_query.md).
-{% parity() %} -It is currently unknown if the database changes the values for `cursor_type`. -{% end %} +The query itself must be a single statement. Attempting a query such as `UPDATE mytable SET val = 1; SELECT * FROM mytable;` will create an error. `cursor_type` changes how the query is handled: - `0` uses the database's default cursor behaviour. diff --git a/tools/OpenDreamDocumentationTool/OpenDream b/tools/OpenDreamDocumentationTool/OpenDream deleted file mode 160000 index 371e56348..000000000 --- a/tools/OpenDreamDocumentationTool/OpenDream +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 371e56348e6c8c3d7953255bdc21a7c91853b509 diff --git a/tools/OpenDreamDocumentationTool/OpenDream b/tools/OpenDreamDocumentationTool/OpenDream new file mode 120000 index 000000000..42a6eead1 --- /dev/null +++ b/tools/OpenDreamDocumentationTool/OpenDream @@ -0,0 +1 @@ +D:/Projects/OpenPeam \ No newline at end of file