timbrel / GitSavvy

Full git and GitHub integration with Sublime Text
MIT License
1.9k stars 136 forks source link

'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte #142

Closed wickchucked closed 9 years ago

wickchucked commented 9 years ago

Here is the dump from what I could see in the Sublime console, it wasn't popping up in a new window form me when I tried to view recorded log. Let me know if you need anything else.

This is referencing the thread I started in #127

Traceback (most recent call last):
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 100, in git
    stdout, stderr = stdout.decode(), stderr.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 549, in run_
    return self.run(edit)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 126, in run
    indexed_object_contents = self.get_object_contents(indexed_object)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 186, in get_object_contents
    return self.git("show", object_hash)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 103, in git
    raise_error(e)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 84, in raise_error
    raise GitSavvyError(msg)
GitSavvy.core.git_command.GitSavvyError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte
Unable to extract text from the clipboard, available formats: DataObject, Ole Private Data
Traceback (most recent call last):
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 100, in git
    stdout, stderr = stdout.decode(), stderr.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 549, in run_
    return self.run(edit)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 126, in run
    indexed_object_contents = self.get_object_contents(indexed_object)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 186, in get_object_contents
    return self.git("show", object_hash)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 103, in git
    raise_error(e)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 84, in raise_error
    raise GitSavvyError(msg)
GitSavvy.core.git_command.GitSavvyError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte
Unable to extract text from the clipboard, available formats: DataObject, Ole Private Data
Traceback (most recent call last):
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 100, in git
    stdout, stderr = stdout.decode(), stderr.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 549, in run_
    return self.run(edit)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 126, in run
    indexed_object_contents = self.get_object_contents(indexed_object)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\commands\inline_diff.py", line 186, in get_object_contents
    return self.git("show", object_hash)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 103, in git
    raise_error(e)
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\core\git_command.py", line 84, in raise_error
    raise GitSavvyError(msg)
GitSavvy.core.git_command.GitSavvyError: 'utf-8' codec can't decode byte 0xac in position 4566: invalid start byte
Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 526, in run_
    return self.run()
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\common\commands\debug.py", line 64, in run
    log = debug.get_log()
  File "\\excaliber\homeshare\it\winne\Application Data\Sublime Text 3\Packages\GitSavvy\common\util\debug.py", line 21, in get_log
    return json.dumps(_log, indent=2)
  File "./json/__init__.py", line 243, in dumps
  File "./json/encoder.py", line 193, in encode
  File "./json/encoder.py", line 411, in _iterencode
  File "./json/encoder.py", line 312, in _iterencode_list
  File "./json/encoder.py", line 388, in _iterencode_dict
  File "./json/encoder.py", line 422, in _iterencode
  File "./json/encoder.py", line 173, in default
