Add unit tests for function list feature
go to notepad-plus-plus\PowerEditor\Test\FunctionList directory then launch the following commands: powershell ./unitTestLauncher.ps1
This commit is contained in:
parent
985fa654b9
commit
3aaf083c1d
231
PowerEditor/Test/FunctionList/asm/unitTest
Normal file
231
PowerEditor/Test/FunctionList/asm/unitTest
Normal file
@ -0,0 +1,231 @@
|
||||
page ,132
|
||||
title strcat - concatenate (append) one string to another
|
||||
;***
|
||||
;strcat.asm - contains strcat() and strcpy() routines
|
||||
;
|
||||
; Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
;
|
||||
;Purpose:
|
||||
; STRCAT concatenates (appends) a copy of the source string to the
|
||||
; end of the destination string, returning the destination string.
|
||||
;
|
||||
;*******************************************************************************
|
||||
|
||||
.xlist
|
||||
include cruntime.inc
|
||||
.list
|
||||
|
||||
|
||||
page
|
||||
;***
|
||||
;char *strcat(dst, src) - concatenate (append) one string to another
|
||||
;
|
||||
;Purpose:
|
||||
; Concatenates src onto the end of dest. Assumes enough
|
||||
; space in dest.
|
||||
;
|
||||
; Algorithm:
|
||||
; char * strcat (char * dst, char * src)
|
||||
; {
|
||||
; char * cp = dst;
|
||||
;
|
||||
; while( *cp )
|
||||
; ++cp; /* Find end of dst */
|
||||
; while( *cp++ = *src++ )
|
||||
; ; /* Copy src to end of dst */
|
||||
; return( dst );
|
||||
; }
|
||||
;
|
||||
;Entry:
|
||||
; char *dst - string to which "src" is to be appended
|
||||
; const char *src - string to be appended to the end of "dst"
|
||||
;
|
||||
;Exit:
|
||||
; The address of "dst" in EAX
|
||||
;
|
||||
;Uses:
|
||||
; EAX, ECX
|
||||
;
|
||||
;Exceptions:
|
||||
;
|
||||
;*******************************************************************************
|
||||
|
||||
page
|
||||
;***
|
||||
;char *strcpy(dst, src) - copy one string over another
|
||||
;
|
||||
;Purpose:
|
||||
; Copies the string src into the spot specified by
|
||||
; dest; assumes enough room.
|
||||
;
|
||||
; Algorithm:
|
||||
; char * strcpy (char * dst, char * src)
|
||||
; {
|
||||
; char * cp = dst;
|
||||
;
|
||||
; while( *cp++ = *src++ )
|
||||
; ; /* Copy src over dst */
|
||||
; return( dst );
|
||||
; }
|
||||
;
|
||||
;Entry:
|
||||
; char * dst - string over which "src" is to be copied
|
||||
; const char * src - string to be copied over "dst"
|
||||
;
|
||||
;Exit:
|
||||
; The address of "dst" in EAX
|
||||
;
|
||||
;Uses:
|
||||
; EAX, ECX
|
||||
;
|
||||
;Exceptions:
|
||||
;*******************************************************************************
|
||||
|
||||
|
||||
CODESEG
|
||||
|
||||
% public strcat, strcpy ; make both functions available
|
||||
strcpy proc \
|
||||
dst:ptr byte, \
|
||||
src:ptr byte
|
||||
|
||||
OPTION PROLOGUE:NONE, EPILOGUE:NONE
|
||||
|
||||
push edi ; preserve edi
|
||||
mov edi,[esp+8] ; edi points to dest string
|
||||
jmp short copy_start
|
||||
|
||||
strcpy endp
|
||||
|
||||
align 16
|
||||
|
||||
strcat proc \
|
||||
dst:ptr byte, \
|
||||
src:ptr byte
|
||||
|
||||
OPTION PROLOGUE:NONE, EPILOGUE:NONE
|
||||
|
||||
.FPO ( 0, 2, 0, 0, 0, 0 )
|
||||
|
||||
mov ecx,[esp+4] ; ecx -> dest string
|
||||
push edi ; preserve edi
|
||||
test ecx,3 ; test if string is aligned on 32 bits
|
||||
je short find_end_of_dest_string_loop
|
||||
|
||||
dest_misaligned: ; simple byte loop until string is aligned
|
||||
mov al,byte ptr [ecx]
|
||||
add ecx,1
|
||||
test al,al
|
||||
je short start_byte_3
|
||||
test ecx,3
|
||||
jne short dest_misaligned
|
||||
|
||||
align 4
|
||||
|
||||
find_end_of_dest_string_loop:
|
||||
mov eax,dword ptr [ecx] ; read 4 bytes
|
||||
mov edx,7efefeffh
|
||||
add edx,eax
|
||||
xor eax,-1
|
||||
xor eax,edx
|
||||
add ecx,4
|
||||
test eax,81010100h
|
||||
je short find_end_of_dest_string_loop
|
||||
; found zero byte in the loop
|
||||
mov eax,[ecx - 4]
|
||||
test al,al ; is it byte 0
|
||||
je short start_byte_0
|
||||
test ah,ah ; is it byte 1
|
||||
je short start_byte_1
|
||||
test eax,00ff0000h ; is it byte 2
|
||||
je short start_byte_2
|
||||
test eax,0ff000000h ; is it byte 3
|
||||
je short start_byte_3
|
||||
jmp short find_end_of_dest_string_loop
|
||||
; taken if bits 24-30 are clear and bit
|
||||
; 31 is set
|
||||
start_byte_3:
|
||||
lea edi,[ecx - 1]
|
||||
jmp short copy_start
|
||||
start_byte_2:
|
||||
lea edi,[ecx - 2]
|
||||
jmp short copy_start
|
||||
start_byte_1:
|
||||
lea edi,[ecx - 3]
|
||||
jmp short copy_start
|
||||
start_byte_0:
|
||||
lea edi,[ecx - 4]
|
||||
; jmp short copy_start
|
||||
|
||||
; edi points to the end of dest string.
|
||||
copy_start::
|
||||
mov ecx,[esp+0ch] ; ecx -> sorc string
|
||||
test ecx,3 ; test if string is aligned on 32 bits
|
||||
je short main_loop_entrance
|
||||
|
||||
src_misaligned: ; simple byte loop until string is aligned
|
||||
mov dl,byte ptr [ecx]
|
||||
add ecx,1
|
||||
test dl,dl
|
||||
je short byte_0
|
||||
mov [edi],dl
|
||||
add edi,1
|
||||
test ecx,3
|
||||
jne short src_misaligned
|
||||
jmp short main_loop_entrance
|
||||
|
||||
main_loop: ; edx contains first dword of sorc string
|
||||
mov [edi],edx ; store one more dword
|
||||
add edi,4 ; kick dest pointer
|
||||
main_loop_entrance:
|
||||
mov edx,7efefeffh
|
||||
mov eax,dword ptr [ecx] ; read 4 bytes
|
||||
|
||||
add edx,eax
|
||||
xor eax,-1
|
||||
|
||||
xor eax,edx
|
||||
mov edx,[ecx] ; it's in cache now
|
||||
|
||||
add ecx,4 ; kick dest pointer
|
||||
test eax,81010100h
|
||||
|
||||
je short main_loop
|
||||
; found zero byte in the loop
|
||||
; main_loop_end:
|
||||
test dl,dl ; is it byte 0
|
||||
je short byte_0
|
||||
test dh,dh ; is it byte 1
|
||||
je short byte_1
|
||||
test edx,00ff0000h ; is it byte 2
|
||||
je short byte_2
|
||||
test edx,0ff000000h ; is it byte 3
|
||||
je short byte_3
|
||||
jmp short main_loop ; taken if bits 24-30 are clear and bit
|
||||
; 31 is set
|
||||
byte_3:
|
||||
mov [edi],edx
|
||||
mov eax,[esp+8] ; return in eax pointer to dest string
|
||||
pop edi
|
||||
ret
|
||||
byte_2:
|
||||
mov [edi],dx
|
||||
mov eax,[esp+8] ; return in eax pointer to dest string
|
||||
mov byte ptr [edi+2],0
|
||||
pop edi
|
||||
ret
|
||||
byte_1:
|
||||
mov [edi],dx
|
||||
mov eax,[esp+8] ; return in eax pointer to dest string
|
||||
pop edi
|
||||
ret
|
||||
byte_0:
|
||||
mov [edi],dl
|
||||
mov eax,[esp+8] ; return in eax pointer to dest string
|
||||
pop edi
|
||||
ret
|
||||
|
||||
strcat endp
|
||||
|
||||
end
|
||||
|
@ -0,0 +1 @@
|
||||
{"leaves":["dst","src","dst","src","dest_misaligned","find_end_of_dest_string_loop","start_byte_3","start_byte_2","start_byte_1","start_byte_0","copy_start","src_misaligned","main_loop","main_loop_entrance","byte_3","byte_2","byte_1","byte_0"],"root":"unitTest"}
|
45
PowerEditor/Test/FunctionList/autoit/unitTest
Normal file
45
PowerEditor/Test/FunctionList/autoit/unitTest
Normal file
@ -0,0 +1,45 @@
|
||||
; Script Name : logoff.au3
|
||||
; Author : Craig Richards
|
||||
; Created : 6th February 2012
|
||||
; Last Modified :
|
||||
; Version : 1.0
|
||||
|
||||
; Modifications :
|
||||
|
||||
; Description : This is a simple splash screen to wrap around my logoff.bat incase someone presses my logoff button by mistake (New Microsoft Keyboard)
|
||||
|
||||
#Include <GuiConstants.au3> ; Include the GuiConstants Header File
|
||||
#Include <StaticConstants.au3> ; Include the StaticConstants Header File
|
||||
|
||||
Opt('GuiOnEventMode', 1) ; Set the Option, and enable GuiOnEventMode
|
||||
GUICreate ("Logoff Warning", 750, 750) ; Create a simple window
|
||||
;GUISetIcon("icon.ico") ; Give it an icon
|
||||
GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit') ; Close the Window if the program is quit
|
||||
GUICtrlCreatePic("1280.jpg",0,0,750,680) ; Put a picture in the background of the splash screen
|
||||
GUICtrlCreateLabel("Please Choose an Option Below:", 220, 680, 300, 15, $SS_CENTER) ; A simple label on the screen
|
||||
GUICtrlSetColor(-1,0xFF0000); ; Text of the label will be Red
|
||||
GUICtrlCreateButton("Logoff", 170, 700, 200, 30) ; Create a simple button to run the logoff script
|
||||
GUICTrlSetOnEvent(-1, 'logoff') ; If pressed run the logoff function
|
||||
GUICtrlCreateButton("Cancel", 375, 700, 200, 30) ; Create a simple button to quit the program
|
||||
GUICTrlSetOnEvent(-1, 'cancel') ; If pressed run the cancel function
|
||||
|
||||
Func logoff() ; Start of the logoff function
|
||||
GUISetState(@SW_HIDE) ; Hide the Window
|
||||
Run("u:\logoff.bat") ; Run the logoff batch file
|
||||
Exit ; Quit the program
|
||||
EndFunc ; End of the logoff Function
|
||||
|
||||
Func cancel() ; Start of the cancel function
|
||||
GUISetState(@SW_HIDE) ; Hide the Window
|
||||
Exit ; Quit the program
|
||||
EndFunc ; End of the cancel Function
|
||||
|
||||
GUISetState(@SW_SHOW) ; Show the application Windows
|
||||
|
||||
While 1 ; A simple while loop
|
||||
Sleep(500) ; Sleep to keep the window running
|
||||
WEnd ; End of the While loop
|
||||
|
||||
Func GUIExit() ; Start of the GUIExit function
|
||||
Exit ; Quit the program
|
||||
EndFunc
|
@ -0,0 +1 @@
|
||||
{"leaves":["logoff","cancel","GUIExit"],"root":"unitTest"}
|
261
PowerEditor/Test/FunctionList/bash/unitTest
Normal file
261
PowerEditor/Test/FunctionList/bash/unitTest
Normal file
@ -0,0 +1,261 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
setenv()
|
||||
|
||||
{
|
||||
# Define and export.
|
||||
|
||||
eval ${1}="${2}"
|
||||
export ${1}
|
||||
}
|
||||
|
||||
|
||||
case "${SCRIPTDIR}" in
|
||||
/*) ;;
|
||||
*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
|
||||
esac
|
||||
|
||||
while true
|
||||
do case "${SCRIPTDIR}" in
|
||||
*/.) SCRIPTDIR="${SCRIPTDIR%/.}";;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
# The script directory is supposed to be in $TOPDIR/packages/os400.
|
||||
|
||||
TOPDIR=`dirname "${SCRIPTDIR}"`
|
||||
TOPDIR=`dirname "${TOPDIR}"`
|
||||
export SCRIPTDIR TOPDIR
|
||||
|
||||
# Extract the SONAME from the library makefile.
|
||||
|
||||
SONAME=`sed -e '/^VERSIONINFO=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' -e 'q' \
|
||||
< "${TOPDIR}/lib/Makefile.am"`
|
||||
export SONAME
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Tunable configuration parameters.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
setenv TARGETLIB 'CURL' # Target OS/400 program library.
|
||||
setenv STATBNDDIR 'CURL_A' # Static binding directory.
|
||||
setenv DYNBNDDIR 'CURL' # Dynamic binding directory.
|
||||
setenv SRVPGM "CURL.${SONAME}" # Service program.
|
||||
setenv TGTCCSID '500' # Target CCSID of objects.
|
||||
setenv DEBUG '*ALL' # Debug level.
|
||||
setenv OPTIMIZE '10' # Optimisation level
|
||||
setenv OUTPUT '*NONE' # Compilation output option.
|
||||
setenv TGTRLS 'V6R1M0' # Target OS release.
|
||||
setenv IFSDIR '/curl' # Installation IFS directory.
|
||||
|
||||
# Define ZLIB availability and locations.
|
||||
|
||||
setenv WITH_ZLIB 0 # Define to 1 to enable.
|
||||
setenv ZLIB_INCLUDE '/zlib/include' # ZLIB include IFS directory.
|
||||
setenv ZLIB_LIB 'ZLIB' # ZLIB library.
|
||||
setenv ZLIB_BNDDIR 'ZLIB_A' # ZLIB binding directory.
|
||||
|
||||
# Define LIBSSH2 availability and locations.
|
||||
|
||||
setenv WITH_LIBSSH2 0 # Define to 1 to enable.
|
||||
setenv LIBSSH2_INCLUDE '/libssh2/include' # LIBSSH2 include IFS directory.
|
||||
setenv LIBSSH2_LIB 'LIBSSH2' # LIBSSH2 library.
|
||||
setenv LIBSSH2_BNDDIR 'LIBSSH2_A' # LIBSSH2 binding directory.
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
# Need to get the version definitions.
|
||||
|
||||
LIBCURL_VERSION=`grep '^#define *LIBCURL_VERSION ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/.*"\(.*\)".*/\1/'`
|
||||
LIBCURL_VERSION_MAJOR=`grep '^#define *LIBCURL_VERSION_MAJOR ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_MAJOR *\([^ ]*\).*/\1/'`
|
||||
LIBCURL_VERSION_MINOR=`grep '^#define *LIBCURL_VERSION_MINOR ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_MINOR *\([^ ]*\).*/\1/'`
|
||||
LIBCURL_VERSION_PATCH=`grep '^#define *LIBCURL_VERSION_PATCH ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_PATCH *\([^ ]*\).*/\1/'`
|
||||
LIBCURL_VERSION_NUM=`grep '^#define *LIBCURL_VERSION_NUM ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/^#define *LIBCURL_VERSION_NUM *0x\([^ ]*\).*/\1/'`
|
||||
LIBCURL_TIMESTAMP=`grep '^#define *LIBCURL_TIMESTAMP ' \
|
||||
"${TOPDIR}/include/curl/curlver.h" |
|
||||
sed 's/.*"\(.*\)".*/\1/'`
|
||||
export LIBCURL_VERSION
|
||||
export LIBCURL_VERSION_MAJOR LIBCURL_VERSION_MINOR LIBCURL_VERSION_PATCH
|
||||
export LIBCURL_VERSION_NUM LIBCURL_TIMESTAMP
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# OS/400 specific definitions.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Procedures.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# action_needed dest [src]
|
||||
#
|
||||
# dest is an object to build
|
||||
# if specified, src is an object on which dest depends.
|
||||
#
|
||||
# exit 0 (succeeds) if some action has to be taken, else 1.
|
||||
|
||||
action_needed()
|
||||
|
||||
{
|
||||
[ ! -e "${1}" ] && return 0
|
||||
[ "${2}" ] || return 1
|
||||
[ "${1}" -ot "${2}" ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
# canonicalize_path path
|
||||
#
|
||||
# Return canonicalized path as:
|
||||
# - Absolute
|
||||
# - No . or .. component.
|
||||
|
||||
canonicalize_path()
|
||||
|
||||
{
|
||||
if expr "${1}" : '^/' > /dev/null
|
||||
then P="${1}"
|
||||
else P="`pwd`/${1}"
|
||||
fi
|
||||
|
||||
R=
|
||||
IFSSAVE="${IFS}"
|
||||
IFS="/"
|
||||
|
||||
for C in ${P}
|
||||
do IFS="${IFSSAVE}"
|
||||
case "${C}" in
|
||||
.) ;;
|
||||
..) R=`expr "${R}" : '^\(.*/\)..*'`
|
||||
;;
|
||||
?*) R="${R}${C}/"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
|
||||
IFS="${IFSSAVE}"
|
||||
echo "/`expr "${R}" : '^\(.*\)/'`"
|
||||
}
|
||||
|
||||
|
||||
# make_module module_name source_name [additional_definitions]
|
||||
#
|
||||
# Compile source name into ASCII module if needed.
|
||||
# As side effect, append the module name to variable MODULES.
|
||||
# Set LINK to "YES" if the module has been compiled.
|
||||
|
||||
make_module()
|
||||
|
||||
{
|
||||
MODULES="${MODULES} ${1}"
|
||||
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
|
||||
action_needed "${MODIFSNAME}" "${2}" || return 0;
|
||||
SRCDIR=`dirname \`canonicalize_path "${2}"\``
|
||||
|
||||
# #pragma convert has to be in the source file itself, i.e.
|
||||
# putting it in an include file makes it only active
|
||||
# for that include file.
|
||||
# Thus we build a temporary file with the pragma prepended to
|
||||
# the source file and we compile that themporary file.
|
||||
|
||||
echo "#line 1 \"${2}\"" > __tmpsrcf.c
|
||||
echo "#pragma convert(819)" >> __tmpsrcf.c
|
||||
echo "#line 1" >> __tmpsrcf.c
|
||||
cat "${2}" >> __tmpsrcf.c
|
||||
CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
|
||||
# CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
|
||||
CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)"
|
||||
CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)"
|
||||
CMD="${CMD} INCDIR('/qibm/proddata/qadrt/include'"
|
||||
CMD="${CMD} '${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}'"
|
||||
CMD="${CMD} '${TOPDIR}/packages/OS400'"
|
||||
|
||||
if [ "${WITH_ZLIB}" != "0" ]
|
||||
then CMD="${CMD} '${ZLIB_INCLUDE}'"
|
||||
fi
|
||||
|
||||
if [ "${WITH_LIBSSH2}" != "0" ]
|
||||
then CMD="${CMD} '${LIBSSH2_INCLUDE}'"
|
||||
fi
|
||||
|
||||
CMD="${CMD} ${INCLUDES})"
|
||||
CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
|
||||
CMD="${CMD} OUTPUT(${OUTPUT})"
|
||||
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
|
||||
CMD="${CMD} DBGVIEW(${DEBUG})"
|
||||
|
||||
DEFINES="${3} BUILDING_LIBCURL"
|
||||
|
||||
if [ "${WITH_ZLIB}" != "0" ]
|
||||
then DEFINES="${DEFINES} HAVE_LIBZ HAVE_ZLIB_H"
|
||||
fi
|
||||
|
||||
if [ "${WITH_LIBSSH2}" != "0" ]
|
||||
then DEFINES="${DEFINES} USE_LIBSSH2 HAVE_LIBSSH2_H"
|
||||
fi
|
||||
|
||||
if [ "${DEFINES}" ]
|
||||
then CMD="${CMD} DEFINE(${DEFINES})"
|
||||
fi
|
||||
|
||||
system "${CMD}"
|
||||
rm -f __tmpsrcf.c
|
||||
LINK=YES
|
||||
}
|
||||
|
||||
|
||||
# Determine DB2 object name from IFS name.
|
||||
|
||||
db2_name()
|
||||
|
||||
{
|
||||
if [ "${2}" = 'nomangle' ]
|
||||
then basename "${1}" |
|
||||
tr 'a-z-' 'A-Z_' |
|
||||
sed -e 's/\..*//' \
|
||||
-e 's/^\(.\).*\(.........\)$/\1\2/'
|
||||
else basename "${1}" |
|
||||
tr 'a-z-' 'A-Z_' |
|
||||
sed -e 's/\..*//' \
|
||||
-e 's/^CURL_*/C/' \
|
||||
-e 's/^\(.\).*\(.........\)$/\1\2/'
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Copy IFS file replacing version info.
|
||||
|
||||
versioned_copy()
|
||||
|
||||
{
|
||||
sed -e "s/@LIBCURL_VERSION@/${LIBCURL_VERSION}/g" \
|
||||
-e "s/@LIBCURL_VERSION_MAJOR@/${LIBCURL_VERSION_MAJOR}/g" \
|
||||
-e "s/@LIBCURL_VERSION_MINOR@/${LIBCURL_VERSION_MINOR}/g" \
|
||||
-e "s/@LIBCURL_VERSION_PATCH@/${LIBCURL_VERSION_PATCH}/g" \
|
||||
-e "s/@LIBCURL_VERSION_NUM@/${LIBCURL_VERSION_NUM}/g" \
|
||||
-e "s/@LIBCURL_TIMESTAMP@/${LIBCURL_TIMESTAMP}/g" \
|
||||
< "${1}" > "${2}"
|
||||
}
|
@ -0,0 +1 @@
|
||||
{"leaves":["setenv","action_needed","canonicalize_path","make_module","db2_name","versioned_copy"],"root":"unitTest"}
|
115
PowerEditor/Test/FunctionList/batch/unitTest
Normal file
115
PowerEditor/Test/FunctionList/batch/unitTest
Normal file
@ -0,0 +1,115 @@
|
||||
@echo off
|
||||
|
||||
rem Inno Setup
|
||||
rem Copyright (C) 1997-2012 Jordan Russell
|
||||
rem Portions by Martijn Laan
|
||||
rem For conditions of distribution and use, see LICENSE.TXT.
|
||||
rem
|
||||
rem Batch file to compile all projects with Unicode support
|
||||
|
||||
setlocal
|
||||
|
||||
if exist compilesettings.bat goto compilesettingsfound
|
||||
:compilesettingserror
|
||||
echo compilesettings.bat is missing or incomplete. It needs to be created
|
||||
echo with either of the following lines, adjusted for your system:
|
||||
echo.
|
||||
echo set DELPHI2009ROOT=C:\Program Files\CodeGear\RAD Studio\6.0 [Path to Delphi 2009 (or 2010)]
|
||||
echo or
|
||||
echo set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\8.0 [Path to Delphi XE (or later)]
|
||||
goto failed2
|
||||
|
||||
:compilesettingsfound
|
||||
set DELPHI2009ROOT=
|
||||
set DELPHIXEROOT=
|
||||
call .\compilesettings.bat
|
||||
if "%DELPHI2009ROOT%"=="" if "%DELPHIXEROOT%"=="" goto compilesettingserror
|
||||
if not "%DELPHI2009ROOT%"=="" if not "%DELPHIXEROOT%"=="" goto compilesettingserror
|
||||
|
||||
rem -------------------------------------------------------------------------
|
||||
|
||||
rem Compile each project separately because it seems Delphi
|
||||
rem carries some settings (e.g. $APPTYPE) between projects
|
||||
rem if multiple projects are specified on the command line.
|
||||
rem Note:
|
||||
rem Command line parameter "--peflags:1" below equals the
|
||||
rem {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} directive.
|
||||
rem This causes the Delphi compiler to not just set the flag
|
||||
rem but also it actually strips relocations. Used instead of
|
||||
rem calling StripReloc like compile.bat does.
|
||||
|
||||
cd Projects
|
||||
if errorlevel 1 goto exit
|
||||
|
||||
cd ISPP
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - ISPP.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib" -E..\..\Files ISPP.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release" -E..\..\Files ISPP.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
cd ..
|
||||
|
||||
echo - Compil32.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Compil32.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi;vcl -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Compil32.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - ISCC.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCC.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCC.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - ISCmplr.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCmplr.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS ISCmplr.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - SetupLdr.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components" -E..\Files SetupLdr.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components" -E..\Files SetupLdr.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - Setup.dpr
|
||||
if "%DELPHIXEROOT%"=="" (
|
||||
"%DELPHI2009ROOT%\bin\dcc32.exe" --no-config --peflags:1 --string-checks:off -Q -B -H -W %1 -U"%DELPHI2009ROOT%\lib;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Setup.dpr
|
||||
) else (
|
||||
"%DELPHIXEROOT%\bin\dcc32.exe" --no-config --peflags:1 -NSsystem;system.win;winapi;vcl -Q -B -H -W %1 -U"%DELPHIXEROOT%\lib\win32\release;..\Components;..\Components\UniPs\Source" -E..\Files -DPS_MINIVCL;PS_NOGRAPHCONST;PS_PANSICHAR;PS_NOINTERFACEGUIDBRACKETS Setup.dpr
|
||||
)
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo - Renaming files
|
||||
cd ..\Files
|
||||
if errorlevel 1 goto failed
|
||||
move SetupLdr.exe SetupLdr.e32
|
||||
if errorlevel 1 goto failed
|
||||
move Setup.exe Setup.e32
|
||||
if errorlevel 1 goto failed
|
||||
|
||||
echo Success!
|
||||
cd ..
|
||||
goto exit
|
||||
|
||||
:failed
|
||||
echo *** FAILED ***
|
||||
cd ..
|
||||
:failed2
|
||||
exit /b 1
|
||||
|
||||
:exit
|
@ -0,0 +1 @@
|
||||
{"leaves":["compilesettingserror","compilesettingsfound","failed","failed2"],"root":"unitTest"}
|
0
PowerEditor/Test/FunctionList/c/unitTest
Normal file
0
PowerEditor/Test/FunctionList/c/unitTest
Normal file
1
PowerEditor/Test/FunctionList/c/unitTest.expected.result
Normal file
1
PowerEditor/Test/FunctionList/c/unitTest.expected.result
Normal file
@ -0,0 +1 @@
|
||||
{"root":"unitTest"}
|
6656
PowerEditor/Test/FunctionList/cpp/unitTest
Normal file
6656
PowerEditor/Test/FunctionList/cpp/unitTest
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
{"leaves":["strVal","decStrVal","hexStrVal","getKwClassFromName","getAsciiLenFromBase64Len","base64ToAscii","cutString","EnumFontFamExProc","RGB2int","convertIntToFormatType"],"nodes":[{"leaves":["addLanguageFromXml","switchToLang"],"name":"LocalizationSwitcher"},{"leaves":["getThemeFromXmlFileName"],"name":"ThemeSwitcher"},{"leaves":["getWindowsVersion","reloadStylers","reloadLang","getSpecialFolderLocation","getSettingsFolder","load","destroyInstance","saveConfig_xml","setWorkSpaceFilePath","removeTransparent","SetTransparent","isExistingExternalLangName","getUserDefinedLangNameFromExt","getExternalLangIndexFromName","getULCFromName","getCurLineHilitingColour","setCurLineHilitingColour","setFontList","isInFontList","getLangKeywordsFromXmlTree","getExternalLexerFromXmlTree","addExternalLangToEnd","getUserStylersFromXmlTree","getUserParametersFromXmlTree","getUserDefineLangsFromXmlTree","getShortcutsFromXmlTree","getMacrosFromXmlTree","getUserCmdsFromXmlTree","getPluginCmdsFromXmlTree","getScintKeysFromXmlTree","getBlackListFromXmlTree","initMenuKeys","initScintillaKeys","reloadContextMenuFromXmlTree","getCmdIdFromMenuEntryItemName","getPluginCmdIdFromMenuEntryItemName","getContextMenuFromXmlTree","setWorkingDir","loadSession","getSessionFromXmlTree","feedFileListParameters","feedProjectPanelsParameters","feedFileBrowserParameters","feedFindHistoryParameters","feedShortcut","feedMacros","getActions","feedUserCmds","feedPluginCustomizedCmds","feedScintKeys","feedBlacklist","getShortcuts","feedUserLang","importUDLFromFile","exportUDLToFile","getLangFromExt","setCloudChoice","removeCloudChoice","isCloudPathChanged","writeSettingsFilesOnCloudForThe1stTime","writeUserDefinedLang","insertCmd","insertMacro","insertUserCmd","insertPluginCmd","insertScintKey","writeSession","writeShortcuts","addUserLangToEnd","removeUserLang","feedUserSettings","feedUserKeywordList","feedUserStyles","feedStylerArray","writeRecentFileHistorySettings","writeProjectPanelsSettings","writeFileBrowserSettings","writeHistory","getChildElementByAttribut","getLangIDFromStr","getLocPathFromStr","feedKeyWordsParameters","feedGUIParameters","feedScintillaParam","feedDockingManager","writeScintillaParams","createXmlTreeFromGUIParams","writeFindHistory","insertDockingParamNode","writePrintSetting","writeExcludedLangList","insertGUIConfigBoolNode","langTypeToCommandID","getWinVerBitStr","writeStyles","insertTabInfo","writeStyle2Element","insertUserLang2Tree","stylerStrOp","addUserModifiedIndex","addPluginModifiedIndex","addScintillaModifiedIndex","safeWow64EnableWow64FsRedirection"],"name":"NppParameters"},{"leaves":["addLexerStyler","eraseAll"],"name":"LexerStylerArray"},{"leaves":["addStyler"],"name":"StyleArray"},{"leaves":["now"],"name":"Date"}],"root":"unitTest"}
|
37
PowerEditor/Test/FunctionList/cs/unitTest
Normal file
37
PowerEditor/Test/FunctionList/cs/unitTest
Normal file
@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Owin;
|
||||
using Microsoft.Owin.Security;
|
||||
using Microsoft.Owin.Security.Cookies;
|
||||
using Microsoft.Owin.Security.OpenIdConnect;
|
||||
|
||||
namespace $OwinNamespace$
|
||||
{
|
||||
public partial class $OwinClass$
|
||||
{
|
||||
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
|
||||
private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
|
||||
private static string tenantId = ConfigurationManager.AppSettings["ida:TenantId"];
|
||||
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];
|
||||
private static string authority = aadInstance + tenantId;
|
||||
|
||||
public void ConfigureAuth(IAppBuilder app)
|
||||
{
|
||||
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
|
||||
|
||||
app.UseCookieAuthentication(new CookieAuthenticationOptions());
|
||||
|
||||
app.UseOpenIdConnectAuthentication(
|
||||
new OpenIdConnectAuthenticationOptions
|
||||
{
|
||||
ClientId = clientId,
|
||||
Authority = authority,
|
||||
PostLogoutRedirectUri = postLogoutRedirectUri
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{"leaves":["ConfigureAuth"],"root":"unitTest"}
|
28
PowerEditor/Test/FunctionList/ini/unitTest
Normal file
28
PowerEditor/Test/FunctionList/ini/unitTest
Normal file
@ -0,0 +1,28 @@
|
||||
[Flow]
|
||||
CurrentPhase=OOBEBoot,Start
|
||||
CurrentOperation=132,end
|
||||
OperationResult=0
|
||||
[BootEntries]
|
||||
DownlevelCurrent={B92EB69E-B2DB-11E7-934D-C49DED11D19D}
|
||||
DownlevelDefault={B92EB69E-B2DB-11E7-934D-C49DED11D19D}
|
||||
NewOS={541947F5-B2DC-11E7-BA3E-C49DED11D19E}
|
||||
Rollback={7254A080-1510-4E85-AC0F-E7FB3D444736}
|
||||
RollbackExternal=No
|
||||
[BootManager]
|
||||
Timeout=0
|
||||
[OldOS]
|
||||
ConnectedStandby=Yes
|
||||
[RecoveryPartition]
|
||||
Backup=Yes
|
||||
[Quarantine.WinOld]
|
||||
0=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Windows.old
|
||||
[Quarantine.NewPaths]
|
||||
0=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,PerfLogs
|
||||
1=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Program Files
|
||||
2=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Program Files (x86)
|
||||
3=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,ProgramData
|
||||
4=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Users
|
||||
5=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Windows
|
||||
[Profiles]
|
||||
S-1-5-21-1753568369-220679467-1382890926-1001.Profile.Old=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Users\Don Ho
|
||||
S-1-5-21-1753568369-220679467-1382890926-1001.Profile.New=GlobalPath,{826A734A-88FA-4773-AF09-B90072E096D3},0,407896064,2727568020,Users\Don Ho
|
@ -0,0 +1 @@
|
||||
{"leaves":["Flow","BootEntries","BootManager","OldOS","RecoveryPartition","Quarantine.WinOld","Quarantine.NewPaths","Profiles"],"root":"unitTest"}
|
394
PowerEditor/Test/FunctionList/inno/unitTest
Normal file
394
PowerEditor/Test/FunctionList/inno/unitTest
Normal file
@ -0,0 +1,394 @@
|
||||
;contribute: http://github.com/stfx/innodependencyinstaller
|
||||
;original article: http://codeproject.com/Articles/20868/NET-Framework-1-1-2-0-3-5-Installer-for-InnoSetup
|
||||
|
||||
;comment out product defines to disable installing them
|
||||
;#define use_iis
|
||||
#define use_kb835732
|
||||
|
||||
#define use_msi20
|
||||
#define use_msi31
|
||||
#define use_msi45
|
||||
|
||||
#define use_ie6
|
||||
|
||||
#define use_dotnetfx11
|
||||
#define use_dotnetfx11lp
|
||||
|
||||
#define use_dotnetfx20
|
||||
#define use_dotnetfx20lp
|
||||
|
||||
#define use_dotnetfx35
|
||||
#define use_dotnetfx35lp
|
||||
|
||||
#define use_dotnetfx40
|
||||
#define use_wic
|
||||
|
||||
#define use_dotnetfx45
|
||||
#define use_dotnetfx46
|
||||
#define use_dotnetfx47
|
||||
|
||||
#define use_msiproduct
|
||||
#define use_vc2005
|
||||
#define use_vc2008
|
||||
#define use_vc2010
|
||||
#define use_vc2012
|
||||
#define use_vc2013
|
||||
#define use_vc2015
|
||||
#define use_vc2017
|
||||
|
||||
;requires dxwebsetup.exe in src dir
|
||||
;#define use_directxruntime
|
||||
|
||||
#define use_mdac28
|
||||
#define use_jet4sp8
|
||||
|
||||
#define use_sqlcompact35sp2
|
||||
|
||||
#define use_sql2005express
|
||||
#define use_sql2008express
|
||||
|
||||
#define MyAppSetupName 'MyProgram'
|
||||
#define MyAppVersion '6.0'
|
||||
|
||||
[Setup]
|
||||
AppName={#MyAppSetupName}
|
||||
AppVersion={#MyAppVersion}
|
||||
AppVerName={#MyAppSetupName} {#MyAppVersion}
|
||||
AppCopyright=Copyright © 2007-2017 stfx
|
||||
VersionInfoVersion={#MyAppVersion}
|
||||
VersionInfoCompany=stfx
|
||||
AppPublisher=stfx
|
||||
;AppPublisherURL=http://...
|
||||
;AppSupportURL=http://...
|
||||
;AppUpdatesURL=http://...
|
||||
OutputBaseFilename={#MyAppSetupName}-{#MyAppVersion}
|
||||
DefaultGroupName={#MyAppSetupName}
|
||||
DefaultDirName={pf}\{#MyAppSetupName}
|
||||
UninstallDisplayIcon={app}\MyProgram.exe
|
||||
OutputDir=bin
|
||||
SourceDir=.
|
||||
AllowNoIcons=yes
|
||||
;SetupIconFile=MyProgramIcon
|
||||
SolidCompression=yes
|
||||
|
||||
;MinVersion default value: "0,5.0 (Windows 2000+) if Unicode Inno Setup, else 4.0,4.0 (Windows 95+)"
|
||||
;MinVersion=0,5.0
|
||||
PrivilegesRequired=admin
|
||||
ArchitecturesAllowed=x86 x64 ia64
|
||||
ArchitecturesInstallIn64BitMode=x64 ia64
|
||||
|
||||
; downloading and installing dependencies will only work if the memo/ready page is enabled (default and current behaviour)
|
||||
DisableReadyPage=no
|
||||
DisableReadyMemo=no
|
||||
|
||||
; supported languages
|
||||
#include "scripts\lang\english.iss"
|
||||
#include "scripts\lang\german.iss"
|
||||
#include "scripts\lang\french.iss"
|
||||
#include "scripts\lang\italian.iss"
|
||||
#include "scripts\lang\dutch.iss"
|
||||
|
||||
#ifdef UNICODE
|
||||
#include "scripts\lang\chinese.iss"
|
||||
#include "scripts\lang\polish.iss"
|
||||
#include "scripts\lang\russian.iss"
|
||||
#include "scripts\lang\japanese.iss"
|
||||
#endif
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
|
||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "src\MyProgram-x64.exe"; DestDir: "{app}"; DestName: "MyProgram.exe"; Check: IsX64
|
||||
Source: "src\MyProgram-IA64.exe"; DestDir: "{app}"; DestName: "MyProgram.exe"; Check: IsIA64
|
||||
Source: "src\MyProgram.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe"
|
||||
Name: "{group}\{cm:UninstallProgram,{#MyAppSetupName}}"; Filename: "{uninstallexe}"
|
||||
Name: "{commondesktop}\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe"; Tasks: desktopicon
|
||||
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe"; Tasks: quicklaunchicon
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\MyProgram.exe"; Description: "{cm:LaunchProgram,{#MyAppSetupName}}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
[CustomMessages]
|
||||
DependenciesDir=MyProgramDependencies
|
||||
WindowsServicePack=Windows %1 Service Pack %2
|
||||
|
||||
; shared code for installing the products
|
||||
#include "scripts\products.iss"
|
||||
|
||||
; helper functions
|
||||
#include "scripts\products\stringversion.iss"
|
||||
#include "scripts\products\winversion.iss"
|
||||
#include "scripts\products\fileversion.iss"
|
||||
#include "scripts\products\dotnetfxversion.iss"
|
||||
|
||||
; actual products
|
||||
#ifdef use_iis
|
||||
#include "scripts\products\iis.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_kb835732
|
||||
#include "scripts\products\kb835732.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_msi20
|
||||
#include "scripts\products\msi20.iss"
|
||||
#endif
|
||||
#ifdef use_msi31
|
||||
#include "scripts\products\msi31.iss"
|
||||
#endif
|
||||
#ifdef use_msi45
|
||||
#include "scripts\products\msi45.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_ie6
|
||||
#include "scripts\products\ie6.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx11
|
||||
#include "scripts\products\dotnetfx11.iss"
|
||||
#include "scripts\products\dotnetfx11sp1.iss"
|
||||
#ifdef use_dotnetfx11lp
|
||||
#include "scripts\products\dotnetfx11lp.iss"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx20
|
||||
#include "scripts\products\dotnetfx20.iss"
|
||||
#include "scripts\products\dotnetfx20sp1.iss"
|
||||
#include "scripts\products\dotnetfx20sp2.iss"
|
||||
#ifdef use_dotnetfx20lp
|
||||
#include "scripts\products\dotnetfx20lp.iss"
|
||||
#include "scripts\products\dotnetfx20sp1lp.iss"
|
||||
#include "scripts\products\dotnetfx20sp2lp.iss"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx35
|
||||
;#include "scripts\products\dotnetfx35.iss"
|
||||
#include "scripts\products\dotnetfx35sp1.iss"
|
||||
#ifdef use_dotnetfx35lp
|
||||
;#include "scripts\products\dotnetfx35lp.iss"
|
||||
#include "scripts\products\dotnetfx35sp1lp.iss"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx40
|
||||
#include "scripts\products\dotnetfx40client.iss"
|
||||
#include "scripts\products\dotnetfx40full.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx45
|
||||
#include "scripts\products\dotnetfx45.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx46
|
||||
#include "scripts\products\dotnetfx46.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx47
|
||||
#include "scripts\products\dotnetfx47.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_wic
|
||||
#include "scripts\products\wic.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_msiproduct
|
||||
#include "scripts\products\msiproduct.iss"
|
||||
#endif
|
||||
#ifdef use_vc2005
|
||||
#include "scripts\products\vcredist2005.iss"
|
||||
#endif
|
||||
#ifdef use_vc2008
|
||||
#include "scripts\products\vcredist2008.iss"
|
||||
#endif
|
||||
#ifdef use_vc2010
|
||||
#include "scripts\products\vcredist2010.iss"
|
||||
#endif
|
||||
#ifdef use_vc2012
|
||||
#include "scripts\products\vcredist2012.iss"
|
||||
#endif
|
||||
#ifdef use_vc2013
|
||||
#include "scripts\products\vcredist2013.iss"
|
||||
#endif
|
||||
#ifdef use_vc2015
|
||||
#include "scripts\products\vcredist2015.iss"
|
||||
#endif
|
||||
#ifdef use_vc2017
|
||||
#include "scripts\products\vcredist2017.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_directxruntime
|
||||
#include "scripts\products\directxruntime.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_mdac28
|
||||
#include "scripts\products\mdac28.iss"
|
||||
#endif
|
||||
#ifdef use_jet4sp8
|
||||
#include "scripts\products\jet4sp8.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_sqlcompact35sp2
|
||||
#include "scripts\products\sqlcompact35sp2.iss"
|
||||
#endif
|
||||
|
||||
#ifdef use_sql2005express
|
||||
#include "scripts\products\sql2005express.iss"
|
||||
#endif
|
||||
#ifdef use_sql2008express
|
||||
#include "scripts\products\sql2008express.iss"
|
||||
#endif
|
||||
|
||||
[Code]
|
||||
function InitializeSetup(): boolean;
|
||||
begin
|
||||
// initialize windows version
|
||||
initwinversion();
|
||||
|
||||
#ifdef use_iis
|
||||
if (not iis()) then exit;
|
||||
#endif
|
||||
|
||||
#ifdef use_msi20
|
||||
msi20('2.0'); // min allowed version is 2.0
|
||||
#endif
|
||||
#ifdef use_msi31
|
||||
msi31('3.1'); // min allowed version is 3.1
|
||||
#endif
|
||||
#ifdef use_msi45
|
||||
msi45('4.5'); // min allowed version is 4.5
|
||||
#endif
|
||||
#ifdef use_ie6
|
||||
ie6('5.0.2919'); // min allowed version is 5.0.2919
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx11
|
||||
dotnetfx11();
|
||||
#ifdef use_dotnetfx11lp
|
||||
dotnetfx11lp();
|
||||
#endif
|
||||
dotnetfx11sp1();
|
||||
#endif
|
||||
|
||||
// install .netfx 2.0 sp2 if possible; if not sp1 if possible; if not .netfx 2.0
|
||||
#ifdef use_dotnetfx20
|
||||
// check if .netfx 2.0 can be installed on this OS
|
||||
if not minwinspversion(5, 0, 3) then begin
|
||||
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [FmtMessage(CustomMessage('WindowsServicePack'), ['2000', '3'])]), mbError, MB_OK);
|
||||
exit;
|
||||
end;
|
||||
if not minwinspversion(5, 1, 2) then begin
|
||||
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [FmtMessage(CustomMessage('WindowsServicePack'), ['XP', '2'])]), mbError, MB_OK);
|
||||
exit;
|
||||
end;
|
||||
|
||||
if minwinversion(5, 1) then begin
|
||||
dotnetfx20sp2();
|
||||
#ifdef use_dotnetfx20lp
|
||||
dotnetfx20sp2lp();
|
||||
#endif
|
||||
end else begin
|
||||
if minwinversion(5, 0) and minwinspversion(5, 0, 4) then begin
|
||||
#ifdef use_kb835732
|
||||
kb835732();
|
||||
#endif
|
||||
dotnetfx20sp1();
|
||||
#ifdef use_dotnetfx20lp
|
||||
dotnetfx20sp1lp();
|
||||
#endif
|
||||
end else begin
|
||||
dotnetfx20();
|
||||
#ifdef use_dotnetfx20lp
|
||||
dotnetfx20lp();
|
||||
#endif
|
||||
end;
|
||||
end;
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx35
|
||||
//dotnetfx35();
|
||||
dotnetfx35sp1();
|
||||
#ifdef use_dotnetfx35lp
|
||||
//dotnetfx35lp();
|
||||
dotnetfx35sp1lp();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef use_wic
|
||||
wic();
|
||||
#endif
|
||||
|
||||
// if no .netfx 4.0 is found, install the client (smallest)
|
||||
#ifdef use_dotnetfx40
|
||||
if (not netfxinstalled(NetFx40Client, '') and not netfxinstalled(NetFx40Full, '')) then
|
||||
dotnetfx40client();
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx45
|
||||
dotnetfx45(50); // min allowed version is 4.5.0
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx46
|
||||
dotnetfx46(50); // min allowed version is 4.5.0
|
||||
#endif
|
||||
|
||||
#ifdef use_dotnetfx47
|
||||
dotnetfx47(50); // min allowed version is 4.5.0
|
||||
#endif
|
||||
|
||||
#ifdef use_vc2005
|
||||
vcredist2005('6'); // min allowed version is 6.0
|
||||
#endif
|
||||
#ifdef use_vc2008
|
||||
vcredist2008('9'); // min allowed version is 9.0
|
||||
#endif
|
||||
#ifdef use_vc2010
|
||||
vcredist2010('10'); // min allowed version is 10.0
|
||||
#endif
|
||||
#ifdef use_vc2012
|
||||
vcredist2012('11'); // min allowed version is 11.0
|
||||
#endif
|
||||
#ifdef use_vc2013
|
||||
//SetForceX86(true); // force 32-bit install of next products
|
||||
vcredist2013('12'); // min allowed version is 12.0
|
||||
//SetForceX86(false); // disable forced 32-bit install again
|
||||
#endif
|
||||
#ifdef use_vc2015
|
||||
vcredist2015('14'); // min allowed version is 14.0
|
||||
#endif
|
||||
#ifdef use_vc2017
|
||||
vcredist2017('14'); // min allowed version is 14.0
|
||||
#endif
|
||||
|
||||
#ifdef use_directxruntime
|
||||
// extracts included setup file to temp folder so that we don't need to download it
|
||||
// and always runs directxruntime installer as we don't know how to check if it is required
|
||||
directxruntime();
|
||||
#endif
|
||||
|
||||
#ifdef use_mdac28
|
||||
mdac28('2.7'); // min allowed version is 2.7
|
||||
#endif
|
||||
#ifdef use_jet4sp8
|
||||
jet4sp8('4.0.8015'); // min allowed version is 4.0.8015
|
||||
#endif
|
||||
|
||||
#ifdef use_sqlcompact35sp2
|
||||
sqlcompact35sp2();
|
||||
#endif
|
||||
|
||||
#ifdef use_sql2005express
|
||||
sql2005express();
|
||||
#endif
|
||||
#ifdef use_sql2008express
|
||||
sql2008express();
|
||||
#endif
|
||||
|
||||
Result := true;
|
||||
end;
|
@ -0,0 +1 @@
|
||||
{"leaves":["Setup","Tasks","Files","Icons","Run","CustomMessages"],"root":"unitTest"}
|
78
PowerEditor/Test/FunctionList/java/unitTest
Normal file
78
PowerEditor/Test/FunctionList/java/unitTest
Normal file
@ -0,0 +1,78 @@
|
||||
//this file is part of Notepad++ plugin Pork2Sausage
|
||||
//Copyright (C)2010 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import java.util.zip.*;
|
||||
import java.util.*;
|
||||
import java.text.*;
|
||||
import java.io.*;
|
||||
|
||||
class zipB64 {
|
||||
|
||||
protected static String encodeMessage(String messageStr) {
|
||||
try {
|
||||
ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
|
||||
Deflater deflater = new Deflater(Deflater.DEFLATED);
|
||||
DeflaterOutputStream deflaterStream = new DeflaterOutputStream(bytesOut, deflater);
|
||||
deflaterStream.write(messageStr.getBytes("UTF-8"));
|
||||
deflaterStream.finish();
|
||||
|
||||
Base64 b = new Base64(-1);
|
||||
return new String(b.encode(bytesOut.toByteArray()));
|
||||
} catch (Exception e) {
|
||||
return "crotte";
|
||||
}
|
||||
}
|
||||
|
||||
protected static String decodeMessage(String encodedMessage) {
|
||||
try {
|
||||
Base64 b = new Base64();
|
||||
byte[] decodedBase64 = b.decode(encodedMessage.getBytes());
|
||||
|
||||
// Decompress the bytes
|
||||
|
||||
ByteArrayInputStream bytesIn = new ByteArrayInputStream(decodedBase64);
|
||||
InflaterInputStream inflater = new InflaterInputStream(bytesIn);
|
||||
|
||||
int nbRead = 0;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
while (nbRead >= 0) {
|
||||
byte[] result = new byte[500];
|
||||
nbRead = inflater.read(result,0,result.length);
|
||||
if (nbRead > 0) {
|
||||
sb.append(new String(result, 0, nbRead, "UTF-8"));
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
} catch (Exception e) {
|
||||
return "zut";
|
||||
}
|
||||
}
|
||||
|
||||
public static void main (String args[]) {
|
||||
if (args.length != 2 || (args[0].compareTo("-zip") != 0 && args[0].compareTo("-unzip") != 0))
|
||||
{
|
||||
System.out.println("java zipB64 <-zip|-unzip> \"message\"");
|
||||
return;
|
||||
}
|
||||
boolean doZip = args[0].compareTo("-zip") == 0;
|
||||
if (doZip)
|
||||
System.out.println(encodeMessage(args[1]));
|
||||
else
|
||||
System.out.println(decodeMessage(args[1]));
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{"nodes":[{"leaves":["encodeMessage","decodeMessage"],"name":"zipB64"}],"root":"unitTest"}
|
364
PowerEditor/Test/FunctionList/javascript/unitTest
Normal file
364
PowerEditor/Test/FunctionList/javascript/unitTest
Normal file
@ -0,0 +1,364 @@
|
||||
var crypto = require('crypto'),
|
||||
Friends,
|
||||
User,
|
||||
Post,
|
||||
WallPost,
|
||||
Comment,
|
||||
LoginToken;
|
||||
|
||||
function extractKeywords(text) {
|
||||
if (!text) return [];
|
||||
|
||||
return text.
|
||||
split(/\s+/).
|
||||
filter(function(v) { return v.length > 2; }).
|
||||
filter(function(v, i, a) { return a.lastIndexOf(v) === i; });
|
||||
}
|
||||
|
||||
|
||||
function convertBasicMarkup(input, allowHtml) {
|
||||
var strongRe = /[*]{2}([^*]+)[*]{2}/gm;
|
||||
var emRe = /[*]{1}([^*]+)[*]{1}/gm;
|
||||
var linkRe = /\[([^\]]*)\]\(([^\)]*?)\)/gm;
|
||||
var nlRe = /\r\n/gm;
|
||||
var crRe = /\r/gm;
|
||||
|
||||
// special re's to revert linebreaks from <br />
|
||||
var codeRe = /(<code\b[^>]*>(.*?)<\/code>)/gm;
|
||||
|
||||
// cleanup newlines
|
||||
input = input.replace(nlRe, "\n");
|
||||
input = input.replace(crRe, "\n");
|
||||
|
||||
// strip existing html before inserting breaks/markup
|
||||
if (!allowHtml) {
|
||||
// strip html
|
||||
input = input
|
||||
.replace(/&/g, '&')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''');
|
||||
}
|
||||
|
||||
// convert newlines to breaks
|
||||
input = input.replace(/\n/gm, '<br />');
|
||||
|
||||
// replace basic markup
|
||||
input = input.replace(strongRe, function(whole, m1, m2, m3) {
|
||||
return '<strong>' + m1 + '</strong>';
|
||||
});
|
||||
|
||||
input = input.replace(emRe, function(whole, m1, m2, m3) {
|
||||
return '<em>' + m1 + '</em>';
|
||||
});
|
||||
|
||||
input = input.replace(linkRe, function(whole, m1, m2) {
|
||||
// fix up protocol
|
||||
if (!m2.match(/(http(s?)|ftp(s?)):\/\//gm))
|
||||
// prepend http as default
|
||||
m2 = 'http://' + m2;
|
||||
return '<a href=\"' + m2 + '\" target=\"_blank\">' + m1 + '</a>';
|
||||
});
|
||||
|
||||
// revert code blocks
|
||||
input = input.replace(codeRe, function(whole, m1) {
|
||||
return m1.replace(/<br \/>/gm, '\n');
|
||||
});
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function defineModels(mongoose, fn) {
|
||||
var Schema = mongoose.Schema,
|
||||
ObjectId = Schema.ObjectId;
|
||||
|
||||
|
||||
/**
|
||||
* Comment model
|
||||
*
|
||||
* Used for persisting user comments
|
||||
*/
|
||||
var Comment = new Schema({
|
||||
user_id: ObjectId,
|
||||
//photo:String,
|
||||
date: Date,
|
||||
body: String,
|
||||
post_id:ObjectId,
|
||||
});
|
||||
|
||||
// register virtual members
|
||||
Comment.virtual('readableday')
|
||||
.get(function() {
|
||||
var day = this.date.getDate();
|
||||
return (day < 10 ? '0' + day : day);
|
||||
});
|
||||
|
||||
Comment.virtual('readablemonth')
|
||||
.get(function() {
|
||||
return monthNamesShort[this.date.getMonth()];
|
||||
});
|
||||
|
||||
Comment.virtual('readabletime')
|
||||
.get(function() {
|
||||
var hour = this.date.getHours();
|
||||
var minute = this.date.getMinutes();
|
||||
return (hour < 10 ? '0' + hour : hour) + ':' + (minute < 10 ? '0' + minute : minute);
|
||||
});
|
||||
|
||||
Comment.virtual('bodyParsed')
|
||||
.get(function() {
|
||||
return convertBasicMarkup(this.body, false);
|
||||
});
|
||||
|
||||
// register validators
|
||||
/*Comment.path('author').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'AUTHOR_MISSING');*/
|
||||
|
||||
Comment.path('body').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'BODY_MISSING');
|
||||
|
||||
|
||||
/**
|
||||
* Model: WallPost
|
||||
*/
|
||||
|
||||
|
||||
var WallPost = new Schema({
|
||||
friend_id: String,
|
||||
preview: String,
|
||||
body: String,
|
||||
//rsstext: String,
|
||||
slug: String,
|
||||
created: Date,
|
||||
modified: Date,
|
||||
//tags: [String],
|
||||
user_id:ObjectId,
|
||||
posted_on_user_id : ObjectId,
|
||||
//comments: [Comment]
|
||||
});
|
||||
|
||||
var monthNames = [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli',
|
||||
'August', 'September', 'Oktober', 'November', 'Dezember' ];
|
||||
var monthNamesShort = [ 'Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul',
|
||||
'Aug', 'Sep', 'Okt', 'Nov', 'Dez' ];
|
||||
|
||||
// define virtual getter method for id (readable string)
|
||||
WallPost.virtual('id')
|
||||
.get(function() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
WallPost.virtual('url')
|
||||
.get(function() {
|
||||
// build url for current post
|
||||
var year = this.created.getFullYear();
|
||||
var month = this.created.getMonth() + 1;
|
||||
var day = this.created.getDate();
|
||||
return '/' + year + '/' + (month < 10 ? '0' + month : month) + '/' + (day < 10 ? '0' + day : day) + '/' + this.slug + '/';
|
||||
});
|
||||
|
||||
WallPost.virtual('rfc822created')
|
||||
.get(function() {
|
||||
return this.created.toGMTString();
|
||||
});
|
||||
|
||||
WallPost.virtual('readabledate')
|
||||
.get(function() {
|
||||
var year = this.created.getFullYear();
|
||||
var month = monthNames[this.created.getMonth()];
|
||||
var day = this.created.getDate();
|
||||
return (day < 10 ? '0' + day : day) + '. ' + month + ' ' + year;
|
||||
});
|
||||
|
||||
WallPost.virtual('readableday')
|
||||
.get(function() {
|
||||
var day = this.created.getDate();
|
||||
return (day < 10 ? '0' + day : day);
|
||||
});
|
||||
|
||||
WallPost.virtual('readablemonth')
|
||||
.get(function() {
|
||||
return monthNamesShort[this.created.getMonth()];
|
||||
});
|
||||
|
||||
WallPost.virtual('previewParsed')
|
||||
.get(function() {
|
||||
return convertBasicMarkup(this.preview, true);
|
||||
});
|
||||
|
||||
WallPost.virtual('bodyParsed')
|
||||
.get(function() {
|
||||
return convertBasicMarkup(this.body, true);
|
||||
});
|
||||
|
||||
// register validators
|
||||
/*WallPost.path('title').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'TITLE_MISSING');
|
||||
|
||||
WallPost.path('preview').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'PREVIEW_MISSING');
|
||||
|
||||
WallPost.path('rsstext').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'RSSTEXT_MISSING');*/
|
||||
|
||||
WallPost.path('body').validate(function(val) {
|
||||
return val.length > 0;
|
||||
}, 'BODY_MISSING');
|
||||
|
||||
// generate a proper slug value for Wallpost
|
||||
function slugGenerator (options){
|
||||
options = options || {};
|
||||
var key = options.key || 'body';
|
||||
return function slugGenerator(schema){
|
||||
schema.path(key).set(function(v){
|
||||
this.slug = v.toLowerCase().replace(/[^a-z0-9]/g, '-').replace(/\++/g, '');
|
||||
return v;
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
// attach slugGenerator plugin to Wallpost schema
|
||||
WallPost.plugin(slugGenerator());
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Model: User
|
||||
*/
|
||||
function validatePresenceOf(value) {
|
||||
return value && value.length;
|
||||
}
|
||||
var User = new Schema({
|
||||
'first_name': { type: String, validate: /[a-z]/ },
|
||||
'last_name':{ type: String, validate: /[a-z]/ },
|
||||
'age':Number,
|
||||
'sex':{ type: String},
|
||||
'photo':String,
|
||||
'location':{ type: String, validate: /[a-z]/ },
|
||||
'latitude' : String,
|
||||
'longitude' : String,
|
||||
'keywords': [String],
|
||||
'username':String,
|
||||
'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true }, required:true },
|
||||
'hashed_password': { type: String},
|
||||
'salt': String,
|
||||
});
|
||||
|
||||
User.virtual('id')
|
||||
.get(function() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
User.virtual('password')
|
||||
.set(function(password) {
|
||||
this._password = password;
|
||||
this.salt = this.makeSalt();
|
||||
this.hashed_password = this.encryptPassword(password);
|
||||
})
|
||||
.get(function() { return this._password; });
|
||||
|
||||
User.method('authenticate', function(plainText) {
|
||||
return this.encryptPassword(plainText) === this.hashed_password;
|
||||
});
|
||||
|
||||
User.method('makeSalt', function() {
|
||||
return Math.round((new Date().valueOf() * Math.random())) + '';
|
||||
});
|
||||
|
||||
User.method('encryptPassword', function(password) {
|
||||
return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
|
||||
});
|
||||
|
||||
User.pre('save', function(next) {
|
||||
this.keywords = extractKeywords(this.first_name);
|
||||
next();
|
||||
if (!validatePresenceOf(this.password)) {
|
||||
next(new Error('Invalid password'));
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
var Friends = new Schema({
|
||||
requestor : String
|
||||
, acceptor : String
|
||||
, date_requested : Date
|
||||
, status:Number
|
||||
});
|
||||
|
||||
Friends.virtual('id')
|
||||
.get(function() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
var Post = new Schema({
|
||||
filename : { type: String, index: true }
|
||||
, file : String
|
||||
, created_at : Date
|
||||
, user_id: ObjectId
|
||||
});
|
||||
|
||||
Post.virtual('id')
|
||||
.get(function() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
/**
|
||||
* Model: LoginToken
|
||||
*
|
||||
* Used for session persistence.
|
||||
*/
|
||||
var LoginToken = new Schema({
|
||||
email: { type: String, index: true },
|
||||
series: { type: String, index: true },
|
||||
token: { type: String, index: true }
|
||||
});
|
||||
|
||||
LoginToken.method('randomToken', function() {
|
||||
return Math.round((new Date().valueOf() * Math.random())) + '';
|
||||
});
|
||||
|
||||
LoginToken.pre('save', function(next) {
|
||||
// Automatically create the tokens
|
||||
this.token = this.randomToken();
|
||||
|
||||
if (this.isNew)
|
||||
this.series = this.randomToken();
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
LoginToken.virtual('id')
|
||||
.get(function() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
LoginToken.virtual('cookieValue')
|
||||
.get(function() {
|
||||
return JSON.stringify({ email: this.email, token: this.token, series: this.series });
|
||||
});
|
||||
|
||||
|
||||
|
||||
mongoose.model('User', User);
|
||||
mongoose.model('Post', Post);
|
||||
mongoose.model('Friends', Friends);
|
||||
mongoose.model('LoginToken', LoginToken);
|
||||
mongoose.model('WallPost', WallPost);
|
||||
mongoose.model('Comment', Comment);
|
||||
fn();
|
||||
}
|
||||
|
||||
exports.defineModels = defineModels;
|
||||
|
@ -0,0 +1 @@
|
||||
{"leaves":["extractKeywords","convertBasicMarkup","function","function","function","function","defineModels","slugGenerator","slugGenerator","validatePresenceOf","function","function","function","function","function","function"],"root":"unitTest"}
|
2014
PowerEditor/Test/FunctionList/nsis/unitTest
Normal file
2014
PowerEditor/Test/FunctionList/nsis/unitTest
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
{"leaves":["GetWindowsVersion","GetWindowsVersion OUTPUT_VALUE","LaunchNpp","ExtraOptions","OnChange_NoUserDataCheckBox","OnChange_PluginLoadFromUserDataCheckBox","OnChange_ShortcutCheckBox","OnChange_OldIconCheckBox",".onInit",".onInstSuccess","-\"Notepad++\" mainSection","\"Context Menu Entry\" explorerContextMenu","\"Auto-Updater\" AutoUpdater","-FinishSection","un.htmlViewer","un.AutoUpdater","un.explorerContextMenu","un.UnregisterFileExt","un.UserManual","Uninstall","un.onInit"],"nodes":[{"leaves":["\"C\" C","\"C++\" C++","\"Java\" Java","\"C","\"HTML\" HTML","\"RC\" RC","\"SQL\" SQL","\"PHP\" PHP","\"CSS\" CSS","\"VB\" VB","\"Perl\" Perl","\"JavaScript\" JavaScript","\"Python\" Python","\"ActionScript\" ActionScript","\"LISP\" LISP","\"VHDL\" VHDL","\"TeX\" TeX","\"DocBook\" DocBook","\"NSIS\" NSIS","\"CMAKE\" CMAKE"],"name":"Auto-completion Files"},{"leaves":["\"NppExport\" NppExport","\"Plugin Manager\" PluginManager","\"Mime Tools\" MimeTools","\"Converter\" Converter"],"name":"Plugins"},{"leaves":["\"Black Board\" BlackBoard","\"Choco\" Choco","\"Hello Kitty\" HelloKitty","\"Mono Industrial\" MonoIndustrial","\"Monokai\" Monokai","\"Obsidian\" Obsidian","\"Plastic Code Wrap\" PlasticCodeWrap","\"Ruby Blue\" RubyBlue","\"Twilight\" Twilight","\"Vibrant Ink\" VibrantInk","\"Deep Black\" DeepBlack","\"vim Dark Blue\" vimDarkBlue","\"Bespin\" Bespin","\"Zenburn\" Zenburn","\"Solarized\" Solarized","\"Solarized Light\" Solarized-light","\"Hot Fudge Sundae\" HotFudgeSundae","\"khaki\" khaki","\"Mossy Lawn\" MossyLawn","\"Navajo\" Navajo"],"name":"Themes"},{"leaves":["un.PHP","un.CSS","un.HTML","un.SQL","un.RC","un.VB","un.Perl","un.C","un.C++","un.Java","un.C","un.JavaScript","un.Python","un.ActionScript","un.LISP","un.VHDL","un.TeX","un.DocBook","un.NSIS","un.AWK","un.CMAKE"],"name":"un.autoCompletionComponent"},{"leaves":["un.NPPTextFX","un.NppAutoIndent","un.MIMETools","un.FTP_synchronize","un.NppFTP","un.NppExport","un.SelectNLaunch","un.DocMonitor","un.LightExplorer","un.HexEditor","un.ConvertExt","un.SpellChecker","un.DSpellCheck","un.NppExec","un.QuickText","un.ComparePlugin","un.Converter","un.MimeTools","un.PluginManager","un.ChangeMarkers"],"name":"un.Plugins"},{"leaves":["un.BlackBoard","un.Choco","un.HelloKitty","un.MonoIndustrial","un.Monokai","un.Obsidian","un.PlasticCodeWrap","un.RubyBlue","un.Twilight","un.VibrantInk","un.DeepBlack","un.vimDarkBlue","un.Bespin","un.Zenburn","un.Solarized","un.Solarized-light","un.HotFudgeSundae","un.khaki","un.MossyLawn","un.Navajo"],"name":"un.Themes"},{"leaves":["un.afrikaans","un.albanian","un.arabic","un.aragonese","un.aranese","un.azerbaijani","un.basque","un.belarusian","un.bengali","un.bosnian","un.brazilian_portuguese","un.bulgarian","un.catalan","un.chineseTraditional","un.chineseSimplified","un.croatian","un.czech","un.danish","un.dutch","un.english_customizable","un.esperanto","un.estonian","un.extremaduran","un.farsi","un.finnish","un.friulian","un.french","un.galician","un.georgian","un.german","un.greek","un.gujarati","un.hebrew","un.hungarian","un.hungarianA","un.indonesian","un.italian","un.japanese","un.kazakh","un.korean","un.kyrgyz","un.latvian","un.ligurian","un.lithuanian","un.luxembourgish","un.macedonian","un.malay","un.marathi","un.mongolian","un.norwegian","un.nynorsk","un.occitan","un.polish","un.kannada","un.portuguese","un.punjabi","un.romanian","un.russian","un.samogitian","un.sardinian","un.serbian","un.serbianCyrillic","un.sinhala","un.slovak","un.slovakA","un.slovenian","un.spanish","un.spanish_ar","un.swedish","un.tagalog","un.tajik","un.tamil","un.tatar","un.telugu","un.thai","un.turkish","un.ukrainian","un.urdu","un.uyghur","un.uzbek","un.uzbekCyrillic","un.vietnamese","un.welsh"],"name":"un.localization"}],"root":"unitTest"}
|
89
PowerEditor/Test/FunctionList/perl/unitTest
Normal file
89
PowerEditor/Test/FunctionList/perl/unitTest
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/*
|
||||
************************************************************************
|
||||
Copyright [2014] [PagSeguro Internet Ltda.]
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
************************************************************************
|
||||
*/
|
||||
require_once "../PagSeguroLibrary/PagSeguroLibrary.php";
|
||||
class NotificationListener
|
||||
{
|
||||
public static function main()
|
||||
{
|
||||
$code = (isset($_POST['notificationCode']) && trim($_POST['notificationCode']) !== "" ?
|
||||
trim($_POST['notificationCode']) : null);
|
||||
$type = (isset($_POST['notificationType']) && trim($_POST['notificationType']) !== "" ?
|
||||
trim($_POST['notificationType']) : null);
|
||||
if ($code && $type) {
|
||||
$notificationType = new PagSeguroNotificationType($type);
|
||||
$strType = $notificationType->getTypeFromValue();
|
||||
switch ($strType) {
|
||||
case 'TRANSACTION':
|
||||
self::transactionNotification($code);
|
||||
break;
|
||||
case 'APPLICATION_AUTHORIZATION':
|
||||
self::authorizationNotification($code);
|
||||
break;
|
||||
case 'PRE_APPROVAL':
|
||||
self::preApprovalNotification($code);
|
||||
break;
|
||||
default:
|
||||
LogPagSeguro::error("Unknown notification type [" . $notificationType->getValue() . "]");
|
||||
}
|
||||
self::printLog($strType);
|
||||
} else {
|
||||
LogPagSeguro::error("Invalid notification parameters.");
|
||||
self::printLog();
|
||||
}
|
||||
}
|
||||
private static function transactionNotification($notificationCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getAccountCredentials();
|
||||
try {
|
||||
$transaction = PagSeguroNotificationService::checkTransaction($credentials, $notificationCode);
|
||||
// Do something with $transaction
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function authorizationNotification($notificationCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getApplicationCredentials();
|
||||
try {
|
||||
$authorization = PagSeguroNotificationService::checkAuthorization($credentials, $notificationCode);
|
||||
// Do something with $authorization
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function preApprovalNotification($preApprovalCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getAccountCredentials();
|
||||
try {
|
||||
$preApproval = PagSeguroNotificationService::checkPreApproval($credentials, $preApprovalCode);
|
||||
// Do something with $preApproval
|
||||
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function printLog($strType = null)
|
||||
{
|
||||
$count = 4;
|
||||
echo "<h2>Receive notifications</h2>";
|
||||
if ($strType) {
|
||||
echo "<h4>notifcationType: $strType</h4>";
|
||||
}
|
||||
echo "<p>Last <strong>$count</strong> items in <strong>log file:</strong></p><hr>";
|
||||
echo LogPagSeguro::getHtml($count);
|
||||
}
|
||||
}
|
||||
NotificationListener::main();
|
@ -0,0 +1 @@
|
||||
{"root":"unitTest"}
|
89
PowerEditor/Test/FunctionList/php/unitTest
Normal file
89
PowerEditor/Test/FunctionList/php/unitTest
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/*
|
||||
************************************************************************
|
||||
Copyright [2014] [PagSeguro Internet Ltda.]
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
************************************************************************
|
||||
*/
|
||||
require_once "../PagSeguroLibrary/PagSeguroLibrary.php";
|
||||
class NotificationListener
|
||||
{
|
||||
public static function main()
|
||||
{
|
||||
$code = (isset($_POST['notificationCode']) && trim($_POST['notificationCode']) !== "" ?
|
||||
trim($_POST['notificationCode']) : null);
|
||||
$type = (isset($_POST['notificationType']) && trim($_POST['notificationType']) !== "" ?
|
||||
trim($_POST['notificationType']) : null);
|
||||
if ($code && $type) {
|
||||
$notificationType = new PagSeguroNotificationType($type);
|
||||
$strType = $notificationType->getTypeFromValue();
|
||||
switch ($strType) {
|
||||
case 'TRANSACTION':
|
||||
self::transactionNotification($code);
|
||||
break;
|
||||
case 'APPLICATION_AUTHORIZATION':
|
||||
self::authorizationNotification($code);
|
||||
break;
|
||||
case 'PRE_APPROVAL':
|
||||
self::preApprovalNotification($code);
|
||||
break;
|
||||
default:
|
||||
LogPagSeguro::error("Unknown notification type [" . $notificationType->getValue() . "]");
|
||||
}
|
||||
self::printLog($strType);
|
||||
} else {
|
||||
LogPagSeguro::error("Invalid notification parameters.");
|
||||
self::printLog();
|
||||
}
|
||||
}
|
||||
private static function transactionNotification($notificationCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getAccountCredentials();
|
||||
try {
|
||||
$transaction = PagSeguroNotificationService::checkTransaction($credentials, $notificationCode);
|
||||
// Do something with $transaction
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function authorizationNotification($notificationCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getApplicationCredentials();
|
||||
try {
|
||||
$authorization = PagSeguroNotificationService::checkAuthorization($credentials, $notificationCode);
|
||||
// Do something with $authorization
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function preApprovalNotification($preApprovalCode)
|
||||
{
|
||||
$credentials = PagSeguroConfig::getAccountCredentials();
|
||||
try {
|
||||
$preApproval = PagSeguroNotificationService::checkPreApproval($credentials, $preApprovalCode);
|
||||
// Do something with $preApproval
|
||||
|
||||
} catch (PagSeguroServiceException $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
}
|
||||
private static function printLog($strType = null)
|
||||
{
|
||||
$count = 4;
|
||||
echo "<h2>Receive notifications</h2>";
|
||||
if ($strType) {
|
||||
echo "<h4>notifcationType: $strType</h4>";
|
||||
}
|
||||
echo "<p>Last <strong>$count</strong> items in <strong>log file:</strong></p><hr>";
|
||||
echo LogPagSeguro::getHtml($count);
|
||||
}
|
||||
}
|
||||
NotificationListener::main();
|
@ -0,0 +1 @@
|
||||
{"nodes":[{"leaves":["main","transactionNotification","authorizationNotification","preApprovalNotification","printLog"],"name":"NotificationListener"}],"root":"unitTest"}
|
321
PowerEditor/Test/FunctionList/powershell/unitTest
Normal file
321
PowerEditor/Test/FunctionList/powershell/unitTest
Normal file
@ -0,0 +1,321 @@
|
||||
#
|
||||
# PowerConsole profile
|
||||
#
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Clear the host content.
|
||||
|
||||
.DESCRIPTION
|
||||
This function replaces the standard Clear-Host and is aliased by "cls".
|
||||
#>
|
||||
function Clear-Host
|
||||
{
|
||||
$host.PrivateData.ClearHost()
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Simple path completion function for PowerConsole.
|
||||
#>
|
||||
function _TabExpansionPath($line)
|
||||
{
|
||||
function UnquoteString($s) {
|
||||
if ($s.StartsWith('"') -or $s.StartsWith("'")) {
|
||||
$s = $s.Substring(1)
|
||||
}
|
||||
if ($s.EndsWith('"') -or $s.EndsWith("'")) {
|
||||
$s = $s.Substring(0, $s.Length - 1)
|
||||
}
|
||||
return $s
|
||||
}
|
||||
|
||||
$e = $null
|
||||
$tokens = @([System.Management.Automation.PSParser]::Tokenize($line, [ref]$e))
|
||||
$lastToken = $tokens | Select-Object -Last 1
|
||||
|
||||
$replaceStart = -1
|
||||
$lastWord = $null
|
||||
|
||||
if ($lastToken -and ($lastToken.EndColumn -gt $line.Length)) {
|
||||
#Last token is terminated
|
||||
|
||||
if ($tokens.Length -gt 1) {
|
||||
$prevToken = $tokens[$tokens.Length - 2]
|
||||
if ($prevToken.EndColumn -eq $lastToken.StartColumn) {
|
||||
$replaceStart = $prevToken.StartColumn - 1
|
||||
$lastWord = (UnquoteString $prevToken.Content) + (UnquoteString $lastToken.Content)
|
||||
}
|
||||
}
|
||||
|
||||
if ($replaceStart -lt 0) {
|
||||
$replaceStart = $lastToken.StartColumn - 1
|
||||
$lastWord = UnquoteString $lastToken.Content
|
||||
}
|
||||
} else {
|
||||
#There is unrecognized/unterminated words
|
||||
|
||||
if(!$lastToken) {
|
||||
$lastWord = $line
|
||||
} else {
|
||||
$lastWord = $line.Substring($lastToken.EndColumn - 1).TrimStart()
|
||||
}
|
||||
$replaceStart = $line.Length - $lastWord.Length
|
||||
$lastWord = UnquoteString $lastWord
|
||||
}
|
||||
|
||||
# If previously unquoted, put back quote in results
|
||||
$unquoted = ($replaceStart -lt ($line.Length - $lastWord.Length))
|
||||
$relative = !(($lastWord.IndexOf(':') -ge 0) -or $lastWord.StartsWith('/') -or $lastWord.StartsWith('\'))
|
||||
|
||||
$result = "" | select ReplaceStart, Paths
|
||||
$result.ReplaceStart = $replaceStart
|
||||
$result.Paths = @(Resolve-Path ${lastWord}* -ErrorAction SilentlyContinue -Relative:$relative | %{
|
||||
|
||||
# Resolve-Path may return PathInfo or String (e.g. when passing different -Relative)
|
||||
$path = $_.ToString()
|
||||
|
||||
if ($unquoted -or ($path.IndexOf(' ') -ge 0)) {
|
||||
"'$path'"
|
||||
} else {
|
||||
$path
|
||||
}
|
||||
})
|
||||
|
||||
$result
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Get an explict interface on an object so that you can invoke the interface members.
|
||||
|
||||
.DESCRIPTION
|
||||
PowerShell object adapter does not provide explict interface members. For COM objects
|
||||
it only makes IDispatch members available.
|
||||
|
||||
This function helps access interface members on an object through reflection. A new
|
||||
object is returned with the interface members as ScriptProperties and ScriptMethods.
|
||||
|
||||
.EXAMPLE
|
||||
$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])
|
||||
#>
|
||||
function Get-Interface
|
||||
{
|
||||
Param(
|
||||
$Object,
|
||||
[type]$InterfaceType
|
||||
)
|
||||
|
||||
[NuGetConsole.Host.PowerShell.Implementation.PSTypeWrapper]::GetInterface($Object, $InterfaceType)
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Get a VS service.
|
||||
|
||||
.EXAMPLE
|
||||
Get-VSService ([Microsoft.VisualStudio.Shell.Interop.SVsShell]) ([Microsoft.VisualStudio.Shell.Interop.IVsShell])
|
||||
#>
|
||||
function Get-VSService
|
||||
{
|
||||
Param(
|
||||
[type]$ServiceType,
|
||||
[type]$InterfaceType
|
||||
)
|
||||
|
||||
$service = [Microsoft.VisualStudio.Shell.Package]::GetGlobalService($ServiceType)
|
||||
if ($service -and $InterfaceType) {
|
||||
$service = Get-Interface $service $InterfaceType
|
||||
}
|
||||
|
||||
$service
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Get VS IComponentModel service to access VS MEF hosting.
|
||||
#>
|
||||
function Get-VSComponentModel
|
||||
{
|
||||
Get-VSService ([Microsoft.VisualStudio.ComponentModelHost.SComponentModel]) ([Microsoft.VisualStudio.ComponentModelHost.IComponentModel])
|
||||
}
|
||||
|
||||
# Set initial directory
|
||||
Set-Location "$env:USERPROFILE"
|
||||
|
||||
# For PowerShell v2, we need to create a reference to the default TabExpansion function
|
||||
# so we can delegate back to it in our custom function. This isn't needed in PowerShell v3,
|
||||
# as omitting output in a custom TabExpansion function signals to TabExpansion2 that it
|
||||
# should use its own completion list.
|
||||
if ((Test-Path Function:\DefaultTabExpansion) -eq $false -and (Test-Path Function:\TabExpansion)) {
|
||||
Rename-Item Function:\TabExpansion DefaultTabExpansion
|
||||
}
|
||||
|
||||
function TabExpansion([string]$line, [string]$lastWord) {
|
||||
$nugetSuggestions = & (Get-Module NuGet) NuGetTabExpansion $line $lastWord
|
||||
|
||||
if ($nugetSuggestions.NoResult) {
|
||||
# We only want to delegate back to the default tab completion in PowerShell v2.
|
||||
# PowerShell v3's TabExpansion2 will use its own command completion list if the
|
||||
# custom TabExpansion doesn't return anything.
|
||||
if (Test-Path Function:\DefaultTabExpansion) {
|
||||
$line = $line.ToUpperInvariant()
|
||||
$lastWord = $lastWord.ToUpperInvariant()
|
||||
return DefaultTabExpansion $line $lastWord
|
||||
}
|
||||
}
|
||||
else {
|
||||
return $nugetSuggestions
|
||||
}
|
||||
}
|
||||
|
||||
# default prompt
|
||||
function prompt {
|
||||
"PM>"
|
||||
}
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIavQYJKoZIhvcNAQcCoIIarjCCGqoCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
||||
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
||||
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUzrybryeGjFQ1ndAZPspjCdvf
|
||||
# ahSgghWCMIIEwzCCA6ugAwIBAgITMwAAAG9lLVhtBxFGKAAAAAAAbzANBgkqhkiG
|
||||
# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
|
||||
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
|
||||
# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTUwMzIwMTczMjAy
|
||||
# WhcNMTYwNjIwMTczMjAyWjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO
|
||||
# OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT
|
||||
# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+ZtzcEqza6o
|
||||
# XtiVTy0DQ0dzO7hC0tBXmt32UzZ31YhFJGrIq9Bm6YvFqg+e8oNGtirJ2DbG9KD/
|
||||
# EW9m8F4UGbKxZ/jxXpSGqo4lr/g1E/2CL8c4XlPAdhzF03k7sGPrT5OaBfCiF3Hc
|
||||
# xgyW0wAFLkxtWLN/tCwkcHuWaSxsingJbUmZjjo+ZpWPT394G2B7V8lR9EttUcM0
|
||||
# t/g6CtYR38M6pR6gONzrrar4Q8SDmo2XNAM0BBrvrVQ2pNQaLP3DbvB45ynxuUTA
|
||||
# cbQvxBCLDPc2Ynn9B1d96gV8TJ9OMD8nUDhmBrtdqD7FkNvfPHZWrZUgNFNy7WlZ
|
||||
# bvBUH0DVOQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFPKmSSl4fFdwUmLP7ay3eyA0
|
||||
# R9z9MB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw
|
||||
# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
|
||||
# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG
|
||||
# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv
|
||||
# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI
|
||||
# hvcNAQEFBQADggEBAI2zTLbY7A2Hhhle5ADnl7jVz0wKPL33VdP08KCvVXKcI5e5
|
||||
# girHFgrFJxNZ0NowK4hCulID5l7JJWgnJ41kp235t5pqqz6sQtAeJCbMVK/2kIFr
|
||||
# Hq1Dnxt7EFdqMjYxokRoAZhaKxK0iTH2TAyuFTy3JCRdu/98U0yExA3NRnd+Kcqf
|
||||
# skZigrQ0x/USaVytec0x7ulHjvj8U/PkApBRa876neOFv1mAWRDVZ6NMpvLkoLTY
|
||||
# wTqhakimiM5w9qmc3vNTkz1wcQD/vut8/P8IYw9LUVmrFRmQdB7/u72qNZs9nvMQ
|
||||
# FNV69h/W4nXzknQNrRbZEs+hm63SEuoAOyMVDM8wggTsMIID1KADAgECAhMzAAAB
|
||||
# Cix5rtd5e6asAAEAAAEKMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw
|
||||
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
|
||||
# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp
|
||||
# Z25pbmcgUENBMB4XDTE1MDYwNDE3NDI0NVoXDTE2MDkwNDE3NDI0NVowgYMxCzAJ
|
||||
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
|
||||
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx
|
||||
# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB
|
||||
# BQADggEPADCCAQoCggEBAJL8bza74QO5KNZG0aJhuqVG+2MWPi75R9LH7O3HmbEm
|
||||
# UXW92swPBhQRpGwZnsBfTVSJ5E1Q2I3NoWGldxOaHKftDXT3p1Z56Cj3U9KxemPg
|
||||
# 9ZSXt+zZR/hsPfMliLO8CsUEp458hUh2HGFGqhnEemKLwcI1qvtYb8VjC5NJMIEb
|
||||
# e99/fE+0R21feByvtveWE1LvudFNOeVz3khOPBSqlw05zItR4VzRO/COZ+owYKlN
|
||||
# Wp1DvdsjusAP10sQnZxN8FGihKrknKc91qPvChhIqPqxTqWYDku/8BTzAMiwSNZb
|
||||
# /jjXiREtBbpDAk8iAJYlrX01boRoqyAYOCj+HKIQsaUCAwEAAaOCAWAwggFcMBMG
|
||||
# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBSJ/gox6ibN5m3HkZG5lIyiGGE3
|
||||
# NDBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr
|
||||
# MDQwNzkzNTAtMTZmYS00YzYwLWI2YmYtOWQyYjFjZDA1OTg0MB8GA1UdIwQYMBaA
|
||||
# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j
|
||||
# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w
|
||||
# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6
|
||||
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx
|
||||
# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQCmqFOR3zsB/mFdBlrrZvAM2PfZ
|
||||
# hNMAUQ4Q0aTRFyjnjDM4K9hDxgOLdeszkvSp4mf9AtulHU5DRV0bSePgTxbwfo/w
|
||||
# iBHKgq2k+6apX/WXYMh7xL98m2ntH4LB8c2OeEti9dcNHNdTEtaWUu81vRmOoECT
|
||||
# oQqlLRacwkZ0COvb9NilSTZUEhFVA7N7FvtH/vto/MBFXOI/Enkzou+Cxd5AGQfu
|
||||
# FcUKm1kFQanQl56BngNb/ErjGi4FrFBHL4z6edgeIPgF+ylrGBT6cgS3C6eaZOwR
|
||||
# XU9FSY0pGi370LYJU180lOAWxLnqczXoV+/h6xbDGMcGszvPYYTitkSJlKOGMIIF
|
||||
# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm
|
||||
# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD
|
||||
# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
|
||||
# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
|
||||
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
|
||||
# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
|
||||
# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC
|
||||
# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw
|
||||
# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy
|
||||
# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ
|
||||
# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP
|
||||
# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf
|
||||
# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS
|
||||
# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
|
||||
# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3
|
||||
# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk
|
||||
# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp
|
||||
# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE
|
||||
# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
|
||||
# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+
|
||||
# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6
|
||||
# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW
|
||||
# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb
|
||||
# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu
|
||||
# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
|
||||
# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB
|
||||
# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord
|
||||
# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t
|
||||
# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh
|
||||
# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I
|
||||
# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0
|
||||
# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX
|
||||
# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290
|
||||
# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx
|
||||
# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
|
||||
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
|
||||
# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB
|
||||
# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn
|
||||
# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0
|
||||
# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n
|
||||
# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR
|
||||
# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54
|
||||
# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G
|
||||
# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG
|
||||
# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg
|
||||
# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG
|
||||
# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
|
||||
# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ
|
||||
# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1
|
||||
# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB
|
||||
# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
|
||||
# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB
|
||||
# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i
|
||||
# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r
|
||||
# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct
|
||||
# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F
|
||||
# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo
|
||||
# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
|
||||
# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp
|
||||
# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J
|
||||
# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0
|
||||
# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng
|
||||
# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBKUwggSh
|
||||
# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
|
||||
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh
|
||||
# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAABCix5rtd5e6as
|
||||
# AAEAAAEKMAkGBSsOAwIaBQCggb4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
|
||||
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFMuf
|
||||
# sd32QCBuLAAV0rkqW6bKVWYSMF4GCisGAQQBgjcCAQwxUDBOoDSAMgBNAGkAYwBy
|
||||
# AG8AcwBvAGYAdAAgAFAAYQBjAGsAYQBnAGUAIABNAGEAbgBhAGcAZQByoRaAFGh0
|
||||
# dHA6Ly93d3cuYXNwLm5ldC8gMA0GCSqGSIb3DQEBAQUABIIBAHRB+qXSplgnW2vY
|
||||
# I0FrM1HeCaNpmZW0Y8ogeq+udpcfvuY5ma2j7aCZEd7ZX8CrEsSWnfFMSBMg6ThO
|
||||
# oUxRbEDV46WIbWC3sm9IKFQyHZ+JOyTPlYPDHyCl8xldPE2Vm50ZWMFifP9lo3Cd
|
||||
# 05gM21MP5jsNnWlU0SpHMgEup+2y7kf/7vyqVQD/hJzAt0M8R3eeFbANCbnGtShK
|
||||
# xgXt5oZaL37x1QqBcrYGlUKZ/T3fVhMSq0Azsjz4MKgpsDyNt6dKHwuBHqrpeG5Q
|
||||
# 2zMlAU1KT4ychtzPoIEyg7mDZBXFSebYD3FRGNr40QQP5ssZNp4aYkPc+OBbhZVN
|
||||
# qECrNN6hggIoMIICJAYJKoZIhvcNAQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UE
|
||||
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
|
||||
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0
|
||||
# IFRpbWUtU3RhbXAgUENBAhMzAAAAb2UtWG0HEUYoAAAAAABvMAkGBSsOAwIaBQCg
|
||||
# XTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTA2
|
||||
# MjQyMjUwNThaMCMGCSqGSIb3DQEJBDEWBBS3xuq3t+Yhu0yNOu+21zKtvYUE7DAN
|
||||
# BgkqhkiG9w0BAQUFAASCAQCMFelTEi4zOXfdU6BBbGdP9O3MhBsgOrzG7cTJuZnG
|
||||
# EYy9vvEafoyPg7hI07CXBRxkqOzo6YAYw3OiX7NuGYXb6wpfK38c6ub9UB2+MNay
|
||||
# 6BbOyNIkFCqdGycIpyfWZgGNGjLVtZ/uAx0pCis6dSVFor+e+rVemjkeDyS4r9Jd
|
||||
# XThMKXiuAljaQwWJGSRpwxHaBfa9bS4RV5PU0GvR6WGi+fEGZ9w8ujW2kW7/kH0e
|
||||
# i2Gxzsgjd9yxw04IDt6swr2/iXw7TTU1RU1Wwb/BPlVMfW4oxvzJtDQUAVI2KsBL
|
||||
# +dMO7jCcLk5rnY66+3WrxXsLmudCDm54BbOPn/mmZO1P
|
||||
# SIG # End signature block
|
@ -0,0 +1 @@
|
||||
{"leaves":["Clear-Host","_TabExpansionPath","UnquoteString","Get-Interface","Get-VSService","Get-VSComponentModel","TabExpansion","prompt"],"root":"unitTest"}
|
280
PowerEditor/Test/FunctionList/python/unitTest
Normal file
280
PowerEditor/Test/FunctionList/python/unitTest
Normal file
@ -0,0 +1,280 @@
|
||||
from __future__ import print_function
|
||||
|
||||
try:
|
||||
raw_input # Python 2
|
||||
except NameError:
|
||||
raw_input = input # Python 3
|
||||
|
||||
try:
|
||||
xrange # Python 2
|
||||
except NameError:
|
||||
xrange = range # Python 3
|
||||
|
||||
# Accept No. of Nodes and edges
|
||||
n, m = map(int, raw_input().split(" "))
|
||||
|
||||
# Initialising Dictionary of edges
|
||||
g = {}
|
||||
for i in xrange(n):
|
||||
g[i + 1] = []
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Accepting edges of Unweighted Directed Graphs
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
for _ in xrange(m):
|
||||
x, y = map(int, raw_input().split(" "))
|
||||
g[x].append(y)
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Accepting edges of Unweighted Undirected Graphs
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
for _ in xrange(m):
|
||||
x, y = map(int, raw_input().split(" "))
|
||||
g[x].append(y)
|
||||
g[y].append(x)
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Accepting edges of Weighted Undirected Graphs
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
for _ in xrange(m):
|
||||
x, y, r = map(int, raw_input().split(" "))
|
||||
g[x].append([y, r])
|
||||
g[y].append([x, r])
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Depth First Search.
|
||||
Args : G - Dictionary of edges
|
||||
s - Starting Node
|
||||
Vars : vis - Set of visited nodes
|
||||
S - Traversal Stack
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def dfs(G, s):
|
||||
vis, S = set([s]), [s]
|
||||
print(s)
|
||||
while S:
|
||||
flag = 0
|
||||
for i in G[S[-1]]:
|
||||
if i not in vis:
|
||||
S.append(i)
|
||||
vis.add(i)
|
||||
flag = 1
|
||||
print(i)
|
||||
break
|
||||
if not flag:
|
||||
S.pop()
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Breadth First Search.
|
||||
Args : G - Dictionary of edges
|
||||
s - Starting Node
|
||||
Vars : vis - Set of visited nodes
|
||||
Q - Traveral Stack
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
from collections import deque
|
||||
|
||||
|
||||
def bfs(G, s):
|
||||
vis, Q = set([s]), deque([s])
|
||||
print(s)
|
||||
while Q:
|
||||
u = Q.popleft()
|
||||
for v in G[u]:
|
||||
if v not in vis:
|
||||
vis.add(v)
|
||||
Q.append(v)
|
||||
print(v)
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Dijkstra's shortest path Algorithm
|
||||
Args : G - Dictionary of edges
|
||||
s - Starting Node
|
||||
Vars : dist - Dictionary storing shortest distance from s to every other node
|
||||
known - Set of knows nodes
|
||||
path - Preceding node in path
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def dijk(G, s):
|
||||
dist, known, path = {s: 0}, set(), {s: 0}
|
||||
while True:
|
||||
if len(known) == len(G) - 1:
|
||||
break
|
||||
mini = 100000
|
||||
for i in dist:
|
||||
if i not in known and dist[i] < mini:
|
||||
mini = dist[i]
|
||||
u = i
|
||||
known.add(u)
|
||||
for v in G[u]:
|
||||
if v[0] not in known:
|
||||
if dist[u] + v[1] < dist.get(v[0], 100000):
|
||||
dist[v[0]] = dist[u] + v[1]
|
||||
path[v[0]] = u
|
||||
for i in dist:
|
||||
if i != s:
|
||||
print(dist[i])
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Topological Sort
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
from collections import deque
|
||||
|
||||
|
||||
def topo(G, ind=None, Q=[1]):
|
||||
if ind == None:
|
||||
ind = [0] * (len(G) + 1) # SInce oth Index is ignored
|
||||
for u in G:
|
||||
for v in G[u]:
|
||||
ind[v] += 1
|
||||
Q = deque()
|
||||
for i in G:
|
||||
if ind[i] == 0:
|
||||
Q.append(i)
|
||||
if len(Q) == 0:
|
||||
return
|
||||
v = Q.popleft()
|
||||
print(v)
|
||||
for w in G[v]:
|
||||
ind[w] -= 1
|
||||
if ind[w] == 0:
|
||||
Q.append(w)
|
||||
topo(G, ind, Q)
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Reading an Adjacency matrix
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def adjm():
|
||||
n, a = input(), []
|
||||
for i in xrange(n):
|
||||
a.append(map(int, raw_input().split()))
|
||||
return a, n
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Floyd Warshall's algorithm
|
||||
Args : G - Dictionary of edges
|
||||
s - Starting Node
|
||||
Vars : dist - Dictionary storing shortest distance from s to every other node
|
||||
known - Set of knows nodes
|
||||
path - Preceding node in path
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def floy(A_and_n):
|
||||
(A, n) = A_and_n
|
||||
dist = list(A)
|
||||
path = [[0] * n for i in xrange(n)]
|
||||
for k in xrange(n):
|
||||
for i in xrange(n):
|
||||
for j in xrange(n):
|
||||
if dist[i][j] > dist[i][k] + dist[k][j]:
|
||||
dist[i][j] = dist[i][k] + dist[k][j]
|
||||
path[i][k] = k
|
||||
print(dist)
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Prim's MST Algorithm
|
||||
Args : G - Dictionary of edges
|
||||
s - Starting Node
|
||||
Vars : dist - Dictionary storing shortest distance from s to nearest node
|
||||
known - Set of knows nodes
|
||||
path - Preceding node in path
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def prim(G, s):
|
||||
dist, known, path = {s: 0}, set(), {s: 0}
|
||||
while True:
|
||||
if len(known) == len(G) - 1:
|
||||
break
|
||||
mini = 100000
|
||||
for i in dist:
|
||||
if i not in known and dist[i] < mini:
|
||||
mini = dist[i]
|
||||
u = i
|
||||
known.add(u)
|
||||
for v in G[u]:
|
||||
if v[0] not in known:
|
||||
if v[1] < dist.get(v[0], 100000):
|
||||
dist[v[0]] = v[1]
|
||||
path[v[0]] = u
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Accepting Edge list
|
||||
Vars : n - Number of nodes
|
||||
m - Number of edges
|
||||
Returns : l - Edge list
|
||||
n - Number of Nodes
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def edglist():
|
||||
n, m = map(int, raw_input().split(" "))
|
||||
l = []
|
||||
for i in xrange(m):
|
||||
l.append(map(int, raw_input().split(' ')))
|
||||
return l, n
|
||||
|
||||
|
||||
"""
|
||||
--------------------------------------------------------------------------------
|
||||
Kruskal's MST Algorithm
|
||||
Args : E - Edge list
|
||||
n - Number of Nodes
|
||||
Vars : s - Set of all nodes as unique disjoint sets (initially)
|
||||
--------------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
|
||||
def krusk(E_and_n):
|
||||
# Sort edges on the basis of distance
|
||||
(E, n) = E_and_n
|
||||
E.sort(reverse=True, key=lambda x: x[2])
|
||||
s = [set([i]) for i in range(1, n + 1)]
|
||||
while True:
|
||||
if len(s) == 1:
|
||||
break
|
||||
print(s)
|
||||
x = E.pop()
|
||||
for i in xrange(len(s)):
|
||||
if x[0] in s[i]:
|
||||
break
|
||||
for j in xrange(len(s)):
|
||||
if x[1] in s[j]:
|
||||
if i == j:
|
||||
break
|
||||
s[j].update(s[i])
|
||||
s.pop(i)
|
||||
break
|
@ -0,0 +1 @@
|
||||
{"leaves":["dfs(G, s)","bfs(G, s)","dijk(G, s)","topo(G, ind=None, Q=[1])","adjm()","floy(A_and_n)","prim(G, s)","edglist()","krusk(E_and_n)"],"root":"unitTest"}
|
124
PowerEditor/Test/FunctionList/ruby/unitTest
Normal file
124
PowerEditor/Test/FunctionList/ruby/unitTest
Normal file
@ -0,0 +1,124 @@
|
||||
#!/usr/local/bin/ruby
|
||||
#
|
||||
# biorhythm.rb -
|
||||
# $Release Version: $
|
||||
# $Revision$
|
||||
# by Yasuo OHBA(STAFS Development Room)
|
||||
#
|
||||
# --
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
# probably based on:
|
||||
#
|
||||
# Newsgroups: comp.sources.misc,de.comp.sources.os9
|
||||
# From: fkk@stasys.sta.sub.org (Frank Kaefer)
|
||||
# Subject: v41i126: br - Biorhythm v3.0, Part01/01
|
||||
# Message-ID: <1994Feb1.070616.15982@sparky.sterling.com>
|
||||
# Sender: kent@sparky.sterling.com (Kent Landfield)
|
||||
# Organization: Sterling Software
|
||||
# Date: Tue, 1 Feb 1994 07:06:16 GMT
|
||||
#
|
||||
# Posting-number: Volume 41, Issue 126
|
||||
# Archive-name: br/part01
|
||||
# Environment: basic, dos, os9
|
||||
|
||||
include Math
|
||||
require "date.rb"
|
||||
require "optparse"
|
||||
require "optparse/date"
|
||||
|
||||
def print_header(y, m, d, p, w)
|
||||
print "\n>>> Biorhythm <<<\n"
|
||||
printf "The birthday %04d.%02d.%02d is a %s\n", y, m, d, w
|
||||
printf "Age in days: [%d]\n\n", p
|
||||
end
|
||||
|
||||
def get_position(z)
|
||||
pi = Math::PI
|
||||
z = Integer(z)
|
||||
phys = (50.0 * (1.0 + sin((z / 23.0 - (z / 23)) * 360.0 * pi / 180.0))).to_i
|
||||
emot = (50.0 * (1.0 + sin((z / 28.0 - (z / 28)) * 360.0 * pi / 180.0))).to_i
|
||||
geist =(50.0 * (1.0 + sin((z / 33.0 - (z / 33)) * 360.0 * pi / 180.0))).to_i
|
||||
return phys, emot, geist
|
||||
end
|
||||
|
||||
def prompt(msg)
|
||||
$stderr.print msg
|
||||
return gets.chomp
|
||||
end
|
||||
|
||||
#
|
||||
# main program
|
||||
#
|
||||
options = {
|
||||
:graph => true,
|
||||
:date => Date.today,
|
||||
:days => 9,
|
||||
}
|
||||
ARGV.options do |opts|
|
||||
opts.on("-b", "--birthday=DATE", Date, "specify your birthday"){|v|
|
||||
options[:birthday] = v
|
||||
}
|
||||
opts.on("--date=DATE", Date, "specify date to show"){|v|
|
||||
options[:date] = v
|
||||
}
|
||||
opts.on("-g", "--show-graph", TrueClass, "show graph (default)"){|v|
|
||||
options[:graph] = v
|
||||
}
|
||||
opts.on("-v", "--show-values", TrueClass, "show values"){|v|
|
||||
options[:graph] = !v
|
||||
}
|
||||
opts.on("--days=DAYS", Integer, "graph range (only in effect for graph)"){|v|
|
||||
options[:days] = v - 1
|
||||
}
|
||||
opts.on_tail("-h", "--help", "show this message"){puts opts; exit}
|
||||
begin
|
||||
opts.parse!
|
||||
rescue => ex
|
||||
puts "Error: #{ex.message}"
|
||||
puts opts
|
||||
exit
|
||||
end
|
||||
end
|
||||
|
||||
bd = options[:birthday] || Date.parse(prompt("Your birthday (YYYYMMDD): "))
|
||||
dd = options[:date] || Date.today
|
||||
ausgabeart = options[:graph] ? "g" : "v"
|
||||
display_period = options[:days]
|
||||
|
||||
if ausgabeart == "v"
|
||||
print_header(bd.year, bd.month, bd.day, dd - bd, bd.strftime("%a"))
|
||||
print "\n"
|
||||
|
||||
phys, emot, geist = get_position(dd - bd)
|
||||
printf "Biorhythm: %04d.%02d.%02d\n", dd.year, dd.month, dd.day
|
||||
printf "Physical: %d%%\n", phys
|
||||
printf "Emotional: %d%%\n", emot
|
||||
printf "Mental: %d%%\n", geist
|
||||
print "\n"
|
||||
else
|
||||
print_header(bd.year, bd.month, bd.day, dd - bd, bd.strftime("%a"))
|
||||
print " P=physical, E=emotional, M=mental\n"
|
||||
print " -------------------------+-------------------------\n"
|
||||
print " Bad Condition | Good Condition\n"
|
||||
print " -------------------------+-------------------------\n"
|
||||
|
||||
(dd - bd).step(dd - bd + display_period) do |z|
|
||||
phys, emot, geist = get_position(z)
|
||||
|
||||
printf "%04d.%02d.%02d : ", dd.year, dd.month, dd.day
|
||||
p = (phys / 2.0 + 0.5).to_i
|
||||
e = (emot / 2.0 + 0.5).to_i
|
||||
g = (geist / 2.0 + 0.5).to_i
|
||||
graph = "." * 51
|
||||
graph[25] = ?|
|
||||
graph[p] = ?P
|
||||
graph[e] = ?E
|
||||
graph[g] = ?M
|
||||
print graph, "\n"
|
||||
dd = dd + 1
|
||||
end
|
||||
print " -------------------------+-------------------------\n\n"
|
||||
end
|
@ -0,0 +1 @@
|
||||
{"leaves":["print_header","get_position","prompt"],"root":"unitTest"}
|
46
PowerEditor/Test/FunctionList/unitTestLauncher.ps1
Normal file
46
PowerEditor/Test/FunctionList/unitTestLauncher.ps1
Normal file
@ -0,0 +1,46 @@
|
||||
..\..\bin\notepad++.exe -export=functionList -lasm .\asm\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lautoit .\autoit\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lbash .\bash\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lbatch .\batch\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lc .\c\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lcpp .\cpp\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lcs .\cs\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lini .\ini\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -linno .\inno\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -ljava .\java\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -ljavascript .\javascript\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lnsis .\nsis\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lperl .\perl\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lphp .\php\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lpowershell .\powershell\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lpython .\python\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lruby .\ruby\unitTest | Out-Null
|
||||
..\..\bin\notepad++.exe -export=functionList -lxml .\xml\unitTest | Out-Null
|
||||
|
||||
|
||||
$testRoot = ".\"
|
||||
|
||||
Get-ChildItem $testRoot -Filter *.* |
|
||||
Foreach-Object {
|
||||
if ((Get-Item $testRoot$_) -is [System.IO.DirectoryInfo])
|
||||
{
|
||||
$expectedRes = Get-Content $testRoot$_\unitTest.expected.result
|
||||
$generatedRes = Get-Content $testRoot$_\unitTest.result.json
|
||||
|
||||
if ($generatedRes -eq $expectedRes)
|
||||
{
|
||||
Remove-Item $testRoot$_\unitTest.result.json
|
||||
""
|
||||
"OK"
|
||||
}
|
||||
else
|
||||
{
|
||||
"$generatedRes"
|
||||
exit -1
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
58
PowerEditor/Test/FunctionList/xml/unitTest
Normal file
58
PowerEditor/Test/FunctionList/xml/unitTest
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="Windows-1252" ?>
|
||||
<NotepadPlus>
|
||||
<GUIConfigs>
|
||||
<GUIConfig name="ToolBar" visible="yes">standard</GUIConfig>
|
||||
<GUIConfig name="StatusBar">show</GUIConfig>
|
||||
<GUIConfig name="TabBar" dragAndDrop="yes" drawTopBar="yes" drawInactiveTab="yes" reduce="yes" closeButton="yes" doubleClick2Close="no" vertical="no" multiLine="no" hide="no" quitOnEmpty="no" />
|
||||
<GUIConfig name="ScintillaViewsSplitter">vertical</GUIConfig>
|
||||
<GUIConfig name="UserDefineDlg" position="undocked">hide</GUIConfig>
|
||||
<GUIConfig name="TabSetting" replaceBySpace="no" size="4" />
|
||||
<GUIConfig name="AppPosition" x="0" y="0" width="1100" height="700" isMaximized="no" />
|
||||
<GUIConfig name="noUpdate" intervalDays="15" nextUpdateDate="20180427">no</GUIConfig>
|
||||
<GUIConfig name="Auto-detection">yes</GUIConfig>
|
||||
<GUIConfig name="CheckHistoryFiles">no</GUIConfig>
|
||||
<GUIConfig name="TrayIcon">no</GUIConfig>
|
||||
<GUIConfig name="MaitainIndent">yes</GUIConfig>
|
||||
<GUIConfig name="TagsMatchHighLight" TagAttrHighLight="yes" HighLightNonHtmlZone="no">yes</GUIConfig>
|
||||
<GUIConfig name="RememberLastSession">yes</GUIConfig>
|
||||
<GUIConfig name="DetectEncoding">yes</GUIConfig>
|
||||
<GUIConfig name="NewDocDefaultSettings" format="0" encoding="4" lang="0" codepage="-1" openAnsiAsUTF8="yes" />
|
||||
<GUIConfig name="langsExcluded" gr0="0" gr1="0" gr2="0" gr3="0" gr4="0" gr5="0" gr6="0" gr7="0" gr8="0" gr9="0" gr10="0" gr11="0" gr12="0" langMenuCompact="yes" />
|
||||
<GUIConfig name="Print" lineNumber="yes" printOption="3" headerLeft="" headerMiddle="" headerRight="" footerLeft="" footerMiddle="" footerRight="" headerFontName="" headerFontStyle="0" headerFontSize="0" footerFontName="" footerFontStyle="0" footerFontSize="0" margeLeft="0" margeRight="0" margeTop="0" margeBottom="0" />
|
||||
<GUIConfig name="Backup" action="0" useCustumDir="no" dir="" isSnapshotMode="yes" snapshotBackupTiming="7000" />
|
||||
<GUIConfig name="TaskList">yes</GUIConfig>
|
||||
<GUIConfig name="MRU">yes</GUIConfig>
|
||||
<GUIConfig name="URL">2</GUIConfig>
|
||||
<GUIConfig name="globalOverride" fg="no" bg="no" font="no" fontSize="no" bold="no" italic="no" underline="no" />
|
||||
<GUIConfig name="auto-completion" autoCAction="3" triggerFromNbChar="1" autoCIgnoreNumbers="yes" funcParams="yes" />
|
||||
<GUIConfig name="auto-insert" parentheses="no" brackets="no" curlyBrackets="no" quotes="no" doubleQuotes="no" htmlXmlTag="no" />
|
||||
<GUIConfig name="sessionExt"></GUIConfig>
|
||||
<GUIConfig name="workspaceExt"></GUIConfig>
|
||||
<GUIConfig name="MenuBar">show</GUIConfig>
|
||||
<GUIConfig name="Caret" width="1" blinkRate="600" />
|
||||
<GUIConfig name="ScintillaGlobalSettings" enableMultiSelection="no" />
|
||||
<GUIConfig name="openSaveDir" value="0" defaultDirPath="" />
|
||||
<GUIConfig name="titleBar" short="no" />
|
||||
<GUIConfig name="stylerTheme" path="C:\sources\notepad-plus-plus\PowerEditor\bin\stylers.xml" />
|
||||
<GUIConfig name="wordCharList" useDefault="yes" charsAdded="" />
|
||||
<GUIConfig name="delimiterSelection" leftmostDelimiter="40" rightmostDelimiter="41" delimiterSelectionOnEntireDocument="no" />
|
||||
<GUIConfig name="multiInst" setting="0" />
|
||||
<GUIConfig name="MISC" fileSwitcherWithoutExtColumn="no" backSlashIsEscapeCharacterForSql="yes" newStyleSaveDlg="no" isFolderDroppedOpenFiles="no" docPeekOnTab="no" docPeekOnMap="no" />
|
||||
<GUIConfig name="searchEngine" searchEngineChoice="2" searchEngineCustom="" />
|
||||
<GUIConfig name="SmartHighLight" matchCase="no" wholeWordOnly="yes" useFindSettings="no" onAnotherView="no">yes</GUIConfig>
|
||||
<GUIConfig name="ScintillaPrimaryView" lineNumberMargin="show" bookMarkMargin="show" indentGuideLine="show" folderMarkStyle="box" lineWrapMethod="aligned" currentLineHilitingShow="show" scrollBeyondLastLine="no" disableAdvancedScrolling="no" wrapSymbolShow="hide" Wrap="no" borderEdge="yes" edge="no" edgeNbColumn="80" zoom="0" zoom2="0" whiteSpaceShow="hide" eolShow="hide" borderWidth="2" smoothFont="no" />
|
||||
<GUIConfig name="DockingManager" leftWidth="200" rightWidth="200" topHeight="200" bottomHeight="200">
|
||||
<ActiveTabs cont="0" activeTab="-1" />
|
||||
<ActiveTabs cont="1" activeTab="-1" />
|
||||
<ActiveTabs cont="2" activeTab="-1" />
|
||||
<ActiveTabs cont="3" activeTab="-1" />
|
||||
</GUIConfig>
|
||||
</GUIConfigs>
|
||||
<FindHistory nbMaxFindHistoryPath="10" nbMaxFindHistoryFilter="10" nbMaxFindHistoryFind="10" nbMaxFindHistoryReplace="10" matchWord="no" matchCase="no" wrap="yes" directionDown="yes" fifRecuisive="yes" fifInHiddenFolder="no" dlgAlwaysVisible="no" fifFilterFollowsDoc="no" fifFolderFollowsDoc="no" searchMode="0" transparencyMode="1" transparency="150" dotMatchesNewline="no" isSearch2ButtonsMode="no" />
|
||||
<History nbMaxFile="10" inSubMenu="no" customLength="-1" />
|
||||
<ProjectPanels>
|
||||
<ProjectPanel id="0" workSpaceFile="" />
|
||||
<ProjectPanel id="1" workSpaceFile="" />
|
||||
<ProjectPanel id="2" workSpaceFile="" />
|
||||
</ProjectPanels>
|
||||
</NotepadPlus>
|
@ -0,0 +1 @@
|
||||
{"leaves":["GUIConfig name=\"ToolBar\" visible=\"yes\"","GUIConfig name=\"StatusBar\"","GUIConfig name=\"TabBar\" dragAndDrop=\"yes\" drawTopBar=\"yes\" drawInactiveTab=\"yes\" reduce=\"yes\" closeButton=\"yes\" doubleClick2Close=\"no\" vertical=\"no\" multiLine=\"no\" hide=\"no\" quitOnEmpty=\"no\"","GUIConfig name=\"ScintillaViewsSplitter\"","GUIConfig name=\"UserDefineDlg\" position=\"undocked\"","GUIConfig name=\"TabSetting\" replaceBySpace=\"no\" size=\"4\"","GUIConfig name=\"AppPosition\" x=\"0\" y=\"0\" width=\"1100\" height=\"700\" isMaximized=\"no\"","GUIConfig name=\"noUpdate\" intervalDays=\"15\" nextUpdateDate=\"20180427\"","GUIConfig name=\"Auto-detection\"","GUIConfig name=\"CheckHistoryFiles\"","GUIConfig name=\"TrayIcon\"","GUIConfig name=\"MaitainIndent\"","GUIConfig name=\"TagsMatchHighLight\" TagAttrHighLight=\"yes\" HighLightNonHtmlZone=\"no\"","GUIConfig name=\"RememberLastSession\"","GUIConfig name=\"DetectEncoding\"","GUIConfig name=\"NewDocDefaultSettings\" format=\"0\" encoding=\"4\" lang=\"0\" codepage=\"-1\" openAnsiAsUTF8=\"yes\"","GUIConfig name=\"langsExcluded\" gr0=\"0\" gr1=\"0\" gr2=\"0\" gr3=\"0\" gr4=\"0\" gr5=\"0\" gr6=\"0\" gr7=\"0\" gr8=\"0\" gr9=\"0\" gr10=\"0\" gr11=\"0\" gr12=\"0\" langMenuCompact=\"yes\"","GUIConfig name=\"Print\" lineNumber=\"yes\" printOption=\"3\" headerLeft=\"\" headerMiddle=\"\" headerRight=\"\" footerLeft=\"\" footerMiddle=\"\" footerRight=\"\" headerFontName=\"\" headerFontStyle=\"0\" headerFontSize=\"0\" footerFontName=\"\" footerFontStyle=\"0\" footerFontSize=\"0\" margeLeft=\"0\" margeRight=\"0\" margeTop=\"0\" margeBottom=\"0\"","GUIConfig name=\"Backup\" action=\"0\" useCustumDir=\"no\" dir=\"\" isSnapshotMode=\"yes\" snapshotBackupTiming=\"7000\"","GUIConfig name=\"TaskList\"","GUIConfig name=\"MRU\"","GUIConfig name=\"URL\"","GUIConfig name=\"globalOverride\" fg=\"no\" bg=\"no\" font=\"no\" fontSize=\"no\" bold=\"no\" italic=\"no\" underline=\"no\"","GUIConfig name=\"auto-completion\" autoCAction=\"3\" triggerFromNbChar=\"1\" autoCIgnoreNumbers=\"yes\" funcParams=\"yes\"","GUIConfig name=\"auto-insert\" parentheses=\"no\" brackets=\"no\" curlyBrackets=\"no\" quotes=\"no\" doubleQuotes=\"no\" htmlXmlTag=\"no\"","GUIConfig name=\"sessionExt\"","GUIConfig name=\"workspaceExt\"","GUIConfig name=\"MenuBar\"","GUIConfig name=\"Caret\" width=\"1\" blinkRate=\"600\"","GUIConfig name=\"ScintillaGlobalSettings\" enableMultiSelection=\"no\"","GUIConfig name=\"openSaveDir\" value=\"0\" defaultDirPath=\"\"","GUIConfig name=\"titleBar\" short=\"no\"","GUIConfig name=\"stylerTheme\" path=\"C:\\sources\\notepad-plus-plus\\PowerEditor\\bin\\stylers.xml\"","GUIConfig name=\"wordCharList\" useDefault=\"yes\" charsAdded=\"\"","GUIConfig name=\"delimiterSelection\" leftmostDelimiter=\"40\" rightmostDelimiter=\"41\" delimiterSelectionOnEntireDocument=\"no\"","GUIConfig name=\"multiInst\" setting=\"0\"","GUIConfig name=\"MISC\" fileSwitcherWithoutExtColumn=\"no\" backSlashIsEscapeCharacterForSql=\"yes\" newStyleSaveDlg=\"no\" isFolderDroppedOpenFiles=\"no\" docPeekOnTab=\"no\" docPeekOnMap=\"no\"","GUIConfig name=\"searchEngine\" searchEngineChoice=\"2\" searchEngineCustom=\"\"","GUIConfig name=\"SmartHighLight\" matchCase=\"no\" wholeWordOnly=\"yes\" useFindSettings=\"no\" onAnotherView=\"no\"","GUIConfig name=\"ScintillaPrimaryView\" lineNumberMargin=\"show\" bookMarkMargin=\"show\" indentGuideLine=\"show\" folderMarkStyle=\"box\" lineWrapMethod=\"aligned\" currentLineHilitingShow=\"show\" scrollBeyondLastLine=\"no\" disableAdvancedScrolling=\"no\" wrapSymbolShow=\"hide\" Wrap=\"no\" borderEdge=\"yes\" edge=\"no\" edgeNbColumn=\"80\" zoom=\"0\" zoom2=\"0\" whiteSpaceShow=\"hide\" eolShow=\"hide\" borderWidth=\"2\" smoothFont=\"no\"","GUIConfig name=\"DockingManager\" leftWidth=\"200\" rightWidth=\"200\" topHeight=\"200\" bottomHeight=\"200\"","ActiveTabs cont=\"0\" activeTab=\"-1\"","ActiveTabs cont=\"1\" activeTab=\"-1\"","ActiveTabs cont=\"2\" activeTab=\"-1\"","ActiveTabs cont=\"3\" activeTab=\"-1\"","FindHistory nbMaxFindHistoryPath=\"10\" nbMaxFindHistoryFilter=\"10\" nbMaxFindHistoryFind=\"10\" nbMaxFindHistoryReplace=\"10\" matchWord=\"no\" matchCase=\"no\" wrap=\"yes\" directionDown=\"yes\" fifRecuisive=\"yes\" fifInHiddenFolder=\"no\" dlgAlwaysVisible=\"no\" fifFilterFollowsDoc=\"no\" fifFolderFollowsDoc=\"no\" searchMode=\"0\" transparencyMode=\"1\" transparency=\"150\" dotMatchesNewline=\"no\" isSearch2ButtonsMode=\"no\"","History nbMaxFile=\"10\" inSubMenu=\"no\" customLength=\"-1\"","ProjectPanel id=\"0\" workSpaceFile=\"\"","ProjectPanel id=\"1\" workSpaceFile=\"\"","ProjectPanel id=\"2\" workSpaceFile=\"\""],"root":"unitTest"}
|
@ -76,7 +76,6 @@
|
||||
<association id= "csharp_class" langID= "4" />
|
||||
<association id= "java_syntax" langID= "6" />
|
||||
<association id= "xml_node" langID= "9" />
|
||||
<!-- <association id="functionlist_syntax" langID= "9" /> -->
|
||||
<association id= "batch_label" langID="12" />
|
||||
<association id= "ini_section" langID="13" />
|
||||
<association id= "perl_function" langID="21" />
|
||||
@ -89,6 +88,7 @@
|
||||
<association id= "innosetup_syntax" langID="46" />
|
||||
<association id= "powershell_function" langID="53" />
|
||||
<association id= "javascript_function" langID="58" />
|
||||
<!-- ======================================================================== -->
|
||||
<association id= "baanc_section" langID="60" />
|
||||
<!-- ======================================================================== -->
|
||||
<association id= "krl_function" userDefinedLangName="KRL" />
|
||||
@ -572,93 +572,7 @@
|
||||
</functionName>
|
||||
</function>
|
||||
</parser>
|
||||
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| Show each FunctionList `association`-node as a leaf in an
|
||||
| `assiociationMap` branch and each `parser`-node as a leaf in a
|
||||
| `parsers` branch of the FunctionList tree
|
||||
\-->
|
||||
<parser
|
||||
displayName="XML of Function List"
|
||||
id ="functionlist_syntax"
|
||||
commentExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
|
||||
(?:\x3C!--(?:[^\-]|-(?!-\x3E))*--\x3E) # Multi Line Comment
|
||||
"
|
||||
>
|
||||
<classRange
|
||||
mainExpr ="(?xs) # can span multiple lines
|
||||
\x3C(?'COMPOUND'associationMap|parsers)\x3E # begin of a `associationMap` or `parsers`-node
|
||||
.*? # include anything between the node`s tags
|
||||
\x3C/\k'COMPOUND'\x3E # end of the applicable node
|
||||
"
|
||||
>
|
||||
<!--
|
||||
| Use the node's name as label for the branch
|
||||
\-->
|
||||
<className>
|
||||
<nameExpr expr="\x3C\w+\x3E" />
|
||||
<nameExpr expr="\w+" />
|
||||
</className>
|
||||
<function
|
||||
mainExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
|
||||
\x3C(?:association|parser) # begin of a `association` or `parser`-node
|
||||
(?: # match attributes
|
||||
\s+\w+ # at least one whitespace before attribute-name
|
||||
\h*=\h* # name-value separator can be surrounded by blanks
|
||||
(?: # quoted attribute value, embedded escaped quotes allowed...
|
||||
\x22(?:[^\x22\x5C]|\x5C.)*?\x22 # ...double quoted...
|
||||
| \x27(?:[^\x27\x5C]|\x5C.)*?\x27 # ...single quoted
|
||||
)
|
||||
)+ # only match nodes with at least one attribute
|
||||
\s*/?\x3E # end of the node or node-tag resp.
|
||||
"
|
||||
>
|
||||
<!--
|
||||
| For `association`-nodes use its `id`-attribute value as its leaf
|
||||
| name and for `parser`-nodes use its `displayName`-attribute value.
|
||||
| NOTE: to be able to use the node's `displayName`-attribute,
|
||||
| make sure it's defined before the `id`-attribute.
|
||||
\-->
|
||||
<functionName>
|
||||
<funcNameExpr expr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
|
||||
(?:displayName|\bid)
|
||||
\h*=\h*
|
||||
(?:
|
||||
\x22(?:[^\x22\x5C]|\x5C.)*?\x22
|
||||
| \x27(?:[^\x27\x5C]|\x5C.)*?\x27
|
||||
)
|
||||
"
|
||||
/>
|
||||
<funcNameExpr expr="(?<=[\x22\x27])(?:[^\x22\x27\x5C]|\x5C.)*?(?=[\x22\x27])" />
|
||||
</functionName>
|
||||
</function>
|
||||
</classRange>
|
||||
<!--
|
||||
| Fallback: show each `parser`-node as a leaf of the root in the FunctionList tree
|
||||
\-->
|
||||
<function
|
||||
mainExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`)
|
||||
\x3Cparser # begin of a `parser`-node
|
||||
(?: # match attributes
|
||||
\s+\w+ # at least one whitespace before attribute-name
|
||||
\h*=\h* # name-value separator can be surrounded by blanks
|
||||
(?: # quoted attribute value, embedded escaped quotes allowed..
|
||||
\x22(?:[^\x22\x5C]|\x5C.)*?\x22 # ...double quoted...
|
||||
| \x27(?:[^\x27\x5C]|\x5C.)*?\x27 # ...single quoted
|
||||
)
|
||||
)+ # only match nodes with at least one attribute
|
||||
\s*/?\x3E # end of the `parser`-node-tag
|
||||
"
|
||||
>
|
||||
<!--
|
||||
| Use the `displayName`-attribute value as leaf name.
|
||||
\-->
|
||||
<functionName>
|
||||
<nameExpr expr="displayName\h*=\h*(?:\x22(?:[^\x22\x5C]|\x5C.)*?\x22|\x27(?:[^\x27\x5C]|\x5C.)*?\x27)" />
|
||||
<nameExpr expr="(?<=[\x22\x27])(?:[^\x22\x27\x5C]|\x5C.)*?(?=[\x22\x27])" />
|
||||
</functionName>
|
||||
</function>
|
||||
</parser>
|
||||
|
||||
|
||||
<!-- ================================ [ Batch / Command Shell Script ] -->
|
||||
|
||||
<parser
|
||||
|
Loading…
Reference in New Issue
Block a user