Changeset 21916 for trunk/src/winspool
- Timestamp:
- Dec 18, 2011, 10:28:22 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 deleted
- 4 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:ignore
-
old new 1 bin 2 Makefile.inc 1 env.cmd 2 LocalConfig.kmk
-
-
Property svn:mergeinfo
set to
/branches/gcc-kmk merged eligible
- Property svn:ignore
-
trunk/src/winspool/stubs.cpp
r21305 r21916 21 21 #include <odinwrap.h> 22 22 #include <heapstring.h> 23 #include <win \winnls.h>24 #include <win \debugstr.h>25 #include <win \debugtools.h>23 #include <win/winnls.h> 24 #include <win/debugstr.h> 25 #include <win/debugtools.h> 26 26 27 27 #include <stdio.h> -
trunk/src/winspool/winspool.cpp
r21629 r21916 29 29 #include <odinwrap.h> 30 30 #include <heapstring.h> 31 #include <win \winnls.h>32 #include <win \debugstr.h>33 #include <win \debugtools.h>31 #include <win/winnls.h> 32 #include <win/debugstr.h> 33 #include <win/debugtools.h> 34 34 35 35 #include <stdio.h> … … 132 132 "System\\CurrentControlSet\\control\\Print\\Environments\\%s\\Drivers\\"; 133 133 134 WINAPI GDI_CallExtDeviceMode16 ( HWND hwnd, LPDEVMODEA lpdmOutput,135 LPSTR lpszDevice, LPSTR lpszPort,136 LPDEVMODEA lpdmInput, LPSTR lpszProfile,137 DWORD fwMode );138 134 #ifndef __WIN32OS2__ 139 135 static LPWSTR *printer_array; … … 657 653 658 654 case VER_PLATFORM_WIN32_NT: 659 p = "Windows NT x86";655 p = (LPSTR)"Windows NT x86"; 660 656 break; 661 657 default: 662 p = "Windows 4.0";658 p = (LPSTR)"Windows 4.0"; 663 659 break; 664 660 } … … 825 821 DM_DEFAULTSOURCE | DM_PRINTQUALITY | 826 822 DM_YRESOLUTION | DM_TTOPTION; 827 828 #if (__IBMCPP__ == 360) 829 dm.dmOrientation = DMORIENT_PORTRAIT; 830 dm.dmPaperSize = DMPAPER_A4; 831 dm.dmPaperLength = 2970; 832 dm.dmPaperWidth = 2100; 833 #else 834 dm.s1.dmOrientation = DMORIENT_PORTRAIT; 835 dm.s1.dmPaperSize = DMPAPER_A4; 836 dm.s1.dmPaperLength = 2970; 837 dm.s1.dmPaperWidth = 2100; 838 #endif 839 823 dm.DUMMYSTRUCTNAME1_DOT dmOrientation = DMORIENT_PORTRAIT; 824 dm.DUMMYSTRUCTNAME1_DOT dmPaperSize = DMPAPER_A4; 825 dm.DUMMYSTRUCTNAME1_DOT dmPaperLength = 2970; 826 dm.DUMMYSTRUCTNAME1_DOT dmPaperWidth = 2100; 840 827 dm.dmScale = 100; 841 828 dm.dmCopies = 1; … … 2061 2048 * FIXME: 2062 2049 * Note that DocumentPropertiesW will briefly try to open the printer we 2050 2051 2052 2053 2063 2054 * just create to find a DEVMODEA struct (it will use the WINEPS default 2064 2055 * one in case it is not there, so we are ok). … … 2175 2166 return FALSE; 2176 2167 } 2177 if(!di3.pDefaultDataType) di3.pDefaultDataType = "";2178 if(!di3.pDependentFiles) di3.pDependentFiles = "\0";2179 if(!di3.pHelpFile) di3.pHelpFile = "";2180 if(!di3.pMonitorName) di3.pMonitorName = "";2168 if(!di3.pDefaultDataType) di3.pDefaultDataType = (LPSTR)""; 2169 if(!di3.pDependentFiles) di3.pDependentFiles = (LPSTR)"\0"; 2170 if(!di3.pHelpFile) di3.pHelpFile = (LPSTR)""; 2171 if(!di3.pMonitorName) di3.pMonitorName = (LPSTR)""; 2181 2172 2182 2173 hkeyDrivers = WINSPOOL_OpenDriverReg(di3.pEnvironment, FALSE); … … 3263 3254 { /* bad printer driver name? try cover up. */ 3264 3255 di3.pName = paQueues[i].pszDriverName; 3265 di3.pDriverPath = "WINSPOOL"; /* This is important! */3256 di3.pDriverPath = (LPSTR)"WINSPOOL"; /* This is important! */ 3266 3257 } 3267 3258 #else … … 3270 3261 #endif 3271 3262 di3.pEnvironment = NULL; /* NULL means auto */ 3272 di3.pDataFile = "<datafile?>";3273 di3.pConfigFile = "winodin.drv";3274 di3.pHelpFile = "<helpfile?>";3275 di3.pDependentFiles = "<dependend files?>";3276 di3.pMonitorName = "<monitor name?>";3277 di3.pDefaultDataType = "RAW";3263 di3.pDataFile = (LPSTR)"<datafile?>"; 3264 di3.pConfigFile = (LPSTR)"winodin.drv"; 3265 di3.pHelpFile = (LPSTR)"<helpfile?>"; 3266 di3.pDependentFiles = (LPSTR)"<dependend files?>"; 3267 di3.pMonitorName = (LPSTR)"<monitor name?>"; 3268 di3.pDefaultDataType = (LPSTR)"RAW"; 3278 3269 if (!AddPrinterDriverA(NULL, 3, (LPBYTE)&di3)) 3279 3270 { … … 3283 3274 3284 3275 /* Make printer. */ 3285 papi2[i].pDatatype = "RAW";3286 papi2[i].pPrintProcessor = "WinPrint";3276 papi2[i].pDatatype = (LPSTR)"RAW"; 3277 papi2[i].pPrintProcessor = (LPSTR)"WinPrint"; 3287 3278 #ifdef USE_OS2_DRIVERNAME 3288 3279 papi2[i].pComment = paQueues[i].pszName; /* Queue name. Don't allow any changes of the comment! */ … … 3291 3282 #endif 3292 3283 papi2[i].pDriverName = di3.pName; 3293 papi2[i].pParameters = "<parameters?>";3294 papi2[i].pShareName = "<share name?>";3295 papi2[i].pSepFile = "<sep file?>";3284 papi2[i].pParameters = (LPSTR)"<parameters?>"; 3285 papi2[i].pShareName = (LPSTR)"<share name?>"; 3286 papi2[i].pSepFile = (LPSTR)"<sep file?>"; 3296 3287 #if 0 /* only 'local', remember */ 3297 3288 if (paPrinters[i].pszComputerName) /* this is currnetly not used as we only enum locals. */ … … 3318 3309 * the anyway. 3319 3310 */ 3320 papi2[i].pLocation = "";3321 papi2[i].pPortName = "";3311 papi2[i].pLocation = (LPSTR)""; 3312 papi2[i].pPortName = (LPSTR)""; 3322 3313 psz = strchr(paQueues[i].pszPrinters, ','); 3323 3314 if (psz) -
trunk/src/winspool/winspooldbg.def
r21305 r21916 8 8 EXPORTS 9 9 ; ADVANCEDSETUPDIALOG @104 10 AbortPrinter = _DbgAbortPrinter@4@10511 AddFormA = _DbgAddFormA@12@10612 AddFormW = _DbgAddFormW@12@10713 AddJobA = _DbgAddJobA@20@10814 AddJobW = _DbgAddJobW@20@10915 AddMonitorA = _DbgAddMonitorA@12@11016 AddMonitorW = _DbgAddMonitorA@12@11117 AddPortA = _DbgAddPortA@12@11210 AbortPrinter = "_DbgAbortPrinter@4" @105 11 AddFormA = "_DbgAddFormA@12" @106 12 AddFormW = "_DbgAddFormW@12" @107 13 AddJobA = "_DbgAddJobA@20" @108 14 AddJobW = "_DbgAddJobW@20" @109 15 AddMonitorA = "_DbgAddMonitorA@12" @110 16 AddMonitorW = "_DbgAddMonitorA@12" @111 17 AddPortA = "_DbgAddPortA@12" @112 18 18 ; AddPortExA @113 19 19 ; AddPortExW @114 20 AddPortW = _DbgAddPortW@12@11521 AddPrintProcessorA = _DbgAddPrintProcessorA@16@11622 AddPrintProcessorW = _DbgAddPrintProcessorW@16@11723 AddPrintProvidorA = _DbgAddPrintProvidorA@12@11824 AddPrintProvidorW = _DbgAddPrintProvidorW@12@11925 AddPrinterA = _DbgAddPrinterA@12@12026 AddPrinterConnectionA = _DbgAddPrinterConnectionA@4@12120 AddPortW = "_DbgAddPortW@12" @115 21 AddPrintProcessorA = "_DbgAddPrintProcessorA@16" @116 22 AddPrintProcessorW = "_DbgAddPrintProcessorW@16" @117 23 AddPrintProvidorA = "_DbgAddPrintProvidorA@12" @118 24 AddPrintProvidorW = "_DbgAddPrintProvidorW@12" @119 25 AddPrinterA = "_DbgAddPrinterA@12" @120 26 AddPrinterConnectionA = "_DbgAddPrinterConnectionA@4" @121 27 27 ; AddPrinterConnectionUI @122 28 AddPrinterConnectionW = _DbgAddPrinterConnectionW@4@12329 AddPrinterDriverA = _DbgAddPrinterDriverA@12@12430 AddPrinterDriverW = _DbgAddPrinterDriverW@12@12531 AddPrinterW = _DbgAddPrinterW@12@12632 AdvancedDocumentPropertiesA = _DbgAdvancedDocumentPropertiesA@20@12733 AdvancedDocumentPropertiesW = _DbgAdvancedDocumentPropertiesA@20@12828 AddPrinterConnectionW = "_DbgAddPrinterConnectionW@4" @123 29 AddPrinterDriverA = "_DbgAddPrinterDriverA@12" @124 30 AddPrinterDriverW = "_DbgAddPrinterDriverW@12" @125 31 AddPrinterW = "_DbgAddPrinterW@12" @126 32 AdvancedDocumentPropertiesA = "_DbgAdvancedDocumentPropertiesA@20" @127 33 AdvancedDocumentPropertiesW = "_DbgAdvancedDocumentPropertiesA@20" @128 34 34 ; AdvancedSetupDialog @129 35 ClosePrinter = _DbgClosePrinter@4@13036 ConfigurePortA = _DbgConfigurePortA@12@13137 ConfigurePortW = _DbgConfigurePortW@12@13238 ConnectToPrinterDlg = _DbgConnectToPrinterDlg@8@13335 ClosePrinter = "_DbgClosePrinter@4" @130 36 ConfigurePortA = "_DbgConfigurePortA@12" @131 37 ConfigurePortW = "_DbgConfigurePortW@12" @132 38 ConnectToPrinterDlg = "_DbgConnectToPrinterDlg@8" @133 39 39 ; ConvertAnsiDevModeToUnicodeDevmode @134 40 40 ; ConvertUnicodeDevModeToAnsiDevmode @135 … … 42 42 ; DEVICECAPABILITIES @137 43 43 ; DEVICEMODE @138 44 DeleteFormA = _DbgDeleteFormA@8@13945 DeleteFormW = _DbgDeleteFormW@8@14046 DeleteMonitorA = _DbgDeleteMonitorA@12@14147 DeleteMonitorW = _DbgDeleteMonitorW@12@14248 DeletePortA = _DbgDeletePortA@12@14349 DeletePortW = _DbgDeletePortW@12@14450 DeletePrintProcessorA = _DbgDeletePrintProcessorA@12@14551 DeletePrintProcessorW = _DbgDeletePrintProcessorW@12@14652 DeletePrintProvidorA = _DbgDeletePrintProvidorA@12@14753 DeletePrintProvidorW = _DbgDeletePrintProvidorW@12@14854 DeletePrinter = _DbgDeletePrinter@4@14955 DeletePrinterConnectionA = _DbgDeletePrinterConnectionA@4@15056 DeletePrinterConnectionW = _DbgDeletePrinterConnectionW@4@15157 DeletePrinterDataA = _DbgDeletePrinterDataA@8@15258 DeletePrinterDataW = _DbgDeletePrinterDataW@8@15359 DeletePrinterDriverA = _DbgDeletePrinterDriverA@12@15460 DeletePrinterDriverW = _DbgDeletePrinterDriverW@12@15544 DeleteFormA = "_DbgDeleteFormA@8" @139 45 DeleteFormW = "_DbgDeleteFormW@8" @140 46 DeleteMonitorA = "_DbgDeleteMonitorA@12" @141 47 DeleteMonitorW = "_DbgDeleteMonitorW@12" @142 48 DeletePortA = "_DbgDeletePortA@12" @143 49 DeletePortW = "_DbgDeletePortW@12" @144 50 DeletePrintProcessorA = "_DbgDeletePrintProcessorA@12" @145 51 DeletePrintProcessorW = "_DbgDeletePrintProcessorW@12" @146 52 DeletePrintProvidorA = "_DbgDeletePrintProvidorA@12" @147 53 DeletePrintProvidorW = "_DbgDeletePrintProvidorW@12" @148 54 DeletePrinter = "_DbgDeletePrinter@4" @149 55 DeletePrinterConnectionA = "_DbgDeletePrinterConnectionA@4" @150 56 DeletePrinterConnectionW = "_DbgDeletePrinterConnectionW@4" @151 57 DeletePrinterDataA = "_DbgDeletePrinterDataA@8" @152 58 DeletePrinterDataW = "_DbgDeletePrinterDataW@8" @153 59 DeletePrinterDriverA = "_DbgDeletePrinterDriverA@12" @154 60 DeletePrinterDriverW = "_DbgDeletePrinterDriverW@12" @155 61 61 ; DeletePrinterIC @156 62 62 ; DevQueryPrint @157 63 63 ; DevQueryPrintEx @158 64 DeviceCapabilities = _DbgDeviceCapabilitiesA@20@15965 DeviceCapabilitiesA = _DbgDeviceCapabilitiesA@20@16066 DeviceCapabilitiesW = _DbgDeviceCapabilitiesW@20@16164 DeviceCapabilities = "_DbgDeviceCapabilitiesA@20" @159 65 DeviceCapabilitiesA = "_DbgDeviceCapabilitiesA@20" @160 66 DeviceCapabilitiesW = "_DbgDeviceCapabilitiesW@20" @161 67 67 ; DeviceMode @162 68 68 ; DevicePropertySheets @163 69 69 ; DocumentEvent @164 70 DocumentPropertiesA = _DbgDocumentPropertiesA@24@16571 DocumentPropertiesW = _DbgDocumentPropertiesW@24@16670 DocumentPropertiesA = "_DbgDocumentPropertiesA@24" @165 71 DocumentPropertiesW = "_DbgDocumentPropertiesW@24" @166 72 72 ; DocumentPropertySheets @167 73 73 ; EXTDEVICEMODE @168 74 EndDocPrinter = _DbgEndDocPrinter@4@16975 EndPagePrinter = _DbgEndPagePrinter@4@17076 EnumFormsA = _DbgEnumFormsA@24@17177 EnumFormsW = _DbgEnumFormsW@24@17278 EnumJobsA = _DbgEnumJobsA@32@17379 EnumJobsW = _DbgEnumJobsW@32@17480 EnumMonitorsA = _DbgEnumMonitorsA@24@17581 EnumMonitorsW = _DbgEnumMonitorsW@24@17682 EnumPortsA = _DbgEnumPortsA@24@17783 EnumPortsW = _DbgEnumPortsW@24@17884 EnumPrintProcessorDatatypesA = _DbgEnumPrintProcessorDatatypesA@28@17985 EnumPrintProcessorDatatypesW = _DbgEnumPrintProcessorDatatypesW@28@18086 EnumPrintProcessorsA = _DbgEnumPrintProcessorsA@28@18187 EnumPrintProcessorsW = _DbgEnumPrintProcessorsW@28@18288 EnumPrinterDataA = _DbgEnumPrinterDataA@36@18389 EnumPrinterDataW = _DbgEnumPrinterDataW@36@18490 EnumPrinterDriversA = _DbgEnumPrinterDriversA@28@18591 EnumPrinterDriversW = _DbgEnumPrinterDriversA@28@18692 EnumPrintersA = _DbgEnumPrintersA@28@18793 EnumPrintersW = _DbgEnumPrintersW@28@18874 EndDocPrinter = "_DbgEndDocPrinter@4" @169 75 EndPagePrinter = "_DbgEndPagePrinter@4" @170 76 EnumFormsA = "_DbgEnumFormsA@24" @171 77 EnumFormsW = "_DbgEnumFormsW@24" @172 78 EnumJobsA = "_DbgEnumJobsA@32" @173 79 EnumJobsW = "_DbgEnumJobsW@32" @174 80 EnumMonitorsA = "_DbgEnumMonitorsA@24" @175 81 EnumMonitorsW = "_DbgEnumMonitorsW@24" @176 82 EnumPortsA = "_DbgEnumPortsA@24" @177 83 EnumPortsW = "_DbgEnumPortsW@24" @178 84 EnumPrintProcessorDatatypesA = "_DbgEnumPrintProcessorDatatypesA@28" @179 85 EnumPrintProcessorDatatypesW = "_DbgEnumPrintProcessorDatatypesW@28" @180 86 EnumPrintProcessorsA = "_DbgEnumPrintProcessorsA@28" @181 87 EnumPrintProcessorsW = "_DbgEnumPrintProcessorsW@28" @182 88 EnumPrinterDataA = "_DbgEnumPrinterDataA@36" @183 89 EnumPrinterDataW = "_DbgEnumPrinterDataW@36" @184 90 EnumPrinterDriversA = "_DbgEnumPrinterDriversA@28" @185 91 EnumPrinterDriversW = "_DbgEnumPrinterDriversA@28" @186 92 EnumPrintersA = "_DbgEnumPrintersA@28" @187 93 EnumPrintersW = "_DbgEnumPrintersW@28" @188 94 94 ; ExtDeviceMode @189 95 FindClosePrinterChangeNotification = _DbgFindClosePrinterChangeNotification@4@19096 FindFirstPrinterChangeNotification = _DbgFindFirstPrinterChangeNotification@16@19197 FindNextPrinterChangeNotification = _DbgFindNextPrinterChangeNotification@16@19298 FreePrinterNotifyInfo = _DbgFreePrinterNotifyInfo@4@19399 GetFormA = _DbgGetFormA@24@194100 GetFormW = _DbgGetFormW@24@195101 GetJobA = _DbgGetJobA@24@196102 GetJobW = _DbgGetJobW@24@197103 GetPrintProcessorDirectoryA = _DbgGetPrintProcessorDirectoryA@24@198104 GetPrintProcessorDirectoryW = _DbgGetPrintProcessorDirectoryW@24@199105 GetPrinterA = _DbgGetPrinterA@20@200106 GetPrinterDataA = _DbgGetPrinterDataA@24@201107 GetPrinterDataW = _DbgGetPrinterDataW@24@202108 GetPrinterDriverA = _DbgGetPrinterDriverA@24@203109 GetPrinterDriverDirectoryA = _DbgGetPrinterDriverDirectoryA@24@204110 GetPrinterDriverDirectoryW = _DbgGetPrinterDriverDirectoryW@24@205111 GetPrinterDriverW = _DbgGetPrinterDriverW@24@206112 GetPrinterW = _DbgGetPrinterW@20@20795 FindClosePrinterChangeNotification = "_DbgFindClosePrinterChangeNotification@4" @190 96 FindFirstPrinterChangeNotification = "_DbgFindFirstPrinterChangeNotification@16" @191 97 FindNextPrinterChangeNotification = "_DbgFindNextPrinterChangeNotification@16" @192 98 FreePrinterNotifyInfo = "_DbgFreePrinterNotifyInfo@4" @193 99 GetFormA = "_DbgGetFormA@24" @194 100 GetFormW = "_DbgGetFormW@24" @195 101 GetJobA = "_DbgGetJobA@24" @196 102 GetJobW = "_DbgGetJobW@24" @197 103 GetPrintProcessorDirectoryA = "_DbgGetPrintProcessorDirectoryA@24" @198 104 GetPrintProcessorDirectoryW = "_DbgGetPrintProcessorDirectoryW@24" @199 105 GetPrinterA = "_DbgGetPrinterA@20" @200 106 GetPrinterDataA = "_DbgGetPrinterDataA@24" @201 107 GetPrinterDataW = "_DbgGetPrinterDataW@24" @202 108 GetPrinterDriverA = "_DbgGetPrinterDriverA@24" @203 109 GetPrinterDriverDirectoryA = "_DbgGetPrinterDriverDirectoryA@24" @204 110 GetPrinterDriverDirectoryW = "_DbgGetPrinterDriverDirectoryW@24" @205 111 GetPrinterDriverW = "_DbgGetPrinterDriverW@24" @206 112 GetPrinterW = "_DbgGetPrinterW@20" @207 113 113 ; InitializeDll @208 114 OpenPrinterA = _DbgOpenPrinterA@12@209115 OpenPrinterW = _DbgOpenPrinterW@12@210114 OpenPrinterA = "_DbgOpenPrinterA@12" @209 115 OpenPrinterW = "_DbgOpenPrinterW@12" @210 116 116 ; PlayGdiScriptOnPrinterIC @211 117 PrinterMessageBoxA = _DbgPrinterMessageBoxA@24@212118 PrinterMessageBoxW = _DbgPrinterMessageBoxW@24@213119 PrinterProperties = _DbgPrinterProperties@8@214117 PrinterMessageBoxA = "_DbgPrinterMessageBoxA@24" @212 118 PrinterMessageBoxW = "_DbgPrinterMessageBoxW@24" @213 119 PrinterProperties = "_DbgPrinterProperties@8" @214 120 120 ; QueryRemoteFonts @215 121 121 ; QuerySpoolMode @216 122 ReadPrinter = _DbgReadPrinter@16@217123 ResetPrinterA = _DbgResetPrinterA@8@218124 ResetPrinterW = _DbgResetPrinterW@8@219125 ScheduleJob = _DbgScheduleJob@8@220122 ReadPrinter = "_DbgReadPrinter@16" @217 123 ResetPrinterA = "_DbgResetPrinterA@8" @218 124 ResetPrinterW = "_DbgResetPrinterW@8" @219 125 ScheduleJob = "_DbgScheduleJob@8" @220 126 126 ; SetAllocFailCount @221 127 SetFormA = _DbgSetFormA@16@222128 SetFormW = _DbgSetFormW@16@223129 SetJobA = _DbgSetJobA@20@224130 SetJobW = _DbgSetJobA@20@225131 SetPortA = _DbgSetPortA@16@226132 SetPortW = _DbgSetPortW@16@227133 SetPrinterA = _DbgSetPrinterA@16@228134 SetPrinterDataA = _DbgSetPrinterDataA@20@229135 SetPrinterDataW = _DbgSetPrinterDataW@20@230136 SetPrinterW = _DbgSetPrinterW@16@231127 SetFormA = "_DbgSetFormA@16" @222 128 SetFormW = "_DbgSetFormW@16" @223 129 SetJobA = "_DbgSetJobA@20" @224 130 SetJobW = "_DbgSetJobA@20" @225 131 SetPortA = "_DbgSetPortA@16" @226 132 SetPortW = "_DbgSetPortW@16" @227 133 SetPrinterA = "_DbgSetPrinterA@16" @228 134 SetPrinterDataA = "_DbgSetPrinterDataA@20" @229 135 SetPrinterDataW = "_DbgSetPrinterDataW@20" @230 136 SetPrinterW = "_DbgSetPrinterW@16" @231 137 137 ; SpoolerDevQueryPrintW @232 138 138 ; SpoolerInit @233 … … 140 140 ; StartDocDlgA @235 141 141 ; StartDocDlgW @236 142 StartDocPrinterA = _DbgStartDocPrinterA@12@237143 StartDocPrinterW = _DbgStartDocPrinterW@12@238144 StartPagePrinter = _DbgStartPagePrinter@4@239142 StartDocPrinterA = "_DbgStartDocPrinterA@12" @237 143 StartDocPrinterW = "_DbgStartDocPrinterW@12" @238 144 StartPagePrinter = "_DbgStartPagePrinter@4" @239 145 145 ; WaitForPrinterChange @240 146 WritePrinter = _DbgWritePrinter@16@241146 WritePrinter = "_DbgWritePrinter@16" @241 147 147 148 148 149 SplQueryPMQueueName = _SplQueryPMQueueName@12@250149 SplQueryPMQueueName = "_SplQueryPMQueueName@12" @250 150 150
Note:
See TracChangeset
for help on using the changeset viewer.