TypeError: b'.Object Name: printim_app\n*    Version: 0008\n*==============================================================================.\n:INCLUDE,ECAB$,B,0001 .\n@     ldv <run>a1=Y .\n@     rnm,ecab$,g,erpt$ -8 .\n@     gto lin+3 .\n@0001:() .                    Entry point called by The Cool ICE Service Handler\n@     rnm -8 ldv <run>h1=n if ecab$ LT 698 . ; rep,-8,ecab$,g,erpt$ . Result -8 contains Service I\n@     rsr,-8 0001 .                                         Get Input Parameters\n@     brk,0,i .                                           Start HTML Output Area\n@.    if <dspdone> = y gto 0115 . ; .\n@.\n@. -------------------------------------------------------------------------------------------------\n@. - agent table sub-routine -----------------------------------------------------------------------\n@. -------------------------------------------------------------------------------------------------\n@     if ecab$ GT 698 ldv,p <agttest>a5=\'_test\',<rcab>i4=400 . ; ldv,p <agttest>a0,<rcab>i4=200 .\n@     ldv,p <agtcat>s20=\'subroutine\'<agttest>,<object>s20=\'agents_rsr\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001 \\                                       Get-location-of\n      (<agtcat>,<object>,<GIceRepCab>,\\                                     the-agents-rsr-Dynamic\n      <agtcab>a4,<agtdrw>a1,<agtrpt>a4,<msgnbr>a3,<msgtxt>s132,<status>a1) .\n@     if <status> = 9,(0181) ; .                                            Problem-finding-service?\n@.\n@     rsr,<agtcab>,<agtdrw>,<agtrpt> 0020 .\n@     rnm -4 .\n@.\n@     if ecab$ gt 698  ldv <kategory>s20=\'Misc_Test\' . ; ldv <kategory>s20=\'Misc\' .\n@     ldv,p <object>s20=\'Style\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001 \\\n      (<kategory>,<object>,<GIceRepCab>,\\\n      <stcab>a4,<stdrw>a1,<strpt>a4,<msgnbr>a3,<msgtxt>s132,<status>a1) .\n@     if <status> = 9,(0181) ; .                                            Problem-finding-service?\n@.\n@.    #  Retrieve quote\n@     call,HOMDATA_ 0005 (<ssuserid>,<sshquote>,<status>h1) .\n@     if <status> eq 0 . ; gto 0180 .                                   check if quote records exist\n@     rnm -1 .\n@     fnd,-1 \'\' 2-1 *,P ,<pline>i2 .\n@     rdl,-1,<pline>,0180 31-4,37-36,94-36,288-3,480-9 \\\n        <prod>a,<name>s,<longname>s,<cocode>a,<ssn>s .\n@. -------------------------------------------------------------------------------------------------\n@. ------------------* grab the tables I need *-----------------------------------------------------\n@. -------------------------------------------------------------------------------------------------\n@.\n@. ---------------------* deductibles *-------------------------------------------------------------\n@     ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'deductibles\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -3 . ; gto 0195 .                         Status-OK?\n@.\n@. ---------------------* Endt Forms *--------------------------------------------------------------\n@     ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'End_Forms\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -12 . ; gto 0195 .                        Status-OK?\n@.\n@. ---------------------* IM class codes *----------------------------------------------------------\n@0021:ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'IM_Class_Codes\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -10 . ; gto 0195 .                        Status-OK?\n@.\n@. -------------------------------------------------------------------------------------------------\n@. ------------- READ POLWORK AND NEWCOV RID TO GET APP INFO ---------------------------------------\n@. -------------------------------------------------------------------------------------------------\n@     if ecab$ > 698 ldv <save>i4=804 . ; ldv <save>i4=604 .\n@     cnt,<save>,b,2 \'e\' \'quote\',\'rid#\',\'agt#\' \xac,1,a,b .\n@     fdr,-0,,,0180 \'\' \'quote\' \xac,<sshquote> \\           Find quote rid #\n       rln \'rid#\' <prid>a4 .\n@     srh,<save>,c,<prid>,,,lin1 \'dh\' 186-5 \xac,<sshquote> gto lin+2 .\n@     srh,<save>,b,<prid>,,,0180 \'dh\' 186-5 \xac,<sshquote> .\n@     ldv <save-id>s40=HO,<report-id>s20=HOquote . .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,17 0001 \\    retrieve-saved-state-mgmt-\n      (<save-id>,<sessionID>,<report-id>,<GIceRepCab>,\\  object-from-repository\n      <msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0 . ; gto 0195 .                                  Status-OK?\n@     rnm -11 .                                          cool-ice temp input rid\n@     if <sshtype> EQ M gto 0015 . ; .\n@. ** HOMEOWNER **----------------------------------------------------------------------------------\n@     rdl,-0,6,0180 \'stcd\',\'zipcab\',\'zd\',\'ziprid\',47-4,165-7,311-35,347-16,365-1,370-1,371-1 \\\n<sta>a,<zcab>i,<zdrw>a,<zrpt>i,<sprod>s,<polno>s,<sshocc>s,<roof>s,<liasupp>a,<rural>a,<dues>a .\n@     ldv <manuf>s35 .\n@     fnd,-11 \'a\' 2-1 *,P ,<pline>i2 .\n@     rdl,-11,<pline>,0180 13-8,31-4,35-2,37-36,76-9,85-7,94-36,\\\n         130-36,166-36,202-20,222-8,230-8,238-8,288-3,309-6,317-6,\\\n         345-1,361-2,364-1,365-1,366-1,367-1,368-1,369-1,371-1,372-1, \\\n         373-1,387-1,391-1,393-2,401-13,414-4,418-4,440-8,480-9,490-3,509-12 \\\n         <effdat>h,<prod>a,<sprod>a,<name>s,<zip>a,<totprem>i,<longname>s,\\\n         <add1>s,<add2>s,<cityst>s,<cova>i,<covb>i,<covc>i,<cocode>a,<baseprem>i,\\\n         <imprem>i,<surtax>a,<hform>a,<ded>a,<const>a,<fam>a,<prot>a,<liab>a,<med>a,\\\n         <protsub>a,<comppol>a,<mature>a,<seasflag>a,<seaslia>a,<newhom>i,<insphone>a,\\\n         <yrblt>i,<shyear>i,<birthdat>h,<ss#>i,<cbr>i,<suppol>a .\n@     dc d11=d8(<effdat>) <ratedate>h8 .\n@     gto 0016 .\n@. ** MOBILEHOME **-------------------------------------------------------------\n@0015:rdl,-0,6,0180 \'stcd\',\'zipcab\',\'zd\',\'ziprid\',47-4,165-7,311-35,347-16,365-1 \\\n<sta>a,<zcab>i,<zdrw>a,<zrpt>i,<sprod>s,<polno>s,<manuf>s,<roof>s,<liasupp>a .\n@     ldv <birthdat>s8 .\n@     fnd,-11 \'a\' 2-1 *,P ,<pline>i2 .\n@     rdl,-11,<pline>,0180 13-8,31-4,35-2,37-36,76-9,85-7,94-36,130-36,166-36,202-20,\\\n        222-8,230-8,238-8,246-8,288-3,309-6,317-6,346-1,361-2,364-1,366-1,367-1,368-1,\\\n        369-1,372-1,373-1,374-1,391-1,393-2,401-13,414-4,418-4,480-9,509-12 \\\n        <effdat>h,<prod>a,<sprod>a,<name>s,<zip>a,<totprem>i,<longname>s,<add1>s,<add2>s,\\\n        <cityst>s,<cova>i,<covb>i,<covc>i,<covd>i,<cocode>a,<baseprem>i,<imprem>i,<surtax>a,\\\n        <hform>a,<ded>a,<sshocc>a,<prot>a,<liab>a,<med>a,<comppol>a,<mature>a,<fam>a,<seaslia>a,\\\n        <newhom>i,<insphone>a,<yrblt>i,<shyear>i,<ss#>i,<suppol>a .\n@     ldv <add2>s11 .\n@. ---------------------* County names *----------------------------------------\n@0016:ldv,p <save-id>h6=ZIPI,<report-id>h2=<sta>,<blank-id>h8=date11$ .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,17 0001 \\\n         (<save-id>,<blankid>,<report-id>,<GIceRepCab>,\\\n          <msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0 gto 0003 . ; .               Status OK?\n@     net,northstar,A,Netuser,7,qte,,,0183  .                           net to get zip rid for state\n@     nrd,<zcab>,<zdrw>,<zrpt>,0,f,,0183 .\n@     nof .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,16 0001 \\\n         (<save-id>,<blank-id>,<report-id>,<GIceRepCab>,\\\n          <msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0 . ; gto 0183 .                                                     Status OK?\n@0003:rnm -14 .\n@     ldv,r <covera>i7=<cova> .\n@     ldv,r <coverc>i7=<covc> .\n@     juv,c <covera>,<covb>,<coverc>,<baseprem>,<totprem>,\\\n         <imprem> .\n@     if <covb>(0-1) = X ldv <covb>=0 .\n@     if <seasflg> = S ldv <seas>s8=Seasonal . ;ldv <seas>s8=\'\' .\n@     juv,r <cocode> .\n@     srh,-14 dh \'cty\' \xac,<cocode> .\n@     rdl,-0,9,lin1 43-28 <county>s .\n@     srh,-11 dha 2-1 *,L .\n@     rdl,-0,6,0180 9-36,56-17,73-2,75-5,80-4 \\\n         <ladd1>s,<lcity>s,<lstate>s,<lzip5>i,\\\n         <lzip4>i .\n@     ldv <age>s15,<ul>s1,<unit>s1,<bankruptd>s80,\\\n          <for>s1,<reqb>s10,<reqs>s10,<protb>s1,<protl>s1,<protr>s1,\\\n          <6inst>s1,<6instdesc>s40,<wloc>s1,<wlocdesc>s40,<ftfrom>s4,\\\n          <airwater>s1,<pad>s1,<bend>s1,<screw>s1,<stpprot>s1,\\\n          <chimney>s1,<chimneyage>s10,<liner>s1,<clothdesc>s40,\\\n          <prefab>s1,<flue>s1,<fluedesc>s40,<cond>s1,<cleaned>s40,\\\n          <reclaims>s1,<reclaimdesc>s40,<clear>s1,<wallclear>s4,\\\n          <floorclear>s4,<bottomclear>s4,<rearclear>s4,<pipeclear>s4,\\\n          <ceilclear>s4,<sideclear>s4,<wall1clear>s4,<wall2clear>s4,<ftbldg>s4 .\n@     ldv <dfuel>s20,<dhtage>s15,<dwiring>s1,<dwirage>s15,\\\n          <dplumb>s1,<dplumage>s15,<d2plumb>s1,<d2plumcon>s20,\\\n          <dprof>s1,<dprofdesc>s20,<hazards>s401,<imuse>s30,<imkept>s30,\\\n          <imco>s1,<imcodesc>s30,<imrent>s1,<imrentdesc>s30,<imrisk>s1,\\\n          <imriskdesc>s30,<imski>s1,<imskidesc>s30,<imrace>s1,\\\n          <imracedesc>s30,<imdlsusp>s1,<imdlsuspdsc>s30,<wcyear>s4,\\\n          <wchp>s4,<wclength>s4,<wcspeed>s4,<wcsernum>s20,<rvyear>s4,\\\n          <rvccs>s4,<rvspd>s4,<rvprice>i8,<rvsernum>s20,<jpurch>s12,\\\n          <jcost>i8,<jsernum>s20,<wcnum>i2,<rvnum>i2,<mname>s30,\\\n          <madd1>s30,<madd2>s30,<madd3>s30,<mtext>s30,<mcnt>i1,\\\n          <lpadd1>s30,<lpadd2>s30,<lptext>s30,<lpcnt>i1,\\\n          <oper>s40,<oprel>s20,<opdob>s8,<oplic>s30,<opperc>s5,<jnum>i2,\\\n          <whoinst>s10,<wloca>s12,<airwatr>s9,<wliner>s5,<condq>s9,\\\n          <preq>s3,<reclq>s3,<ulq>s3,<bendq>s3,<screwq>s3,<flueq>s3,\\\n          <clearq>s3,<padq>s3,<heat>s3,<wiring>s3,<oplumb>s3,<2plumb>s3,\\\n          <supp>s1,<elec>s1,<plumb>s1,<heating>s1,<roofing>s1,<woods>s1,\\\n          <elecq>s3,<plumbq>s3,<heatq>s3,<roofq>s3,<woodsq>s3,<1year>s4,\\\n          <2year>s4,<3year>s4,<4year>s4,<5year>s4,<priv>s1,<privdesc>s80 .\n@     srh,-11 dha 2-1 *,B .\n@     rdl,-0,6,lin1 9-9,19-55,75-80 <billto>s,<obillto>s,<bankruptd>s  .\n@     srh,-11 dha 2-1 *,U .\n@     rdl,-0,6,lin1 9-55,65-1,67-80,148-80,229-80,310-1,\\\n         312-80,393-1,395-10,406-6,413-6,420-6,427-8 <ucarr>s,\\\n         <udecl>s,<udecldesc>s,<uocc>s,<uempl>s,<u2yrs>s,\\\n         <uprevadd>s,<ubankrupt>s,<unscov>s,<ufrdist>s,\\\n         <ururfir>s,<usmodet>s,<uinspect>h .\n@     srh,-11 dha 2-2 *,I0/*,I1/*,I2/*,I3/*,I4/*,I5/*,I6/*,I7/*,I8/*,I9 .\n@     rdl,-0,6,lin1 9-30,40-30,71-1,73-30,104-1,106-30,\\\n         137-1,139-30,170-1,172-30,203-1,205-30,236-1,238-30 \\\n         <imuse>s,<imkept>s,<imco>s,<imcodesc>s,<imrent>s,\\\n         <imrentdesc>s,<imrisk>s,<imriskdesc>s,<imski>s,\\\n         <imskidesc>s,<imrace>s,<imracedesc>s,<imdlsusp>s,\\\n         <imdlsuspdsc>s .\n@     srh,-11 dha 2-1 *,A .\n@     rdl,-0,6,lin1 9-330 <remk1>s .\n@     if <remk1> EQ \' - \' ldv <hoinfo>s1 gto lin+2 . ; .\n@     if <remk1> gt \' \' ldv <hoinfo>s1=y . ;ldv <hoinfo>s1 .\n@     srh,-11,,,0170 dha 2-1 *,Q .\n@     ldv <supp>s1=y .\n@     rdl,-0,6,lin1 9-1,11-4,16-1,18-4,23-1,25-4,30-1,\\\n         32-4,37-1,39-4 <elec>s,<1year>s,<plumb>s,<2year>s,\\\n         <heating>s,<3year>s,<roofing>s,<4year>s,<woods>s,<5year>s .\n@0170:srh,-4,,,0181 dh \'agt#\' \xac,<prod> .\n@     rdl,-0,9,0181 \'agencyname\',\'agencyname2\',\'streetaddr\',\'pobox\',\\     Get agent info\n         \'city\',\'st\',\'zip\',\'phonenum\',\'faxnum\',\'rt\',\'so\' \\\n         <agtname>s,<agtname2>s,<agtadd1>s,<agtadd2>s,<agtcity>s,\\\n         <agtst>s,<agtzip>s,<agtphone>s,<agtfax>s,<arate>s,<ef>a .\n@     if <agtadd1> > \'\' ldv <agtadd>s30=<agtadd1> . ;\\\n         ldv <agtadd>s30=<agtadd2> .\n@     ldv <nline>i2=5,<sline>i2=5,<opt#>i2,<woodprem>i6,<spaces>s100<spaces2>s60 .\n@.    rnm,-13 -4 .\n@. -----------------------------------------------------------------------------\n@. ------------- CREATE OUTPUT RECORDS -----------------------------------------\n@. -----------------------------------------------------------------------------\n@0055:.\n@     ldv <test>a10 .\n@     if <GAspAlsDir> eq \'fieldstaff\'  if <ssIMPERSON> eq true . ; \\\n      if <GAspAlsDir> eq \'fieldstaff\' \\\n        ldv <test>a10=\'** TEST **\',\\\n        <agtname>s30=\'FIELDREP TEST AGENCY\',<agtadd>s20=\'123 MAIN ST\',\\\n        <agtcity>s23=\'ANYTOWN\',<agtst>s2=\'MN\',<agtzip>s5=55555,<agtname2>s30,\\\n        <agtphone>s10=5075551234 . ; .\n@     if <polno> > \'\' ldv <number>s7=<polno> . ; ldv <number>s7=<sshquote> .\n@     if <add2> GT \'\' ldv <pobox>s6=\'PO Box\' . ; ldv <pobox>s6 .\n@. ------------ separate first name & last name ---------------------------------\n@     call,ecab$,aedrw$,3 0200* (<name>,<fnm>s20,<lnm>s35) .\n@     ldv,p <fnm>,<lnm>,<longname> .\n@     ldv <allname>s60=<fnm>\' \'<lnm>\' \'<longname> .\n@.-----------------------------------------------------------------------------------\n@.----------------------IM and Woodburning subroutines-------------------------------\n@.-----------------------------------------------------------------------------------\n@0075:if <im> EQ Y  . ; gto 0076 .\n$$DONENOWIM\n.imapp1\n<effdat>(5-2)/<effdat>(7-2)/<effdat>(3-2)<number>\n<allname>\n<add1> <add2>\n<cityst> <zip>(1-5)-<zip>(6-4)\n<ss#>(1-3)-<ss#>(4-2)-<ss#>(6-4) <insphone>\n<prod>\n<agtname> <agtname2>\n<agtadd>\n<agtcity> <agtst> <agtzip>\n<agtphone>(1-3)-<agtphone>(4-3)-<agtphone>(7-4)\n<agtfax>(1-3)-<agtfax>(4-3)-<agtfax>(7-4)\n<uocc>\n<imuse>\n<imkept>\n@     if <imco> = y ldv <imcom>s3=Yes . ;if <imco> = n ldv <imcom>s3=No . ;ldv <imcom>s3 .\n<imcom>\n<imcodesc>\n@     if <imrent> = y ldv <imren>s3=Yes . ;if <imrent> = n ldv <imren>s3=No . ;ldv <imren>s3 .\n<imren>\n<imrentdesc>\n@     if <imrisk> = y ldv <imris>s3=Yes . ;if <imrisk> = n ldv <imris>s3=No . ;ldv <imris>s3 .\n<imris>\n<imriskdesc>\n@     if <imski> = y ldv <imskis>s3=Yes . ;if <imski> = n ldv <imskis>s3=No . ;ldv <imskis>s3 .\n<imskis>\n<imskidesc>\n@     if <imrace> = y ldv <imrac>s3=Yes . ;if <imrace> = n ldv <imrac>s3=No . ;ldv <imrac>s3 .\n<imrac>\n<imracedesc>\n@  if <imdlsusp> = y ldv <dlsusp>s3=Yes . ;if <imdlsusp> = n ldv <dlsusp>s3=No . ;ldv <dlsusp>s3 .\n<dlsusp>\n<imdlsuspdsc>\n@.-----------------------------------------------------------------------------------\n@     srh,-11 dh 2-1 *,O rnm -6 .\n@     ldv <opline>i2=5,<opcnt>i2 .\n@0253:inc <opline> .\n@     rdl,-6,<opline>,0255 12-40,53-20,74-8,83-30,114-5 \\\n         <oper>s,<oprel>s,<opdob>s,<oplic>s,<opperc>s .\n<oper><oprel><opdob><oplic><opperc>\n@     inc <opcnt> .\n@     gto 0253 .\n@0255:if <opcnt> lt 4 . ;gto 0256 .\n<spaces>\n@     inc <opcnt> gto 0255 .\n@0256:srh,-11 dha 2-1,10-1 *,M,L rnm -6 .\n@     ldv <lpline>i2=5,<lpcnt>i2 .\n@0249:inc <lpline> .\n@     rdl,-6,<lpline>,0250 11-30,41-30,71-30,101-30,131-30,\\\n         161-9,181-20,201-2 <lpname>s,<lpadd1>s,<lpadd2>s,<lpadd3>s,\\\n         <lptext>s,<lpzip>i,<lpcity>s,<lpstate>s .\n@     if <lpzip>(0-4) = \'\' ldv <plpzip>s10=<lpzip> . ;\\\n         ldv <plpzip>s10=<lpzip>(1-5)\'-\'<lpzip>(0-4) .\n<lpname>\n<lpadd1>\n<lpadd2>\n<lpadd3>\n<lpcity> <lpstate> <plpzip>\n<lptext>\n@    inc <lpcnt> gto 0249 .\n@0250:if <lpcnt> = 0 . ;gto 0251 .\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n@0251:if <lpcnt> = 1 . ;gto 0252 .\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n<spaces>\n@0252:.\n$$DONE\n$imapp2\n<allname><number>\n@     srh,-11 dha 12-3 *,300 rnm -4 .\n@     ldv <wline>i2=5 .\n@0066:inc <wline> .\n@     rdl,-4,<wline>,0067 15-3,18-2,21-1,23-8,31-6,39-1,40-1,\\\n         74-36 <wcls3>s,<wstatno>i,<wded>i,<wcovamt>i,<wcovprem>i,\\\n         <ccode>s,<wcode>s,<wcovdesc>s .\n@     srh,-10 dh \'cod\' \xac,<wcls3> .\n@     rdl,-0,6,0067 \'type\',\'nd\' <wtype>s,<nonde>s .\n@     if <nonde> = x ldv <nondeprec>s3=Yes . ;\\\n         ldv <nondeprec>s3=No .\n@     srh,-3 dh 8-1 \xac,<wded> .\n@     rdl,-0,6,0067 24-6 <waterded>s .\n@     juv,c <wcovamt>,<wcovprem> .\n@     srh,-11 dha 2-1,9-2,53-3 *,H,<wstatno>,<wcls3> .\n@     rdl,-0,6,lin1 9-2,12-4,17-4,22-4,27-4,32-20 \\\n         <wcnum>i,<wcyear>s,<wchp>s,<wclength>s,<wcspeed>s,<wcsernum>s .\n@     ldv <waterline>s200=<wtype>(1-25)<wcyear><wcovdesc>(1-20)<wchp><wclength><wcspeed>\\\n<wcsernum><nondeprec><waterded><wcovamt><wcovprem>.00<wcls3> .\n$W<waterline>\n@     gto 0066 .\n@0067:srh,-11 dha 12-3 *,232/*,917 rnm -5 .\n@     ldv <rline>i2=5 .\n@0068:inc <rline> .\n@     rdl,-5,<rline>,0069 15-3,18-2,20-1,21-1,23-8,31-6,39-1,40-1,\\\n         74-36 <rcls3>s,<rstatno>i,<rhaz>a,<rded>i,<rcovamt>i,<rcovprem>i,\\\n         <rccode>s,<rcode>s,<rcovdesc>s .\n@     if <rhaz> EQ 3 ldv <hazflag>a1=# . ; <hazflag>a1 .\n@     srh,-10 dh \'cod\' \xac,<rcls3> .\n@     rdl,-0,6,0068 \'type\',\'nd\',\'cl\' <rtype>s,<rnonde>s,<rcol>s .\n@     if <rnonde> = x ldv <rnondeprec>s3=Yes . ;\\\n         ldv <rnondeprec>s3=No .\n@     if <rcol> = x ldv <rcollision>s3=Yes . ;\\\n         ldv <rcollision>s3=No .\n@     srh,-3 dh 8-1 \xac,<rded> .\n@     rdl,-0,6,0069 24-6 <recded>s .\n@     juv,c <rcovamt>,<rcovprem> .\n@     srh,-11 dha 2-1,9-2,57-3 *,R,<rstatno>,<rcls3> .\n@     rdl,-0,6,lin1 9-2,12-4,17-4,22-4,27-8,36-20 \\\n         <rvnum>i,<rvyear>s,<rvccs>s,<rvspd>s,<rvprice>s,<rvsernum>s .\n@     ldv <recline>s200=<rtype>(1-10)<rvyear><hazflag><rcovdesc>(1-21)<rvccs><rvsernum><rvspd>\\\n<rvprice><rcollision><rnondeprec><recded><rcovamt><rcovprem>.00<rcls3> .\n$R<recline>\n@     gto 0068 .\n@0069:srh,-11 \'dh@a\' 11-4,22-1 *,\' 175\',S/*,\' 212\',S/*,\' 694\',S/*,\' 695\',S/*,\' 901\',S/*,\\\n        \' 902\',S/*,\' 850\',S rnm -6 .\n@     srh,-11 \'dh@a\' 11-4,22-1 *,\' 852\',S/*,\' 459\',S/*,\' 215\',S/*,\'1122\',S/*,\'1096\',S/*,\\\n        \' 860\',S .\n@     lzr,-0,lin2 lzr,-6,lin1 add,-0,-6 rnm -6 .\n@     lzr,-0 rnm -6 .\n@     ldv <jline>i2=5 .\n@0071:inc <jline> .\n@     rdl,-6,<jline>,0072 15-3,18-2,21-1,22-1,23-8,31-6,39-1,40-1,\\\n         74-33 <jcls3>s,<jstatno>i,<jded>i,<jscode>s,<jcovamt>i,<jcovprem>i,\\\n         <jccode>s,<jcode>s,<jcovdesc>s .\n@     srh,-3 dh 8-1 \xac,<jded> .\n@     rdl,-0,6,0072 24-6 <sppded>s .\n@     juv,c <jcovamt> .\n@     srh,-11 \'dh@a\' 2-1,9-2,55-3 *,J,<jstatno>,<jcls3>/*,J,<jstatno>,@@@ .\n@     rdl,-0,6,lin1 9-2,12-12,25-8,34-20,55-3 \\\n         <jnum>i,<jpurch>s,<jcost>i,<jsernum>s,<jclass>a .\n@     ldv <sppline>s200=<jclass><jcovdesc><jsernum><jpurch><jcost><sppded><jcovamt> .\n$S<sppline>\n@     gto 0071 .\n@0072:.\n@.-----------------------------------------------------------------------------------\n@0076:if <wood> eq y . ; gto 0077 .\n$$DONENOWWOOD\n$wood1\ndate6$\n<agtname>\n<prod>\n<allname><number>\n@     srh,-11 dha 2-1 *,E .\n@     rdl,-0,6,lin1 9-40,50-15,66-1,68-1,70-1,72-10,\\\n         83-10,94-1,96-1,98-1,100-1,102-40,143-1,145-40,\\\n         186-4,191-1,193-1,195-1,197-1,199-1,201-1,203-10,\\\n         214-1,216-40,257-1,259-1,261-40,302-1,304-40,345-1,\\\n         347-40,388-1,390-4,395-4,400-4,405-4,410-4,415-4,\\\n         420-4,425-4,430-4,435-4 <manuf>s,<age>s,<ul>s,<unit>s,\\\n         <for>s,<reqb>s,<reqs>s,<protb>s,<protl>s,<protr>s,\\\n         <6inst>s,<6instdesc>s,<wloc>s,<wlocdesc>s,<ftfrom>s,\\\n         <airwater>s,<pad>s,<bend>s,<screw>s,<stpprot>s,\\\n         <chimney>s,<chimneyage>s,<liner>s,<clothdesc>s,\\\n         <prefab>s,<flue>s,<fluedesc>s,<cond>s,<cleaned>s,\\\n         <reclaims>s,<reclaimdesc>s,<clear>s,<wallclear>s,\\\n         <floorclear>s,<bottomclear>s,<rearclear>s,<pipeclear>s,\\\n         <ceilclear>s,<sideclear>s,<wall1clear>s,<wall2clear>s,<ftbldg>s .\n@. ---------------------* Stovepipe *-------------------------------------------\n@     ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'Stovepipe\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -5 . ; gto 0195 .                         Status-OK?\n@.\n@. ---------------------* Chimney Desc *----------------------------------------\n@     ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'Chimney\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -6 . ; gto 0195 .                         Status-OK?\n@.\n@. ---------------------* Unit    Desc *----------------------------------------\n@     ldv <kategory>s20=<category>\'_Tables\',<object>s20=\'Woodburning_Unit\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,11 0001* \\                             Find-loc\n      (<kategory>,<object>,<GIceRepCab>,\\                                  Using-a-Cool-ICE-API-call\n      <ocab>a4,<odrw>a1,<orpt>a4,<msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0  rnm,<ocab>,<odrw>,<orpt> -7 . ; gto 0195 .                         Status-OK?\n@.\n<manuf>\n<age>\n@      if <ul> = y ldv <ulq>s3=Yes . ;if <ul> = n ldv <ulq>s3=No .\n<ulq>\n@     srh,-7 dh \'cd\' \xac,<unit> .\n@     rdl,-0,6,lin1 \'description\' <unitdesc>s .\n<unitdesc>\n@      if <for> = p ldv <forq>s17=Primary\' \'Heat . ;ldv <forq>s17=Supplemental\' \'Heat .\n<forq>\n<reqb>\n<reqs>\n@      if <protb> = B ldv <protbq>s3=Yes . ;ldv <protbq>s3=No .\n<protbq>\n@      if <protl> = L ldv <protlq>s3=Yes . ;ldv <protlq>s3=No .\n<protlq>\n@      if <protr> = R ldv <protrq>s3=Yes . ;ldv <protrq>s3=No .\n<protrq>\n@      if <6inst> = C ldv <whoinst>s10=Contractor . ; .\n@      if <6inst> = I ldv <whoinst>s10=Insured . ; .\n@      if <6inst> = O ldv <whoinst>s10=Other . ; .\n<whoinst>\n<6instdesc>\n@      if <wloc> = B ldv <wloca>s12=Basement . ; .\n@      if <wloc> = G ldv <wloca>s12=Ground\' \'Floor . ; .\n@      if <wloc> = 2 ldv <wloca>s12=Second\' \'Floor . ; .\n@      if <wloc> = O ldv <wloca>s12=Other . ; .\n<wloca>\n<wlocdesc>\n<ftfrom> <ftbldg>\n@      if <airwater> = A ldv <airwatr>s9=Hot\' \'Air . ; .\n@      if <airwater> = W ldv <airwatr>s9=Hot\' \'Water . ; .\n@      if <airwater> = \'\' ldv <airwatr>s9=No . ; .\n<airwatr>\n@      if <pad> = Y ldv <padq>s3=Yes . ;if <pad> = N ldv <padq>s3=No .\n<padq>\n@      if <bend> = Y ldv <bendq>s3=Yes . ;if <bend> = N ldv <bendq>s3=No .\n<bendq>\n@      if <screw> = Y ldv <screwq>s3=Yes . ;if <screw> = N ldv <screwq>s3=No .\n<screwq>\n@     srh,-5 dh \'cd\' \xac,<stpprot> .\n@     rdl,-0,6,lin1 \'description\' <stpdesc>s .\n<stpdesc>\n@     srh,-6 dh \'cd\' \xac,<chimney> .\n@     rdl,-0,6,lin1 \'description\' <chimdesc>s .\n<chimdesc>\n<chimneyage>\n@      if <liner> = C ldv <wliner>s5=Clay . ; .\n@      if <liner> = S ldv <wliner>s5=Steel . ; .\n@      if <liner> = O ldv <wliner>s5=Other . ; .\n<wliner>\n<clothdesc>\n@      if <prefab> = Y ldv <preq>s3=Yes . ;if <prefab> = N ldv <preq>s3=No .\n<preq>\n@      if <flue> = Y ldv <flueq>s3=Yes . ;if <flue> = N ldv <flueq>s3=No .\n<flueq>\n<fluedesc>\n@      if <cond> = E ldv <condq>s9=Excellent . ; .\n@      if <cond> = G ldv <condq>s9=Good . ; .\n@      if <cond> = F ldv <condq>s9=Fair . ; .\n@      if <cond> = P ldv <condq>s9=Poor . ; .\n<condq>\n<cleaned>\n@      if <reclaims> = Y ldv <reclq>s3=Yes . ;if <reclaims> = N ldv <reclq>s3=No .\n<reclq>\n<reclaimdesc>\n@      if <clear> = Y ldv <clearq>s3=Yes . ;if <clear> = N ldv <clearq>s3=No .\n<clearq>\n<wallclear>\n<floorclear>\n<bottomclear>\n<rearclear>\n<pipeclear>\n<ceilclear>\n<sideclear>\n<wall1clear>\n<wall2clear>\n$$DONE\n$wood2\n<allname><number>\n@.-----------------------------------------------------------------------------------\n@0077:if <supp> eq y . ; gto 0078 .\n$$DONENOWSUPP\n$supp\n<allname><number>\n<agtname>\ndate6$\n@     if <elec> = y ldv <elecq>s3=Yes . ;if <elec> = n ldv <elecq>s3=No . ;ldv <elecq>s3 .\n<elecq>\n<1year>\n@     if <plumb> = y ldv <plumbq>s3=Yes . ;if <plumb> = n ldv <plumbq>s3=No . ;ldv <plumbq>s3 .\n<plumbq>\n<2year>\n@     if <heating> = y ldv <heatq>s3=Yes . ;if <heating> = n ldv <heatq>s3=No . ;ldv <heatq>s3 .\n<heatq>\n<3year>\n@     if <roofing> = y ldv <roofq>s3=Yes . ;if <roof> = n ldv <roofq>s3=No . ;ldv <roofq>s3 .\n<roofq>\n<4year>\n@     if <woods> = y ldv <woodsq>s3=Yes . ;if <woods> = n ldv <woodsq>s3=No . ;ldv <woodsq>s3 .\n<woodsq>\n<5year>\n@.-----------------------------------------------------------------------------------\n@0078:if <hoinfo> eq y . ; if <4mort> EQ Y . ; gto 0079 .\n@     ldv <spaces>s80 .\n$$DONENOWINFO\n$hoinfo\n<allname><number>\n<remk1>\n@     if <4mort> EQ Y . ; gto 0079 .\n@     ldv <mline>i2=5 .\n@     srh,-11 dha 2-1,8-2,10-1 *,M,03,M/*,M,04,M rnm -6 .\n@0149:inc <mline> .\n@     rdl,-6,<mline>,0079 8-2,11-30,41-30,71-30,101-30,131-30,\\\n         161-9,181-20,201-2 <mstat>i,<mname>s,<madd1>s,<madd2>s,<madd3>s,\\\n         <mtext>s,<mzip>s,<mcity>s,<mstate>s .\n@     if <mzip>(0-4) = \'\' ldv <pmzip>s10=<mzip> . ;\\\n         ldv <pmzip>s10=<mzip>(1-5)\'-\'<mzip>(0-4) .\n<spaces>\nMortgagee #<mstat>\n<mname>\n<madd1>\n<madd2>\n<madd3>\n<mcity> <mstate> <pmzip>\nLoan #: <mtext>\n@     gto 0149 .\n@.-----------------------------------------------------------------------------------\n@0079:if <sta> eq OK  . ; gto 0085 .\n@.\n$$DONENOWFIRE\n$hofire\n<allname>\n<add1> <add2>\n<cityst> <zip>(1-5)-<zip>(6-4)\n<insphone>\n<effdat>(5-2)-<effdat>(7-2)-<effdat>(3-2)<number>\n<prod>\n<agtname> <agtname2>\n<agtadd>\n<agtcity> <agtst> <agtzip>\n<agtphone>(1-3)-<agtphone>(4-3)-<agtphone>(7-4)\n<agtfax>(1-3)-<agtfax>(4-3)-<agtfax>(7-4)\n<rural>\n<dues>\n@.-----------------------------------------------------------------------------------\n@0085: .\n$$CF-1810\n<allname>\n<add1>\n@     def,,lin+1 <n>i1,<add2> ldv <pobox>s6=\'PO Box\' gto lin+2 .\n@     ldv <pobox>s0 .\n<pobox> <add2>\n<cityst>  <zip>(1-5)-<zip>(6-4)\n<prod>\n<agtname>\n<agtname2>\n<agtadd>\n<agtcity> <agtst> <agtzip>\n<agtphone>(1-3)-<agtphone>(4-3)-<agtphone>(7-4)\n<agtfax>(1-3)-<agtfax>(4-3)-<agtfax>(7-4)\n$$DONE\n@.-----------------------------------------------------------------------------------\n$$ALLDONE\n@. -----------------------------------------------------------------------------\n@. ** Send App to DEPCON for processing\n@. -----------------------------------------------------------------------------\n@0070:brk rnm -16 .\n@     ldv <save-id>a3=app,<report-id>h10=HOQuote .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,17 0001 \\\n         (<save-id>,<sessionid>,<report-id>,<GIceRepCab>,\\\n          <msg>a3,<msgtxt>s256,<status>a1) .\n@     if <status> = 0 . ; gto 0023 .               Status OK?\n@     rnm -15 .\n@     add,-16,-15 rnm -15 .\n@.    rep,0,i,500 .\n@.    #  Call NSPRINTAPP routine to generate the application\n@     if <sshtype> EQ M ldv <printer>S7=MHWEBAP . ; ldv <printer>s7=HOWEBAP .\n@     ldv <policy>h7=<number>,<state>h2=<sta> .\n@     rsl,-15  call,NSPRINTAPP_ 0001 (<printer>,<policy>,<state>,<msg>s80,<status>h1) .\n@     if <status> eq 9  gto 0185 . ; .                              Passes <msg> returned from @call\n@     rnm -15 .                                                       Save generated application.pdf\n@.\n@.    #  Clean up existing application.pdf if it exists\n@     ldv,p <filename>s20=\'Application.pdf\',<saveid>s0,<reportid>s0 .\n@     rsl,-1  call,NSFILEUPLD_ delUpldFile_ (<policy>,<filename>,<saveid>,<reportid>,<status>h1) .\n@     rnm -1 .\n@.\n@.    #  Add new application.pdf to quote result\n@     ldv <lob>h2=\'HO\' .\n@     rsl,-15  call,NSFILEUPLD_ addUpldFile_ (<policy>,<filename>,<lob>,<sshquote>,\\\n        <ssuserid>,<saveid>s40,<reportid>s20,<msg>s80,<status>h1) .\n@     if <status> eq 9  gto 0185 . ; .                                          Something went wrong\n@     lzr,-0 ,,<hln>i3  inc <hln> .\n@     lny,-0,<hln>,1  lzr,-1 <lln>i3  lnp,-1,<lln> .                   Add UF record to quote result\n@.\n@.    #  Save quote to database\n@rdb  rsl,-1  call,HOMDATA_ 0015 (<ssuserid>,<status>h1) .\n@     if <status> eq 0 . ; gto 0182 .\n@     rsl,-1 .\n@     ldv <save-id>h6=\'HO\',<report-id>s20=\'HOquote\' .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,16 0001* \\\n      (<save-id>,<sessionid>,<report-id>,<GIceRepCab>,\\\n      <msg>a3,<msgtxt>s256,<status>a1) .\n@.@.  ----------------------------------------------------------------------------\n@.  -------- don\'t write the PDF to the cool_ice directory on a reprint --------\n@.  ----------------------------------------------------------------------------\n@     if <reprint> = Y gto 0111 . ; .\n@.*********************** Send FUP record to IR ********************************\n@     if <GAspAlsDir> eq \'Fieldstaff\'  ldv <polno>s5=<ssfquote> gto 0111 . ; .\n@     if <sta> eq OK \\\n        ldv <sys>h3=\'OGA\'  fdr,OGACOLDIMPTBL_ \'\' \'PlTy\' \xac,\'HO\'  rln \'Draw\' <draw>h . ; \\\n        ldv <sys>h3=\'NSM\'  fdr,NSCOLDIMPTBL_ \'\' \'PlTy\' \xac,\'HO\'   rln \'Draw\' <draw>h .\n@     ldv <file>s7=<number>,<fnum>s40=<number>,<fname>s30=<name>,<user>s8,<ukey1>s40,\\\n          <udata1>s10,<udata2>s20,<udata3>s30,<udata4>s40,<udata5>s50,<newfile>s40,\\\n          <newdraw>s4,<longuserid>s10,<filemark1>s3,<filemark2>s3,<filemark3>s3 .\n@     call,NSIRFUP_ 0001 (<draw>,<fnum>,<fname>,<user>,<ukey1>,\\\n        <udata1>,<ssn>,<udata3>,<udata4>,<udata5>,<newfile>,\\\n        <newdraw>,<longuserid>,<filemark1>,<filemark2>,<filemark3>,<msg>s80) .\n@.    #  Write file to appropriate system (NSM or OGA)\n@     call,NSIRIMPORT_ 0001 (<sys>,\'HO\',\'FoldrUp\',<fnum>,<MSG>s100) .\n@. -----------------------------------------------------------------------------\n@. ----- RE-DIRECT TO ANOTHER DYNAMIC OBJECT IF BELOW SCREEN IS NOT NEEDED -----\n@. -----------------------------------------------------------------------------\n@0111:if <reprint> EQ Y gto 0090 . ; .\n@     if <noupload> eq Y gto 0090 . ; .\n@     def,,0095 <a>a1,<dwnpay> if <bto> EQ M gto 0095 . ; .\n      [html]\n\n@     if ecab$ > 698 ldv <misc>a9=\'misc_test\' . ; ldv <misc>a4=\'misc\' .\n[meta http-equiv="refresh" content="0;\nurl=<gurl><gcatkwd><misc><gsvckwd>eft_selection&line=h&pol=<pol>&dwnpay=<dwnpay>&bto=<bto>\n&noupload=<noupload>"]\n      [head]\n@     rsr,<stcab>,<stdrw>,<strpt> 0010 .\n      [/head]\n      [body]\n\n      [/body]\n      [/html]\n@     brk .                                                 End HTML Output Area\n@     return .                            Return to The Cool ICE Service Handler\n@0095:def,,0090 <n>i1,<bto> .\n@.bl     if <bto> EQ M ldv <polno>=<sshquote> . ; .\n      [html]\n\n        [meta http-equiv="refresh" content="0;\n        url=<gurlcat>file_upload&pol=<polno>&dwnpay=mort&bto=<bto>&first=Y"]\n      [head]\n@     rsr,<stcab>,<stdrw>,<strpt> 0010 .\n      [/head]\n      [body]\n\n      [/body]\n      [/html]\n@     brk .                                                 End HTML Output Area\n@     return .                            Return to The Cool ICE Service Handler\n@0090:def,,lin+1 <n>i1,<noupload> if <noupload> EQ Y gto lin+3 . ; .\n@.     if <bto> EQ M ldv <polno>a5=<sshquote> gto 0095 . ; .\n@     if <bto> EQ M gto 0095 . ; .\n      [html]\n\n        [meta http-equiv="refresh" content="0;\n        url=<gurlcat>menu_screen&reprint=<reprint>&pol=<pol>&noupload=<noupload>"]\n      [head]\n@     rsr,<stcab>,<stdrw>,<strpt> 0010 .\n      [/head]\n      [body]\n      [/body]\n      [/html]\n@     brk .                                                 End HTML Output Area\n@     return .                            Return to The Cool ICE Service Handler\n@.-----------------------------------------------------------------------------------\n@0180:ldv <msg>s70=\'0180 - quote not found\' \\\n      ldv <msg1>s70=\'\' \\\n      ldv <msg2>s70=\'\' \\\n      ldv <msg3>s70=\'\' \\\n      ldv <msg4>s70=\'\' \\\n      ldv <msg5>s70=\'\' .\n@     gto 0190 .\n@0181:ldv <msg>s70=\'0181 - agent problem\' \\\n      ldv <msg1>s70=\'\' \\\n      ldv <msg2>s70=\'\' \\\n      ldv <msg3>s70=\'\' \\\n      ldv <msg4>s70=\'\' \\\n      ldv <msg5>s70=\'\' .\n@     gto 0190 .\n@0182:ldv <msg>s70=\'0182 - printing problem\' \\\n      ldv <msg1>s70=\'\' \\\n      ldv <msg2>s70=\'\' \\\n      ldv <msg3>s70=\'\' \\\n      ldv <msg4>s70=\'\' \\\n      ldv <msg5>s70=\'\' .\n@     gto 0190 .\n@0183:ldv <msg>s70=\'0183 - Zip code/County problem\' \\\n      ldv <msg1>s70=\'\' \\\n      ldv <msg2>s70=\'\' \\\n      ldv <msg3>s70=\'\' \\\n      ldv <msg4>s70=\'\' \\\n      ldv <msg5>s70=\'\' .\n@     gto 0190 .\n@.-----------------------------------------------------------------------------------\n@.----------------------IM and Woodburning subroutines-------------------------------\n@.-----------------------------------------------------------------------------------\n@. -----------------------------------------------------------------------------\n@.    -------- general purpose error screen ------------------------------------\n@. -----------------------------------------------------------------------------\n@0190:csr .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,011 0001 \\                  Get location of\n      (<category>,\'Error_Message_Output\',<GIceRepCab>,\\             Error Output\n      <ocab>a4,<odrw>a1,<orpt>a4,<msgnbr>a3,<msgtxt>s132,<status>a1) .\n@     if <status> = 9 error ; .                     Could not find error routine\n@     rsr,<ocab>,<odrw>,<orpt> 0010 .                         Call Error Routine\n@     if <run> = y dsx,-0 ; .\n@     return .                                                 Return to browser\n@.------------------------------------------------------------------------------\n@. ----------- Session Timeout Section - Send User To Main Menu Again ----------\n@. -----------------------------------------------------------------------------\n@0195:csr .\n@     call,<GSvcHndCab>,<GSvcHndDrw>,011 0001 \\                  Get location of\n      (<category>,\'Session_Timeout\',<GIceRepCab>,\\            Enter-Votes-object\n      <ocab>a4,<odrw>a1,<orpt>a4,<msgnbr>a3,<msgtxt>s132,<status>a1) .\n@     if <status> = 9,(0181) ; .\n@     gto rpx <orpt> .\n' is not JSON serializable
divmain commented 9 years ago

