diff --git a/contrib/win32/openssh/AnalyzeCodeDiff.ps1 b/contrib/win32/openssh/AnalyzeCodeDiff.ps1 index 560a67fb..a4b4953b 100644 --- a/contrib/win32/openssh/AnalyzeCodeDiff.ps1 +++ b/contrib/win32/openssh/AnalyzeCodeDiff.ps1 @@ -1,200 +1,200 @@ -Set-StrictMode -Version Latest -$Win32Macro = 'WIN32_FIXME' -$sourceRoot = 'C:\openssh\Win32-OpenSSH' - -[int]$g_code = 0 -[int]$g_win32 = 0 -[int]$g_unix = 0 - -function AnalyzeFile($file, [bool]$log) -{ - $file = Join-Path $sourceRoot $file - if ($log) { Write-Host -ForegroundColor Gray $file } - $content = Get-Content $file - [int]$commentlines = 0 #comments - [int]$emptylines = 0 #emptylines - [int]$code = 0 #all code lines - [int]$win32 = 0 #win32 only lines - [int]$win32substituted = 0#lines in win32 block that have a corresponding Unix block (#ifdef with #else) - [int]$unix = 0; #unix only lines - [int]$unixsubstituted = 0 #lines in unix block that have a corresponding Win32 block (#ifdef with #else) - [int]$total = 0 - [int]$nestedmacros = 0 #tracks nested macro blocks inside a win32 or a unix block - [bool]$incommentblock = $false - [bool]$inWin32block = $false - [bool]$inUnixblock = $false - [int]$currentblockcode = 0 - [bool]$insubstitutedblock = $false - - - foreach ($linestr in $content) - { - $total++ - $line = [String]$linestr - $line = $line.Trim() - #skip if line is empty - if ($line.Length -gt 0) - { - if ($incommentblock) - { - $commentlines++ - if ($line.EndsWith('*/')) {$incommentblock = $false} - } - else - { - if ($line.StartsWith('//')) {$commentlines++} - elseif ($line.StartsWith('/*')) - { - if (!($line.EndsWith('*/'))) { $incommentblock = $true } - $commentlines++ - } - else - { - $code++ - if ($inWin32block) - { - $win32++ - $currentblockcode++ - #keep skipping inner #ifdefs - if ($line.StartsWith('#ifdef')) {$nestedmacros++} - - if ($line.EndsWith('#endif') -or $line.EndsWith('#else')) - { - if ($nestedmacros -eq 0) - { - $inWin32block = $false - if ($line.EndsWith('#else')) - { - $inUnixblock = $true - $insubstitutedblock = $true - $win32substituted += $currentblockcode - } - elseif ($insubstitutedblock) - { - $win32substituted += $currentblockcode - $insubstitutedblock = $false - } - $currentblockcode = 0 - } - else - { - if ($line.EndsWith('#endif')) {$nestedmacros--} - } - } - } - elseif ($inUnixblock) - { - $unix++ - $currentblockcode++ - #keep skipping inner #ifdefs - if ($line.StartsWith('#ifdef')) {$nestedmacros++} - - if ($line.EndsWith('#endif') -or $line.EndsWith('#else')) - { - if ($nestedmacros -eq 0) - { - $inUnixblock = $false - if ($line.EndsWith('#else')) - { - $inWin32block = $true - $insubstitutedblock = $true - $unixsubstituted += $currentblockcode - } - elseif ($insubstitutedblock) - { - $unixsubstituted += $currentblockcode - $insubstitutedblock = $false - } - - $currentblockcode = 0 - } - else - { - if ($line.EndsWith('#endif')) {$nestedmacros--} - } - } - } - else - { - if ($line.StartsWith('#ifdef') -and $line.Contains($Win32Macro)) - { - $inWin32block = $true - $currentblockcode = 0 - } - if ($line.StartsWith('#ifndef') -and $line.Contains($Win32Macro)) - { - $inUnixblock = $true - $currentblockcode = 0; - } - } - - } - } - } - else {$emptylines++} - } - - if ($log) - { - Write-Host -ForegroundColor Yellow " Comments " $commentlines - Write-Host -ForegroundColor Green " Blank " $emptylines - Write-Host -ForegroundColor Cyan " Code " $code - Write-Host -ForegroundColor DarkMagenta " Total " $total " check("($commentlines+$emptylines+$code)")" - Write-Host -ForegroundColor Cyan " Win32 " $win32 - Write-Host -ForegroundColor Cyan " Unix " $unix - Write-Host -ForegroundColor Cyan " Win32sub " $win32substituted - Write-Host -ForegroundColor Cyan " Unixsub " $unixsubstituted - } - - $global:g_code += $code - $global:g_win32 += $win32 - $global:g_unix += $unix - -} - - -function AnalyzeProject($project, [bool]$log) -{ - if ($log) { Write-Host "Project: " $project} - $projectName = $project - $projectroot = Join-Path $sourceRoot 'contrib\win32\openssh' - $project = Join-Path $projectroot $project - $project = $project + '.vcxproj' - - $global:g_code = 0 - $global:g_win32 = 0 - $global:g_unix = 0 - - $c = Get-Content $project - foreach ($ln in $c){ - $l = [String]$ln - $l = $l.Trim() - - if ($l.StartsWith('