Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d81Wv-0004jx-Ff for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 May 2017 09:34:05 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1d81Wu-0002tN-Qf for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 May 2017 09:34:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1d81Wu-0002tA-5P for pgadmin-hackers@postgresql.org; Tue, 09 May 2017 09:34:04 +0000 Received: from mail-wr0-x235.google.com ([2a00:1450:400c:c0c::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1d81Wq-0000tN-QX for pgadmin-hackers@postgresql.org; Tue, 09 May 2017 09:34:03 +0000 Received: by mail-wr0-x235.google.com with SMTP id z52so64750778wrc.2 for ; Tue, 09 May 2017 02:34:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=U3ogUw8KJmWIJ88+hGk5S+UoaZWw4BY9D8vKiODKZsU=; b=ETvswMNRIt6IJyNECLSILxwqKC2xUBiF96u3VWoFBheEv/U+GLbJghfLm/4ffaU2yw wRtZ1j1eeOnpQ00dRxakegnkrEnPGRlT+Ssf4U8FoK5Z1SXHC/g8GuWb/fp9q8EHGaN2 GFOiDoZ1CySETD8/RZyoXL8DywyNtY1rGIoJ7OV+kNm5c3WOaEF7sEv7mhK5MzsAVk36 Da4+h7iM0qHNkSK/KtudlG7oFphQHVofcGX4TBA1k2QEUlt0uE/Xj9A7c/jlNkWhU5rs oIlJ8nlwZIJYcJoZEAQNiyBuRPIlfvnduUjLgh6o71jZ+LKRnIMnycc4kyibH+1V120P Wbhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=U3ogUw8KJmWIJ88+hGk5S+UoaZWw4BY9D8vKiODKZsU=; b=h4HsMrzwCSKfmAF0klLN0N+QS9lXufhM8YREgK5ncfkeEOvBMb+ybnA/07D7Bsmj0t 20dNT3z3zxWmS7+BEBmMwIofRbXLUCwWAHgC6Al/WD3XRds1JUug83+J5Mk/L0A++0e7 oT1OEzUXoanY1wWY+iYWV/Vnjdq0kccFneVzS+1yEI7UCqZaeI6XCcjImGcxb+Ri1TvA 5YXaqtSo7zjc0J/YSPAVqTG/AmLu1HrPvyh57m2oAEzYznbUE0PEBUx8hNhbm2QTKS4+ JlSdD+Z8upQAWoO6Ma5uVGww7IlzwofJ0g7lMTMsAeaDDtdCnvN25AYJNnUmnl1wPdGy cYuw== X-Gm-Message-State: AN3rC/6sjMrHPXq9QMbn/4OvNamP87mC7IsO8/VMu4SL1vgoDX0QlCBb ZqbgGJRVlX5EmX1x0uOtPImylXqHpUGByD4= X-Received: by 10.223.165.94 with SMTP id j30mr48341548wrb.111.1494322438746; Tue, 09 May 2017 02:33:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.136.70 with HTTP; Tue, 9 May 2017 02:33:37 -0700 (PDT) From: Murtuza Zabuawala Date: Tue, 9 May 2017 15:03:37 +0530 Message-ID: Subject: [pgAdmin4][PATCH] To add handling of BOM character in query tool To: pgadmin-hackers Content-Type: multipart/mixed; boundary=f403045f240c248ddd054f140e4b X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --f403045f240c248ddd054f140e4b Content-Type: multipart/alternative; boundary=f403045f240c248dd7054f140e49 --f403045f240c248dd7054f140e49 Content-Type: text/plain; charset=UTF-8 Hi, Please find patch to fix the issue handling BOM characters in user files when they load their sql files in query tool. RM#2369 FYI, I have attached sample BOM file in redmine for testing. -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --f403045f240c248dd7054f140e49 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find patch to fix the issue = handling BOM characters in user files when they load their sql files in que= ry tool.
RM#2369

FYI,
I have a= ttached sample BOM file in redmine for testing.

--
Regards,
Murtuza Zabuawala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Comp= any

--f403045f240c248dd7054f140e49-- --f403045f240c248ddd054f140e4b Content-Type: text/plain; charset=US-ASCII; name="fix_bom.diff" Content-Disposition: attachment; filename="fix_bom.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2hcwbc20 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19p bml0X18ucHkKaW5kZXggNmUwODFiMS4uODVkN2ZiNCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkK QEAgLTE3LDYgKzE3LDcgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGZy b20gc3lzIGltcG9ydCBwbGF0Zm9ybSBhcyBfcGxhdGZvcm0KIGltcG9ydCBj b25maWcKK2ltcG9ydCBjb2RlY3MKIAogaW1wb3J0IHNpbXBsZWpzb24gYXMg anNvbgogZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBSZXNw b25zZSwgc2Vzc2lvbiwgcmVxdWVzdCBhcyByZXEsIHVybF9mb3IKQEAgLTkz Miw2ICs5MzMsNjggQEAgY2xhc3MgRmlsZW1hbmFnZXIob2JqZWN0KToKICAg ICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1Bh dGgsIG5ld05hbWUKIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY2hl Y2tfZmlsZV9mb3JfYm9tX2FuZF9iaW5hcnkoZmlsZW5hbWUsIGVuYz0idXRm LTgiKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgdXRpbGl0eSBmdW5j dGlvbiB3aWxsIGNoZWNrIGlmIGZpbGUgaXMgQmluYXJ5IGZpbGUKKyAgICAg ICAgYW5kL29yIGlmIGl0IHN0YXJ0c3dpdGggQk9NIGNoYXJhY3RlcgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBmaWxlbmFtZTogRmlsZQorICAg ICAgICAgICAgZW5jOiBFbmNvZGluZyBmb3IgdGhlIGZpbGUKKworICAgICAg ICBSZXR1cm5zOgorICAgICAgICAgICAgU3RhdHVzKEVycm9yPyksIEVycm9y IG1lc3NhZ2UsIEJpbmFyeSBmaWxlIGZsYWcsCisgICAgICAgICAgICBCT00g Y2hhcmFjdGVyIGZsYWcgYW5kIEVuY29kaW5nIHRvIG9wZW4gZmlsZQorICAg ICAgICAiIiIKKyAgICAgICAgc3RhdHVzID0gVHJ1ZQorICAgICAgICBlcnJf bXNnID0gTm9uZQorICAgICAgICBpc19zdGFydHN3aXRoX2JvbSA9IEZhbHNl CisKKyAgICAgICAgIyBjaGVjayBpZiBmaWxlIHR5cGUgaXMgdGV4dCBvciBi aW5hcnkKKyAgICAgICAgdGV4dF9jaGFycyA9IGJ5dGVhcnJheShbNywgOCwg OSwgMTAsIDEyLCAxMywgMjddKSBcCisgICAgICAgICAgICAgICAgICAgICsg Ynl0ZWFycmF5KHJhbmdlKDB4MjAsIDB4N2YpKSBcCisgICAgICAgICAgICAg ICAgICAgICsgYnl0ZWFycmF5KHJhbmdlKDB4ODAsIDB4MTAwKSkKKworICAg ICAgICBkZWYgaXNfYmluYXJ5X3N0cmluZyhieXRlc19kYXRhKToKKyAgICAg ICAgICAgICIiIkNoZWNrcyBpZiBzdHJpbmcgZGF0YSBpcyBiaW5hcnkiIiIK KyAgICAgICAgICAgIHJldHVybiBib29sKAorICAgICAgICAgICAgICAgICAg ICBieXRlc19kYXRhLnRyYW5zbGF0ZShOb25lLCB0ZXh0X2NoYXJzKQorICAg ICAgICAgICAgICAgICkKKworICAgICAgICAjIHJlYWQgdGhlIGZpbGUKKyAg ICAgICAgdHJ5OgorCisgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUs ICdyYicpIGFzIGY6CisgICAgICAgICAgICAgICAgZmlsZV9kYXRhID0gZi5y ZWFkKDEwMjQpCisKKyAgICAgICAgICAgICMgQ2hlY2sgZm9yIEJPTSBpbiBm aWxlIGRhdGEKKyAgICAgICAgICAgIGZvciBlbmNvZGluZywgYm9tcyBpbiBc CisgICAgICAgICAgICAgICAgICAgICgndXRmLTgtc2lnJywgKGNvZGVjcy5C T01fVVRGOCwpKSwgXAorICAgICAgICAgICAgICAgICAgICAoJ3V0Zi0xNics IChjb2RlY3MuQk9NX1VURjE2X0xFLCBjb2RlY3MuQk9NX1VURjE2X0JFKSks IFwKKyAgICAgICAgICAgICAgICAgICAgKCd1dGYtMzInLCAoY29kZWNzLkJP TV9VVEYzMl9MRSwgY29kZWNzLkJPTV9VVEYzMl9CRSkpOgorICAgICAgICAg ICAgICAgIGlmIGFueShmaWxlX2RhdGEuc3RhcnRzd2l0aChib20pIGZvciBi b20gaW4gYm9tcyk6CisgICAgICAgICAgICAgICAgICAgIGlzX3N0YXJ0c3dp dGhfYm9tID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbmMgPSBlbmNv ZGluZworCisgICAgICAgICAgICAjIENoZWNrIGlmIHN0cmluZyBpcyBiaW5h cnkKKyAgICAgICAgICAgIGlzX2JpbmFyeSA9IGlzX2JpbmFyeV9zdHJpbmco ZmlsZV9kYXRhKQorCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGV4Ogor ICAgICAgICAgICAgc3RhdHVzID0gRmFsc2UKKyAgICAgICAgICAgICMgd2Ug ZG9uJ3Qgd2FudCB0byBleHBvc2UgcmVhbCBwYXRoIG9mIGZpbGUKKyAgICAg ICAgICAgICMgc28gb25seSBzaG93IGVycm9yIG1lc3NhZ2UuCisgICAgICAg ICAgICBpZiBleC5zdHJlcnJvciA9PSAnUGVybWlzc2lvbiBkZW5pZWQnOgor ICAgICAgICAgICAgICAgIGVycl9tc2cgPSB1IkVycm9yOiB7MH0iLmZvcm1h dChleC5zdHJlcnJvcikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgZXJyX21zZyA9IHUiRXJyb3I6IHswfSIuZm9ybWF0KHN0cihleCkp CisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKyAgICAgICAg ICAgIHN0YXR1cyA9IEZhbHNlCisgICAgICAgICAgICBlcnJfbXNnID0gdSJF cnJvcjogezB9Ii5mb3JtYXQoc3RyKGV4KSkKKworICAgICAgICByZXR1cm4g c3RhdHVzLCBlcnJfbXNnLCBpc19iaW5hcnksIGlzX3N0YXJ0c3dpdGhfYm9t LCBlbmMKKwogICAgIGRlZiBhZGRmb2xkZXIoc2VsZiwgcGF0aCwgbmFtZSk6 CiAgICAgICAgICIiIgogICAgICAgICBGdW5jdGlvbmFsaXR5IHRvIGNyZWF0 ZSBuZXcgZm9sZGVyCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvX19pbml0X18ucHkKaW5kZXggMmQxZDRlNS4uNjQzMWIzYSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRf Xy5weQpAQCAtMTIsNiArMTIsNyBAQCBpbXBvcnQgc2ltcGxlanNvbiBhcyBq c29uCiBpbXBvcnQgb3MKIGltcG9ydCBwaWNrbGUKIGltcG9ydCByYW5kb20K K2ltcG9ydCBjb2RlY3MKIAogZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2Us IHVybF9mb3IsIHJlbmRlcl90ZW1wbGF0ZSwgc2Vzc2lvbiwgcmVxdWVzdAog ZnJvbSBmbGFza19iYWJlbCBpbXBvcnQgZ2V0dGV4dApAQCAtMTIyMCw3ICsx MjIxLDEwIEBAIGRlZiBsb2FkX2ZpbGUoKToKIAogICAgIGZpbGVfcGF0aCA9 IHVucXVvdGUoZmlsZV9kYXRhWydmaWxlX25hbWUnXSkKICAgICBpZiBoYXNh dHRyKHN0ciwgJ2RlY29kZScpOgotICAgICAgICBmaWxlX3BhdGggPSB1bnF1 b3RlKGZpbGVfZGF0YVsnZmlsZV9uYW1lJ10pLmVuY29kZSgndXRmLTgnKS5k ZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgZmlsZV9wYXRoID0gdW5xdW90ZSgK KyAgICAgICAgICAgIGZpbGVfZGF0YVsnZmlsZV9uYW1lJ10KKyAgICAgICAg KS5lbmNvZGUoJ3V0Zi04JykuZGVjb2RlKCd1dGYtOCcpCisKICAgICAjIHJl dHJpZXZlIHN0b3JhZ2UgZGlyZWN0b3J5IHBhdGgKICAgICBzdG9yYWdlX21h bmFnZXJfcGF0aCA9IGdldF9zdG9yYWdlX2RpcmVjdG9yeSgpCiAgICAgaWYg c3RvcmFnZV9tYW5hZ2VyX3BhdGg6CkBAIC0xMjMwLDQ1ICsxMjM0LDI3IEBA IGRlZiBsb2FkX2ZpbGUoKToKICAgICAgICAgICAgIGZpbGVfcGF0aC5sc3Ry aXAoJy8nKS5sc3RyaXAoJ1xcJykKICAgICAgICAgKQogCi0gICAgZmlsZV9k YXRhID0gTm9uZQorICAgIHN0YXR1cywgZXJyX21zZywgaXNfYmluYXJ5LCBc CisgICAgICAgIGlzX3N0YXJ0c3dpdGhfYm9tLCBlbmMgPSBGaWxlbWFuYWdl ci5jaGVja19maWxlX2Zvcl9ib21fYW5kX2JpbmFyeSgKKyAgICAgICAgICAg IGZpbGVfcGF0aAorICAgICAgICApCiAKLSAgICAjIGNoZWNrIGlmIGZpbGUg dHlwZSBpcyB0ZXh0IG9yIGJpbmFyeQotICAgIHRleHRjaGFycyA9IGJ5dGVh cnJheSgKLSAgICAgICAgWzcsIDgsIDksIDEwLCAxMiwgMTMsIDI3XSkgKyBi eXRlYXJyYXkoCi0gICAgICAgIHJhbmdlKDB4MjAsIDB4N2YpKSArIGJ5dGVh cnJheShyYW5nZSgweDgwLCAweDEwMCkpCisgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigKKyAgICAg ICAgICAgIGVycm9ybXNnPWdldHRleHQoZXJyX21zZykKKyAgICAgICAgKQog Ci0gICAgaXNfYmluYXJ5X3N0cmluZyA9IGxhbWJkYSBieXRlczogYm9vbCgK LSAgICAgICAgYnl0ZXMudHJhbnNsYXRlKE5vbmUsIHRleHRjaGFycykKLSAg ICApCisgICAgaWYgaXNfYmluYXJ5OgorICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKAorICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4 dCgiRmlsZSB0eXBlIG5vdCBzdXBwb3J0ZWQiKQorICAgICAgICApCisKKyAg ICB3aXRoIGNvZGVjcy5vcGVuKGZpbGVfcGF0aCwgJ3InLCBlbmNvZGluZz1l bmMpIGFzIGZpbGVPYmo6CisgICAgICAgIGRhdGEgPSBmaWxlT2JqLnJlYWQo KQogCi0gICAgIyByZWFkIGZpbGUKLSAgICB0cnk6Ci0gICAgICAgIHdpdGgg b3BlbihmaWxlX3BhdGgsICdyYicpIGFzIGZpbGVPYmo6Ci0gICAgICAgICAg ICBpc19iaW5hcnkgPSBpc19iaW5hcnlfc3RyaW5nKGZpbGVPYmoucmVhZCgx MDI0KSkKLSAgICAgICAgICAgIGlmIG5vdCBpc19iaW5hcnk6Ci0gICAgICAg ICAgICAgICAgZmlsZU9iai5zZWVrKDApCi0gICAgICAgICAgICAgICAgaWYg aGFzYXR0cihzdHIsICdkZWNvZGUnKToKLSAgICAgICAgICAgICAgICAgICAg ZmlsZV9kYXRhID0gZmlsZU9iai5yZWFkKCkuZGVjb2RlKCd1dGYtOCcpCi0g ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgZmls ZV9kYXRhID0gZmlsZU9iai5yZWFkKCkKLSAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigK LSAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgiRmlsZSB0 eXBlIG5vdCBzdXBwb3J0ZWQiKQotICAgICAgICAgICAgICAgICkKLSAgICBl eGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAjIHdlIGRvbid0IHdhbnQg dG8gZXhwb3NlIHJlYWwgcGF0aCBvZiBmaWxlCi0gICAgICAgICMgc28gb25s eSBzaG93IGVycm9yIG1lc3NhZ2UuCi0gICAgICAgIGlmIGUuc3RyZXJyb3Ig PT0gJ1Blcm1pc3Npb24gZGVuaWVkJzoKLSAgICAgICAgICAgIGVycl9tc2cg PSAiRXJyb3I6IHswfSIuZm9ybWF0KGUuc3RyZXJyb3IpCi0gICAgICAgIGVs c2U6Ci0gICAgICAgICAgICBlcnJfbXNnID0gIkVycm9yOiB7MH0iLmZvcm1h dChlLnN0cmVycm9yKQotICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPWVycl9tc2cpCi0gICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgotICAgICAgICBlcnJfbXNnID0gIkVycm9yOiB7MH0iLmZvcm1h dChlLnN0cmVycm9yKQotICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPWVycl9tc2cpCiAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKICAgICAgICAgZGF0YT17Ci0gICAgICAgICAgICAnc3Rh dHVzJzogVHJ1ZSwgJ3Jlc3VsdCc6IGZpbGVfZGF0YSwKKyAgICAgICAgICAg ICdzdGF0dXMnOiBUcnVlLCAncmVzdWx0JzogZGF0YSwKICAgICAgICAgfQog ICAgICkKIAo= --f403045f240c248ddd054f140e4b Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --f403045f240c248ddd054f140e4b--