I'm going to do some work to the logging feature to better support cases like this. As it is, I don't think I have enough information to go on. Most likely, the file is not valid UTF-8. You mentioned you were using SublimeGit before this without issue, so I'll look for a workaround.

Do other commands succeed (normal diff views, for example)?

weslly commented 9 years ago

I'm having a similar error when trying to open the log on a file:

Traceback (most recent call last):
  File "/Users/weslly/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/git_command.py", line 102, in git
    stdout, stderr = stdout.decode(), stderr.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 1036297: invalid continuation byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 556, in run_
    return self.run(edit)
  File "/Users/weslly/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/commands/show_commit.py", line 29, in run
    content = self.git("show", commit_hash)
  File "/Users/weslly/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/git_command.py", line 105, in git
    raise_error(e)
  File "/Users/weslly/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/git_command.py", line 86, in raise_error
    raise GitSavvyError(msg)
GitSavvy.core.git_command.GitSavvyError: 'utf-8' codec can't decode byte 0xe2 in position 1036297: invalid continuation byte
divmain commented 9 years ago

@weslly, UTF-8 is assumed in handful of places in GitSavvy. Are you working with files encoded with something other than UTF-8? This is complicated to robustly support, but I'm thinking through some possible strategies.

asfaltboy commented 9 years ago

