fix: Provide a setting to define encoding for USS files.#1237
Conversation
|
sample files for test: |
3d9a756 to
3214d63
Compare
3214d63 to
00189ed
Compare
|
I am a little confused. I expected to have a setting that would specify the remote encoding:
Does that make sense? |
3519e5e to
2852ae1
Compare
Updated. Please review |
2852ae1 to
ee7a817
Compare
| "description": "Default list of USS paths to search for copybooks\nZowe Explorer version 1.15.0 or higher is required to download copybooks from the mainframe", | ||
| "uniqueItems": true | ||
| }, | ||
| "cobol-lsp.cpy-manager.uss-copybook-encoding": { |
There was a problem hiding this comment.
Is it make sense to have a default value here?
There was a problem hiding this comment.
I see, this is related to downloadBinary flag.
There was a problem hiding this comment.
Yes, if nothing is provided, we download in text mode. In case encoding is provided we download in binary and make the conversion at our end.
grianbrcom
left a comment
There was a problem hiding this comment.
Can you, please, add a unit test with encoding? It will be better to add two: one with existing iconv-lite codepage and one with patched.
| "description": "Default list of USS paths to search for copybooks\nZowe Explorer version 1.15.0 or higher is required to download copybooks from the mainframe", | ||
| "uniqueItems": true | ||
| }, | ||
| "cobol-lsp.cpy-manager.uss-copybook-encoding": { |
There was a problem hiding this comment.
Is it make sense to have a default value here?
| @@ -0,0 +1,49 @@ | |||
| diff --git a/node_modules/iconv-lite/encodings/sbcs-data.js b/node_modules/iconv-lite/encodings/sbcs-data.js | |||
There was a problem hiding this comment.
Oh my... I hope that you know what are you doing =)
There was a problem hiding this comment.
Can you, please, add a unit test with encoding? It will be better to add two: one with existing
iconv-litecodepage and one with patched.
Updated PR
| + "cp1047": "ebcdic1047", | ||
| + "ebcdic1047": { | ||
| + "type": "_sbcs", | ||
| + "chars": "\u0000\u0001\u0002\u0003\u009C\u0009\u0086\u007F\u0097\u008D\u008E\u000B\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u009D\u000A\u0008\u0087\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F\u0080\u0081\u0082\u0083\u0084\u000A\u0017\u001B\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5\u00E7\u00F1\u00A2\u002E\u003C\u0028\u002B\u007C\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF\u00EC\u00DF\u0021\u0024\u002A\u0029\u003B\u005E\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF\u00CC\u0060\u003A\u0023\u0040\'\u003D\"\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u00A1\u00BF\u00D0\u005B\u00DE\u00AE\u00AC\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC\u00BD\u00BE\u00DD\u00A8\u00AF\u005D\u00B4\u00D7\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF\u00E7\u00F7\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" |
There was a problem hiding this comment.
That line is shorter than the other "chars". Was it done on purpose?
There was a problem hiding this comment.
Thanks, I will double-check the conversion table for IBM-1047
There was a problem hiding this comment.
Thanks, @grianbrcom. There was a mistake. Updated.
| "description": "Default list of USS paths to search for copybooks\nZowe Explorer version 1.15.0 or higher is required to download copybooks from the mainframe", | ||
| "uniqueItems": true | ||
| }, | ||
| "cobol-lsp.cpy-manager.uss-copybook-encoding": { |
There was a problem hiding this comment.
I see, this is related to downloadBinary flag.
84b6a3f to
8fa5437
Compare
|
seems, to support zowe dependencies, we added ignore-script, which avoids post-install script to run ( patch-package relies on this). And that's why the build fails as the encoding test fails. Trying to see what can be done :( |
8fa5437 to
9dcf75e
Compare
|
@ap891843, does the encoding setting also apply to download from a dataset? |
9dcf75e to
5b1861f
Compare
Updated to work with DSN's. Same settings is used for both DSN and USS for now. |
| @@ -0,0 +1,49 @@ | |||
| diff --git a/node_modules/iconv-lite/encodings/sbcs-data.js b/node_modules/iconv-lite/encodings/sbcs-data.js | |||
There was a problem hiding this comment.
I still don't understand of this exact file
There was a problem hiding this comment.
Well, okay. Anton explained it to me. Is it the only way to do that?
There was a problem hiding this comment.
No actually.
We can raise a PR on iconv-lite. But I don't think it would be merged.
Vit showed me this PR from 2015 - pillarjs/iconv-lite#112
eb6ecc4 to
fe48ef0
Compare
Signed-off-by: ap891843 <aman.prashant@broadcom.com>
fe48ef0 to
62edeaf
Compare
| describe('Test iconv lib correctly decodes a binary buffer', () => { | ||
|
|
||
| it('checks iconv-lite decodes correctly for patched ebcdic encodings 1147 / 037/ 1047', () => { | ||
| expect(iconv.decode(Buffer.from([0xF3, 0xF0, 0xF0, 0x9F, 0x40, 0x40]), "cp1147")).toBe("300€ "); |
There was a problem hiding this comment.
Encoding not recognized: 'cp1147' (searched as: 'cp1147')
There was a problem hiding this comment.
Yes. It's because the PR Jenkins file is not picked.
Anton tested this on https://ci.eclipse.org/che4z/job/LSP%20for%20COBOL/job/bugfix%252FUS798758-uss/
There was a problem hiding this comment.
Oh sorry, forget to mention. Yes, it was tested properly in CI.
There was a problem hiding this comment.
Let me run it for the latest changes.

This should work for most of the cases but not all cases.
Signed-off-by: ap891843 aman.prashant@broadcom.com