diff --git a/README.md b/README.md
index e7a25ab..dd2f76f 100644
--- a/README.md
+++ b/README.md
@@ -162,12 +162,12 @@ SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F4
[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus")
-- **GSM** (Generate Secure Macros)\[0.13\], package allows
+- **GSM** (Generate Secure Macros)\[0.14\], package allows
to create secured macros stored in SAS Proc FCMP functions.
The dataset with functions can be shared between different operating systems
and allows to generate macros on site without showing their code.
-SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144
+SHA256 digest for GSM: 93D88D4465B68984E938212241DE55C7B12EBC20601538553AC9E1AC0628C006
[Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM")
diff --git a/packages/README.md b/packages/README.md
index 8196de5..aa9ec2c 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -110,12 +110,12 @@ SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F4
---
-- **GSM** (Generate Secure Macros)\[0.13\], package allows
+- **GSM** (Generate Secure Macros)\[0.14\], package allows
to create secured macros stored in SAS Proc FCMP functions.
The dataset with functions can be shared between different operating systems
and allows to generate macros on site without showing their code.
-SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144
+SHA256 digest for GSM: 93D88D4465B68984E938212241DE55C7B12EBC20601538553AC9E1AC0628C006
[Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM")
diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt
index 0ca9136..d3e54d2 100644
--- a/packages/SHA256_for_packages.txt
+++ b/packages/SHA256_for_packages.txt
@@ -1,3 +1,6 @@
+/* 20210908 */
+GSM: 93D88D4465B68984E938212241DE55C7B12EBC20601538553AC9E1AC0628C006
+
/* 20210818 */
BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F
diff --git a/packages/gsm.md b/packages/gsm.md
index 80f6391..0bdc973 100644
--- a/packages/gsm.md
+++ b/packages/gsm.md
@@ -8,7 +8,7 @@
---
-# The GSM package [ver. 0.13] ###############################################
+# The GSM package [ver. 0.14] ###############################################
The **GSM** (a.k.a. *Generate Secure Macros*) package allows
to create secured macros stored in SAS Proc FCMP functions.
@@ -44,12 +44,12 @@ See examples for more details.
*How to use it:*
- - Copy all files with your macros into a directory.
+ - Copy all files with your secured macros code into a directory.
Best approach is to have one file for one macro.
- - Copy a path the directory.
+ - Copy a path to the directory.
- Run the following code:
```
- %GSM(, cmplib=)
+ %GSM(, cmplib=)
```
- Share generated `ZIP` file (unzip and run the code).
@@ -68,7 +68,7 @@ Required SAS Components:
* SAS package generated by generatePackage, version 20210528 *
The SHA256 hash digest for package BasePlus:
-`2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144`
+`93D88D4465B68984E938212241DE55C7B12EBC20601538553AC9E1AC0628C006`
## >>> `%GSM()` macro: <<< #######################
@@ -114,27 +114,33 @@ The basic syntax is the following, the `<...>` means optional parameters:
<,cmplib=work.generateMacros>
<,source2=>
<,outpath=>
+ <,encodingRestricted=>
)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**Arguments description**:
-1. `path` - *Required*, indicates a directory which contains files with macros.
- Only files with `sas` extension are used.
+1. `path` - *Required*, indicates a directory which contains files with macros.
+ Only files with `sas` extension are used.
-* `trim=` - *Optional*, the default value is `0`.
- If set to `1` then lines of macro code are trimmed.
- If set to `2` then lines of macro code are stripped.
+* `trim=` - *Optional*, the default value is `0`.
+ If set to `1` then lines of macro code are trimmed.
+ If set to `2` then lines of macro code are stripped.
-* `cmplib=` - *Optional*, the default value is `work.generateMacros`.
- Names the dataset which will contain generated functions.
+* `cmplib=` - *Optional*, the default value is `work.generateMacros`.
+ Names the dataset which will contain generated functions.
-* `source2=` - *Optional*, the default value is null.
- Indicate if `%includ`-ed files are printed out.
- Any value other than null enables printing.
+* `source2=` - *Optional*, the default value is null.
+ Indicate if `%includ`-ed files are printed out.
+ Any value other than null enables printing.
-* `outpath=` - *Optional*, the default value is set the same as the `path`.
- Points a directory in which a result (a zip file) is generated.
+* `outpath=` - *Optional*, the default value is set the same as the `path`.
+ Points a directory in which a result (a zip file) is generated.
+
+* `encodingRestricted=` - *Optional*, the default value is `0`.
+ If set to 1 then if User session encoding is different from
+ encoding of the session which generates the dataset then
+ the generateMacros() function will not execute macro code.
---
@@ -237,7 +243,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
## License ####################################################################
-Copyright (c) 2021 Bartosz Jablonski
+Copyright (c) Bartosz Jablonski, since 2021
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/packages/gsm.zip b/packages/gsm.zip
index bb0273f..836b08a 100644
Binary files a/packages/gsm.zip and b/packages/gsm.zip differ