notepad: Detect if saving will lose information.

Alexander Scott-Johns alexander.scott.johns at googlemail.com
Wed Jun 17 08:12:19 CDT 2009


---
 programs/notepad/En.rc         |    7 +++
 programs/notepad/dialog.c      |   95 +++++++++++++++++++++++++++++++++------
 programs/notepad/notepad_res.h |    2 +
 3 files changed, 89 insertions(+), 15 deletions(-)

--001636c923d7f9475a046d34e711
Content-Type: text/plain; charset=US-ASCII; name="0004-notepad-detect-loss-2009-06-25.txt"
Content-Disposition: attachment; 
	filename="0004-notepad-detect-loss-2009-06-25.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fwe2zkxu0

RnJvbSA3NWI2YTI2NmZlMjdlYjBlMjdmYTNmMmE4MGQ1NDlmOTBiMmRjN2M0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgU2NvdHQtSm9obnMgPGFsZXhhbmRlci5zY290
dC5qb2huc0Bnb29nbGVtYWlsLmNvbT4KRGF0ZTogV2VkLCAxNyBKdW4gMjAwOSAxNDoxMjoxOSAr
MDEwMApTdWJqZWN0OiBub3RlcGFkOiBEZXRlY3QgaWYgc2F2aW5nIHdpbGwgbG9zZSBpbmZvcm1h
dGlvbi4KCi0tLQogcHJvZ3JhbXMvbm90ZXBhZC9Fbi5yYyAgICAgICAgIHwgICAgNyArKysKIHBy
b2dyYW1zL25vdGVwYWQvZGlhbG9nLmMgICAgICB8ICAgOTUgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tCiBwcm9ncmFtcy9ub3RlcGFkL25vdGVwYWRfcmVzLmggfCAgICAy
ICsKIDMgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvcHJvZ3JhbXMvbm90ZXBhZC9Fbi5yYyBiL3Byb2dyYW1zL25vdGVwYWQvRW4u
cmMKaW5kZXggOGEyY2ViOC4uNDQ0YmM3NCAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvbm90ZXBhZC9F
bi5yYworKysgYi9wcm9ncmFtcy9ub3RlcGFkL0VuLnJjCkBAIC0xMjksNCArMTI5LDExIEBAIG1l
bW9yeS4iCiAKIFNUUklOR19VTklDT0RFX0xFLCAgICAgIlVuaWNvZGUgKFVURi0xNikiCiBTVFJJ
TkdfVU5JQ09ERV9CRSwgICAgICJVbmljb2RlIChVVEYtMTYgYmlnLWVuZGlhbikiCisKK1NUUklO
R19MT1NTX09GX1VOSUNPREVfQ0hBUkFDVEVSUywgICAgICAgICAiJXNcblwKK1RoaXMgZmlsZSBj
b250YWlucyBVbmljb2RlIGNoYXJhY3RlcnMgd2hpY2ggd2lsbCBiZSBsb3N0IGlmIFxuXAoreW91
IHNhdmUgdGhpcyBmaWxlIGluIHRoZSAlcyBlbmNvZGluZy4gXG5cCitUbyBrZWVwIHRoZXNlIGNo
YXJhY3RlcnMsIGNsaWNrIENhbmNlbCwgYW5kIHRoZW4gc2VsZWN0IFxuXAorb25lIG9mIHRoZSBV
bmljb2RlIG9wdGlvbnMgaW4gdGhlIEVuY29kaW5nIGRyb3AgZG93biBsaXN0LiBcblwKK0NvbnRp
bnVlPyIKIH0KZGlmZiAtLWdpdCBhL3Byb2dyYW1zL25vdGVwYWQvZGlhbG9nLmMgYi9wcm9ncmFt
cy9ub3RlcGFkL2RpYWxvZy5jCmluZGV4IDE3YzMxNDguLjYzMmIwYzEgMTAwNjQ0Ci0tLSBhL3By
b2dyYW1zL25vdGVwYWQvZGlhbG9nLmMKKysrIGIvcHJvZ3JhbXMvbm90ZXBhZC9kaWFsb2cuYwpA
QCAtMTQyLDYgKzE0MiwyMyBAQCBzdGF0aWMgaW50IEFsZXJ0RmlsZU5vdFNhdmVkKExQQ1dTVFIg
c3pGaWxlTmFtZSkKICAgICAgTUJfSUNPTlFVRVNUSU9OfE1CX1lFU05PQ0FOQ0VMKTsKIH0KIAor
c3RhdGljIGludCBBbGVydFVuaWNvZGVDaGFyYWN0ZXJzTG9zdChMUENXU1RSIHN6RmlsZU5hbWUp
Cit7CisgICAgV0NIQVIgc3pNc2dGb3JtYXRbTUFYX1NUUklOR19MRU5dOworICAgIFdDSEFSIHN6
RW5jW01BWF9TVFJJTkdfTEVOXTsKKyAgICBXQ0hBUiBzek1zZ1tBUlJBWV9TSVpFKHN6TXNnRm9y
bWF0KSArIE1BWF9QQVRIICsgQVJSQVlfU0laRShzekVuYyldOworICAgIFdDSEFSIHN6Q2FwdGlv
bltNQVhfU1RSSU5HX0xFTl07CisKKyAgICBMb2FkU3RyaW5nVyhHbG9iYWxzLmhJbnN0YW5jZSwg
U1RSSU5HX0xPU1NfT0ZfVU5JQ09ERV9DSEFSQUNURVJTLAorICAgICAgICAgICAgICAgIHN6TXNn
Rm9ybWF0LCBBUlJBWV9TSVpFKHN6TXNnRm9ybWF0KSk7CisgICAgbG9hZF9lbmNvZGluZ19uYW1l
KEVOQ09ESU5HX0FOU0ksIHN6RW5jLCBBUlJBWV9TSVpFKHN6RW5jKSk7CisgICAgd25zcHJpbnRm
Vyhzek1zZywgQVJSQVlfU0laRShzek1zZyksIHN6TXNnRm9ybWF0LCBzekZpbGVOYW1lLCBzekVu
Yyk7CisgICAgTG9hZFN0cmluZ1coR2xvYmFscy5oSW5zdGFuY2UsIFNUUklOR19OT1RFUEFELCBz
ekNhcHRpb24sCisgICAgICAgICAgICAgICAgQVJSQVlfU0laRShzekNhcHRpb24pKTsKKyAgICBy
ZXR1cm4gTWVzc2FnZUJveFcoR2xvYmFscy5oTWFpblduZCwgc3pNc2csIHN6Q2FwdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgTUJfT0tDQU5DRUx8TUJfSUNPTkVYQ0xBTUFUSU9OKTsKK30K
KwogLyoqCiAgKiBSZXR1cm5zOgogICogICBUUlVFICAtIGlmIGZpbGUgZXhpc3RzCkBAIC0xNTgs
OCArMTc1LDMyIEBAIEJPT0wgRmlsZUV4aXN0cyhMUENXU1RSIHN6RmlsZW5hbWUpCiAgICByZXR1
cm4gKGhGaWxlICE9IElOVkFMSURfSEFORExFX1ZBTFVFKTsKIH0KIAorc3RhdGljIGlubGluZSBC
T09MIGlzX2NvbnZlcnNpb25fdG9fYW5zaV9sb3NzeShMUENXU1RSIHRleHRXLCBpbnQgbGVuVykK
K3sKKyAgICBCT09MIHJldCA9IEZBTFNFOworICAgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQ
LCBXQ19OT19CRVNUX0ZJVF9DSEFSUywgdGV4dFcsIGxlblcsIE5VTEwsIDAsCisgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLCAmcmV0KTsKKyAgICAvKiBXQ3RvTUIgZG9lc24ndCBsaWtlIGZs
YWdzIHdoZW4gdXNlZCB3aXRoIGNlcnRhaW4gY29kZSBwYWdlcy4gKi8KKyAgICBTZXRMYXN0RXJy
b3IoMCk7CisgICAgcmV0dXJuIHJldDsKK30KIAotc3RhdGljIFZPSUQgRG9TYXZlRmlsZShMUENX
U1RSIHN6RmlsZU5hbWUsIEVOQ09ESU5HIGVuYykKK3R5cGVkZWYgZW51bQoreworICAgIFNBVkVE
X09LLAorICAgIFNBVkVfRkFJTEVELAorICAgIFNIT1dfU0FWRUFTX0RJQUxPRworfSBTQVZFX1NU
QVRVUzsKKworLyogc3pGaWxlTmFtZSBpcyB0aGUgZmlsZW5hbWUgdG8gc2F2ZSB1bmRlcjsgZW5j
IGlzIHRoZSBlbmNvZGluZyB0byB1c2UuCisgKgorICogSWYgdGhlIGZ1bmN0aW9uIHN1Y2NlZWRz
LCBpdCByZXR1cm5zIFNBVkVEX09LLgorICogSWYgdGhlIGZ1bmN0aW9uIGZhaWxzLCBpdCByZXR1
cm5zIFNBVkVfRkFJTEVELgorICogSWYgVW5pY29kZSBkYXRhIGNvdWxkIGJlIGxvc3QgZHVlIHRv
IGNvbnZlcnNpb24gdG8gYSBub24tVW5pY29kZSBjaGFyYWN0ZXIKKyAqIHNldCwgYSB3YXJuaW5n
IGlzIGRpc3BsYXllZC4gVGhlIHVzZXIgY2FuIGNvbnRpbnVlIChhbmQgdGhlIGZ1bmN0aW9uIGNh
cnJpZXMKKyAqIG9uKSwgb3IgY2FuY2VsIChhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgU0hPV19T
QVZFQVNfRElBTE9HKS4KKyAqLworc3RhdGljIFNBVkVfU1RBVFVTIERvU2F2ZUZpbGUoTFBDV1NU
UiBzekZpbGVOYW1lLCBFTkNPRElORyBlbmMpCiB7CiAgICAgaW50IGxlblc7CiAgICAgV0NIQVIq
IHRleHRXOwpAQCAtMTc0LDcgKzIxNSw3IEBAIHN0YXRpYyBWT0lEIERvU2F2ZUZpbGUoTFBDV1NU
UiBzekZpbGVOYW1lLCBFTkNPRElORyBlbmMpCiAgICAgaWYgKCF0ZXh0VykKICAgICB7CiAgICAg
ICAgIFNob3dMYXN0RXJyb3IoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gU0FW
RV9GQUlMRUQ7CiAgICAgfQogICAgIHRleHRXWzBdID0gKFdDSEFSKSAweGZlZmY7CiAgICAgbGVu
VyA9IEdldFdpbmRvd1RleHRXKEdsb2JhbHMuaEVkaXQsIHRleHRXKzEsIGxlblcpICsgMTsKQEAg
LTE5NywyMCArMjM4LDI3IEBAIHN0YXRpYyBWT0lEIERvU2F2ZUZpbGUoTFBDV1NUUiBzekZpbGVO
YW1lLCBFTkNPRElORyBlbmMpCiAgICAgICAgIHsKICAgICAgICAgICAgIFNob3dMYXN0RXJyb3Io
KTsKICAgICAgICAgICAgIEhlYXBGcmVlKEdldFByb2Nlc3NIZWFwKCksIDAsIHRleHRXKTsKLSAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBTQVZFX0ZBSUxFRDsKICAgICAg
ICAgfQogICAgICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgsIDAsIHRleHRXLCBsZW5X
LCBwQnl0ZXMsIHNpemUsIE5VTEwsIE5VTEwpOwogICAgICAgICBIZWFwRnJlZShHZXRQcm9jZXNz
SGVhcCgpLCAwLCB0ZXh0Vyk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKKyAgICAg
ICAgaWYgKGlzX2NvbnZlcnNpb25fdG9fYW5zaV9sb3NzeSh0ZXh0VysxLCBsZW5XLTEpCisgICAg
ICAgICAgICAmJiBBbGVydFVuaWNvZGVDaGFyYWN0ZXJzTG9zdChzekZpbGVOYW1lKSA9PSBJRENB
TkNFTCkKKyAgICAgICAgeworICAgICAgICAgICAgSGVhcEZyZWUoR2V0UHJvY2Vzc0hlYXAoKSwg
MCwgdGV4dFcpOworICAgICAgICAgICAgcmV0dXJuIFNIT1dfU0FWRUFTX0RJQUxPRzsKKyAgICAg
ICAgfQorCiAgICAgICAgIHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdGV4
dFcrMSwgbGVuVy0xLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKICAgICAgICAgcEJ5dGVzID0gSGVh
cEFsbG9jKEdldFByb2Nlc3NIZWFwKCksIDAsIHNpemUpOwogICAgICAgICBpZiAoIXBCeXRlcykK
ICAgICAgICAgewogICAgICAgICAgICAgU2hvd0xhc3RFcnJvcigpOwogICAgICAgICAgICAgSGVh
cEZyZWUoR2V0UHJvY2Vzc0hlYXAoKSwgMCwgdGV4dFcpOwotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgcmV0dXJuIFNBVkVfRkFJTEVEOwogICAgICAgICB9CiAgICAgICAgIFdpZGVD
aGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCB0ZXh0VysxLCBsZW5XLTEsIHBCeXRlcywgc2l6ZSwg
TlVMTCwgTlVMTCk7CiAgICAgICAgIEhlYXBGcmVlKEdldFByb2Nlc3NIZWFwKCksIDAsIHRleHRX
KTsKQEAgLTIyMywyMCArMjcxLDIxIEBAIHN0YXRpYyBWT0lEIERvU2F2ZUZpbGUoTFBDV1NUUiBz
ekZpbGVOYW1lLCBFTkNPRElORyBlbmMpCiAgICAgewogICAgICAgICBTaG93TGFzdEVycm9yKCk7
CiAgICAgICAgIEhlYXBGcmVlKEdldFByb2Nlc3NIZWFwKCksIDAsIHBCeXRlcyk7Ci0gICAgICAg
IHJldHVybjsKKyAgICAgICAgcmV0dXJuIFNBVkVfRkFJTEVEOwogICAgIH0KICAgICBpZiAoIVdy
aXRlRmlsZShoRmlsZSwgcEJ5dGVzLCBzaXplLCAmZHdOdW1Xcml0ZSwgTlVMTCkpCiAgICAgewog
ICAgICAgICBTaG93TGFzdEVycm9yKCk7CiAgICAgICAgIENsb3NlSGFuZGxlKGhGaWxlKTsKICAg
ICAgICAgSGVhcEZyZWUoR2V0UHJvY2Vzc0hlYXAoKSwgMCwgcEJ5dGVzKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gU0FWRV9GQUlMRUQ7CiAgICAgfQogICAgIFNldEVuZE9mRmls
ZShoRmlsZSk7CiAgICAgQ2xvc2VIYW5kbGUoaEZpbGUpOwogICAgIEhlYXBGcmVlKEdldFByb2Nl
c3NIZWFwKCksIDAsIHBCeXRlcyk7CiAKICAgICBTZW5kTWVzc2FnZVcoR2xvYmFscy5oRWRpdCwg
RU1fU0VUTU9ESUZZLCBGQUxTRSwgMCk7CisgICAgcmV0dXJuIFNBVkVEX09LOwogfQogCiAvKioK
QEAgLTU2OSwxNCArNjE4LDIwIEBAIFZPSUQgRElBTE9HX0ZpbGVPcGVuKFZPSUQpCiAgICAgICAg
IERvT3BlbkZpbGUob3BlbmZpbGVuYW1lLmxwc3RyRmlsZSwgR2xvYmFscy5lbmNPZm5Db21ibyk7
CiB9CiAKLQorLyogUmV0dXJuIEZBTFNFIHRvIGNhbmNlbCBjbG9zZSAqLwogQk9PTCBESUFMT0df
RmlsZVNhdmUoVk9JRCkKIHsKICAgICBpZiAoR2xvYmFscy5zekZpbGVOYW1lWzBdID09ICdcMCcp
CiAgICAgICAgIHJldHVybiBESUFMT0dfRmlsZVNhdmVBcygpOwogICAgIGVsc2UKLSAgICAgICAg
RG9TYXZlRmlsZShHbG9iYWxzLnN6RmlsZU5hbWUsIEdsb2JhbHMuZW5jRmlsZSk7Ci0gICAgcmV0
dXJuIFRSVUU7CisgICAgeworICAgICAgICBzd2l0Y2ggKERvU2F2ZUZpbGUoR2xvYmFscy5zekZp
bGVOYW1lLCBHbG9iYWxzLmVuY0ZpbGUpKQorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIFNB
VkVEX09LOiAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgICAgICBjYXNlIFNIT1dfU0FW
RUFTX0RJQUxPRzogcmV0dXJuIERJQUxPR19GaWxlU2F2ZUFzKCk7CisgICAgICAgICAgICBkZWZh
dWx0OiAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICB9CisgICAgfQogfQog
CiBCT09MIERJQUxPR19GaWxlU2F2ZUFzKFZPSUQpCkBAIC02MTAsMTMgKzY2NSwyMyBAQCBCT09M
IERJQUxPR19GaWxlU2F2ZUFzKFZPSUQpCiAgICAgR2xvYmFscy5lbmNPZm5Db21ibyA9IEdsb2Jh
bHMuZW5jRmlsZTsKICAgICBHbG9iYWxzLmJPZm5Jc09wZW5EaWFsb2cgPSBGQUxTRTsKIAotICAg
IGlmIChHZXRTYXZlRmlsZU5hbWVXKCZzYXZlYXMpKSB7Ci0gICAgICAgIFNldEZpbGVOYW1lQW5k
RW5jb2Rpbmcoc3pQYXRoLCBHbG9iYWxzLmVuY09mbkNvbWJvKTsKLSAgICAgICAgVXBkYXRlV2lu
ZG93Q2FwdGlvbigpOwotICAgICAgICBEb1NhdmVGaWxlKHN6UGF0aCwgR2xvYmFscy5lbmNPZm5D
b21ibyk7Ci0gICAgICAgIHJldHVybiBUUlVFOworcmV0cnk6CisgICAgaWYgKCFHZXRTYXZlRmls
ZU5hbWVXKCZzYXZlYXMpKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBzd2l0Y2ggKERv
U2F2ZUZpbGUoc3pQYXRoLCBHbG9iYWxzLmVuY09mbkNvbWJvKSkKKyAgICB7CisgICAgICAgIGNh
c2UgU0FWRURfT0s6CisgICAgICAgICAgICBTZXRGaWxlTmFtZUFuZEVuY29kaW5nKHN6UGF0aCwg
R2xvYmFscy5lbmNPZm5Db21ibyk7CisgICAgICAgICAgICBVcGRhdGVXaW5kb3dDYXB0aW9uKCk7
CisgICAgICAgICAgICByZXR1cm4gVFJVRTsKKworICAgICAgICBjYXNlIFNIT1dfU0FWRUFTX0RJ
QUxPRzoKKyAgICAgICAgICAgIGdvdG8gcmV0cnk7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBGQUxTRTsKICAgICB9Ci0gICAgcmV0dXJuIEZBTFNFOwogfQogCiB0eXBl
ZGVmIHN0cnVjdCB7CmRpZmYgLS1naXQgYS9wcm9ncmFtcy9ub3RlcGFkL25vdGVwYWRfcmVzLmgg
Yi9wcm9ncmFtcy9ub3RlcGFkL25vdGVwYWRfcmVzLmgKaW5kZXggMzEyMmQ5OC4uZTEwMjEwOSAx
MDA2NDQKLS0tIGEvcHJvZ3JhbXMvbm90ZXBhZC9ub3RlcGFkX3Jlcy5oCisrKyBiL3Byb2dyYW1z
L25vdGVwYWQvbm90ZXBhZF9yZXMuaApAQCAtODUsNiArODUsOCBAQAogI2RlZmluZSBTVFJJTkdf
VU5JQ09ERV9MRSAgICAgIDB4MTgwCiAjZGVmaW5lIFNUUklOR19VTklDT0RFX0JFICAgICAgMHgx
ODEKIAorI2RlZmluZSBTVFJJTkdfTE9TU19PRl9VTklDT0RFX0NIQVJBQ1RFUlMgMHgxODIKKwog
LyogT3Blbi9TYXZlIEFzIGRpYWxvZyB0ZW1wbGF0ZSAqLwogI2RlZmluZSBJRERfT0ZOX1RFTVBM
QVRFICAgICAgIDB4MTkwCiAjZGVmaW5lIElEQ19PRk5fRU5DQ09NQk8gICAgICAgMHgxOTEKLS0g
CjEuNS42LjMKCg==
--001636c923d7f9475a046d34e711--



More information about the wine-patches mailing list