This just happened to me when opening the detailed commit view with staged files with character encoding other than UTF-8 (it was windows-1255 in my case); I guess rendering the diff is the issue:

Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 556, in run_
    return self.run(edit)
  File "/Users/big/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/commands/commit.py", line 94, in run
    initial_text += self.git("diff", "--no-color", "--cached")
  File "/Users/big/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/git_command.py", line 111, in git
    raise_error(e)
  File "/Users/big/Library/Application Support/Sublime Text 3/Packages/GitSavvy/core/git_command.py", line 92, in raise_error
    raise GitSavvyError(msg)
GitSavvy.core.git_command.GitSavvyError: 'utf-8' codec can't decode byte 0xec in position 1868: invalid continuation byte

Interestingly enough, when opening this windows-1255 file in sublime, I see a helpful message in the console: unable to auto detect encoding for ~/dev/test_win1255.txt, using fallback encoding Western (Windows 1252). This behavior also seems to be used in vim, when I use it as git editor, the characters just seem encoded as Western, which is better than no output at all.

This fallback would be a simple try/except clause, such as in asfaltboy/GitSavvy@ca876dbd49842cb5086d052d83b19fc8f1019091. Let me know a PR is welcome.

If we really want to make a smarter guess, then we could use chardet:

  1. chardet.detect() the command result row by row.
  2. decode each row in guessed encoding
  3. finally encode everything in UTF-8.
divmain commented 9 years ago

@asfaltboy, here's a thought - a noisier failure might be warranted. In the case of an inline-diff, falling back is probably fine. But there may be cases where silently falling back could be very undesirable. What are your thoughts on something like:

def decode_stdout(stdout):
    try:
        stdout = stdout.decode()
    except UnicodeDecodeError as err:
        if sublime.ok_cancel_dialog("GitSavvy was unable to parse content successfully.  Would you like to fallback to the default encoding?  Text may not appear as expected.", "Fallback?"):
            return stdout.decode("windows-1252")
        raise err

# later in the `git` method...

stdout, stderr = decode_stdout(stdout), stderr.decode()
asfaltboy commented 9 years ago

Sure, that seems reasonable, tested it out, looks good:

image of dialog

divmain commented 9 years ago

Awesome. no need to PR, I'll just bring over your commit. Thanks!

divmain commented 9 years ago

Closed by 121f932f2e5d39163d12da9e2f36ad3542e70c52.