- Only include the strictly necessary headers.
- Get rid of the dependency on shell and user DLLs.
- fgetws() gets the string buffer size in number of characters.
- We can use the CRT functions for lengths of the arguments etc.
- The cFileName member of the WIN32_FIND_DATAW structure does not
contain the full PATH to the enumerated file, but only its name.
In order to use _wfopen(), build a full file path out of the
directory part of the file specification and the full file name.
- Simplify a ConPrintf() call to make it "atomic".
- Fix the "confusion" lLineCount vs. lLineNumber vocable in the code.
- Do not emit an extra newline after having displayed the results for
a given file.
- Uppercase the switches for performing the comparisons.
- Send the errors to the StdErr stream.
- Remove trailing whitespace.
This commit contains a complete rewrite of find console utility.
The goal of it was to make the source code easier to maintain
and to add a missing feature (/offline switch).
Additional changes:
* now the program operates on Unicode strings;
* added conutils and shlwapi as program's libraries;
* added IDS_INVALID_SWITCH string into resources;
* modified IDS_USAGE string to include /offline switch
description.
https://ss64.com/nt/find.html was used for reference.
This is also done on Windows for backwards compatibility with Windows 3.x/9x.
But, it's also used (i.e. "required") by some installers, like Doom 3 Demo installer and Battlefield 1942 Single Player Demo installer, for successful opening of their Readme file at the end of their installation!
Our On-Screen Keyboard has a manifest and the buttons (the ones with BS_ICON styles) aren't rendered with the specific theme as it should be but instead it takes the classic theme.
The code relies on NM_CUSTOMDRAW notification, which is more intuitive and efficient than doing owner-drawn operations as NM_CUSTOMDRAW allows the controls to use styles whereas you cannot do it on owner-drawn controls.
CORE-15965
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.
On my system, this reduces the configure-time by a factor of two.
On-Screen Keyboard has a manifest which is used for visual styles. However, the common controls aren't initialized and as a general rule the controls have to be loaded in the application's handle instance.
On-Screen Keyboard provides a mechanism to launch the application only once, to avoid multiple entry point instances. Such mechanism is based upon mutex objects, although it could happen that the program may end up creating two or more mutexes (a race condition).
CORE-15877
Implement the coordination dialog data saver. This allows OSK to launch using the previous placement values. Such behaviour can be seen with the XP's part of On-Screen Keyboard.
- Fixed bug 12.37 13/06/2009 into multiprecision display (unicode only).
- Fixed bug when calculator was closed with statistics dialog open.
- Fixed bug in XrY operator.
- Fixed error into conversion unit.
- Do not append decimal separator if "ERROR" messages are printed.
- Remove call to _tcslen() and use return value of GetDlgItemText() where possible.
Configuration is read from WIN.INI under W32S/Win9x/Me and from the registry
for all NT platforms.
Although with INI file mapping the keys are still saved in the registry
even on NT, I added handling of different platforms for writing directly
the configuration in the right place.
- Fix errors if a theme api is missing.
- Add callback to functions for drawing themed transparent background.
- Fix drawing glitch when theming is applied.
- Redraw on theme change: automatically redraw the window if the
theme is changed while the application is active.
- Colours are now declared though RGB() macro.
- Removed safe DS_SHELLFONT declaration.
- Added support for average of squares and mean of squares into statistical functions.
- pop() and push() functions in RPN engines now work with nodes instead of stack units.
- Moved the POW and SQR operations near the operators.
CORE-12766
- Fix number of digits for IEEE-754 constants.
- Show all available digits in exp notation.
CORE-14871
- Update help correspondingly.
- Implement the save/load handler for this feature
- Check the "Use Click Sound" item state accordingly depending if it's enabled or disabled
- Use PlaySoundW() to play the wave sound file from resource
- Add the WAV sound click file. The work is made thanks to Midori Mizuno
Prevent nslookup.exe from crashing when executed in a ROS VM with no network
interfaces. This is due to a NULL pointer dereference occurring if
`GetNetworkParams` in `main` fails with an error other than
`ERROR_BUFFER_OVERFLOW`. In this case, `pNetInfo` remains initialized to
NULL, causing `strncpy` to crash.
- Add the respective standard keyboard resource.
- Implement the standard/enhanced keyboard dialog switcher.
- Implement save/load handler.
- Move the warning box conditinal check (bShowWarning) to wWinMain application entry point (this will prevent the modal welcome box from displaying each time the user switches into another dialog).
CORE-14428
[CMDUTILS/AT] Fix missing translation strings in certain files.
[NOTEPAD] Fix SUBLANG code to brazillian.
[RAPPS] Fix missing translation strings in certain files.
[FDEBUG] Fix translation string ID.
[CPL/INPUT] Fix missing translation strings in certain files.
[ACPPAGE] Fix incorrect resource IDs.
[NETSHELL] Fix incorrect resource IDs.
[DEVMGR] Fix missing translation strings in certain files.
[LSASRV] Fix missing translation strings in certain files.
[RASDLG] Fix missing translation strings in certain files.
[SHELL32] Fix missing translation strings and incorrect resource IDs.
[TAPIUI] Fix missing translation strings in certain files.
[WINFILE] Fix incorrect resource IDs.
[NTVDM] Fix missing translation strings in certain files.
[USERSRV] Fix missing translation strings in certain files.
[BROWSEUI] One more missing string.
[FLTMC] Fix missing translation strings in certain files.
Detected using the TransDiffer tool (early alpha).
This doesn't include everything anymore, but I wanted to get the PR out of the way.
* [WIN32K] Fix handle calculation in DbgGdiHTIntegrityCheck
* [NOTEPAD] Fix MSVC warnings
* [PSDK] Simplify *PROC definitions in windef.h
* [VIDEOPRT] Don't try to use NtVdmControl on x64
* [FREELDR] Fix some macros
* [CRT] Make qsort 64 bit compatible
* [NTOS] Use #ifndef _WIN64 instead of #ifdef _M_IX86 around C_ASSERTs
* [FAST486] Fix 64 bit warnings and change DWORD to ULONG, so it can be used in kernel mode
* [APPHELP_APITEST] Fix 64 bit issue
[REG][REACTOS][EXPLORER][APPWIZ][CONSOLE][INETCPL][INPUT]
[INTL][OPENGLCFG][TIMEDATE][DEVCPUX][COMCTL32][COMDLG32]
[MSGINA][NETCFGX][NETID][SETUPAPI][SHELL32][SYSSETUP]
Update Simplified and Traditional Chinese translations.
@Translators: Please start translating messages from netmsgmsg.mc and errorcodes.mc (located in sdk\include\reactos\mc). They will be used instead of local strings.
* [BROWSEUI] Update Traditional Chinese translation.
* [BROWSEUI] Update Simplified Chinese translation.
* [SHELL32] Update Traditional Chinese translation.
* [REGEDIT] Update Traditional Chinese translation.
* [BROWSEUI] Update Traditional Chinese translation.
In Windows XP, both in On-Screen Keyboard and in Magnify there is a welcome box which is shown upon startup of the application. This feature is already implemented for Magnify in ReactOS which however in On-Screen Keyboard is still unimplemented.
* [MSPAINT] Fix scrollbar presence on canvas/view fitting
This is a small fix for a scrollbar related edge case functionality exhibited in mspaint (and in a lesser degree also elsewhere in instances of) scrollbar controlled content. As known, the scrollbars presence is given by the size ratio between the accommodating outer frame and the scroll-controlled contents inside it, and it works for the most part. There is, however, a case where the presence of both toolbars is kept even when the contents would fit the frame (if not for the scrollbars themselves that increase the size of the contents' area). Please take the current commit as a demo fix and a provisional correction for mspaint (as I think that the proper fix should reside in common controls).
* [MSPAINT] Fix a small mistake and improve readability in UpdateScrollbox()
Although with no visible impact on testing, I've used a wrong constant related to vertical scrollbox width in one instance (SM_CXHSCROLL instead of SM_CXVSCROLL), and this fixes it. Also, prefer using constants, to improve a bit readability and performance (by avoiding repeated function calls).
I found it unintuitive that each time I selected some software for installation, it wasn't automatically deselected after installation. I kept re-triggering the same installation a few times before I realized I had to manually uncheck the checked packages.
Implement mshta.exe. It links directly to the function RunHTMLApplication in mshtml and passes the file name and other optional arguments along. While the function is unimplemented in mshtml, it's a start.
[MSHTML] Add ADD_IMPORTLIB to CMakeLists so mshta can link to mshtml.
[BOOTDATA] Add the association information for mshta.exe to the registry.
- Improve the scrolling support for bitmaps, DIBs and text formats.
This completes the work started in CORE-10679 by Ricardo Hanke.
Includes scrolling with the keyboard and the mouse wheel.
- Add support for the CF_DSP* clipboard formats, as well as CF_TEXT
and CF_OEMTEXT.
- Add support for owner-display clipboard format CF_OWNERDISPLAY.
- Realize any palette found in the clipboard (CF_PALETTE) before
displaying the clipboard data format we want.
- Remove dead code.
- Update the file headers.
- Check the denominator for zero for both zoomed width and height.
- Do not allow to move zoom slider above possible position.
- Move commonly used `zoomTo` function into new header file.
CORE-14539
CORE-11637, CORE-12269
- Implement support for remote connections to NT computers to view their
event logs (and the event logs settings). For the moment the remote
computer name specification is is only available via the command-line.
Note that the paths to the event log files need also to be translated
to network-share format.
- Implement loading and saving the settings of the event viewer.
- Implement showing/hiding the events description pane, the ListView
grid, and whether or not to save the EventViewer settings.
- Handle hypertext link click handling for the RichEdit edit box of the
events description dialog.
- Don't hardcode a buffer length in ExpandEnvironmentStringsW() call.
- If no file name is associated to a log (ErrorLog->FileName == NULL),
don't try to attempt looking at its file properties. This also allows
avoiding a crash in the FindFirstFileW() call under certain conditions
on Windows.
CORE-12269
- Add support for '/?' and '/l:' switches. The former displays usage
information. The latter allows to specify an event log file to load.
Also one can specify the computer name from which one wants to
retrieve events for display (work in progress).
- In EnumEventsThread(), move around the code that updates the
application title and status bar, so that the selected event log name
and loading status is always displayed first, while loading itself is
in progress.
- Initialize hwndMainWindow as it can be used before it is properly
initialized with an existing window handle.
- Transform ShowLastWin32Error() to a more generic ShowWin32Error().
- Use iswdigit() instead of isdigit().
- Add extra heap buffer cleanup.
- Split OpenUserEventLog() in two: OpenUserEventLog() that displays
an open-file dialog, and OpenUserEventLogFile() that does the real
work of allocating internal structures and opening the log file using
the event-log service. We also check that the file really exists
before proceeding further.
- Force treeview repaint when *children* items are inserted, because
otherwise the expand/collapse buttons do not display next to parent
items (this problem happens on Windows too).
- Reshuffle the resource string IDs.
This replaces old link to svn.reactos.org with rapps.reactos.org
which is a new stable location for RAPPS database and future community
website. That said, svn.reactos.org link will be kept for some time.
TODO: make this a configurable value.
CORE-14351
* [SERVMAN] Italian update translation
* [SERVMAN] Small grammatical typo fixed
* [SERVMAN] Word replaced
- "Accedi" would be more convenient than "Accedere"
- Small Italian translation update;
- Translation update for Romanian;
- Small update (just two strings translated based on the latest RAPPS commits);
- Header E-mail changed.
FDI allows to have user-defined callbacks for file handling.
Since it doesn't provide support for Unicode we convert strings to
multi-byte UTF-8 and handle them appropriately in the callbacks. They
are properly null-terminated so FDI won't choke when doing operations
with strings.
Thanks to hbelusca and mjansen for the help.
CORE-14466
- Fix the layout of the normal master dialog layout.
- Change the name of the normal and tray master dialogs.
- Add the WS_EX_LAYOUTRTL style to the hebrew dialogs.
- Add the small master dialog.
- Add support for tray (/t), small (/s) and normal (/n) dialog sizes.
- Fix the font size calculation for the dialogs.
- Fix the dialog unit to pixel conversion.
- Fix the client window size calculation.
- Do not leak font handles.
* Convert to wWinMain()
* Add a resource file
* Use a slightly friendlier application name
* Add code to load the output path from the Registry
* Add localized string resources
- Make sure the DWLP_* values are correct on _WIN64
- Don't use the DWL_* constants, they are not portable. Enforce this by removing them entirely from winuser.h
- Make sure Get/SetWindowLong*Ptr* is used and pointers are not truncated to LONG
- We should not open a new connection to request a certificate.
- Update the issuer / subject for the LE certificate.
- User proper types.
- Require all fields that we check to be present.
Without checking the public key or the entire certificate it's still not secure, but we are a step closer.
Dedicated to Joachim Henze
CORE-14350
[FONTEXT]: At the moment there is a comment in the en-US.rc resource file that advises to not translate it. I only created this file as a basis for the future. The file will be updated later when there is the possibility for FONTEXT to be translated further.
- Plus: Update license header.
- Re-use PrintServiceStatus(), as SERVICE_STATUS_PROCESS is in fact an extension of SERVICE_STATUS.
- Use the "SERVICE_*" defines, not magic numbers.
Added Estonian translation for the common base applications Notepad and MS Paint. These are the initial translations, and are subject to change, as they may not be the most perfect.
- Host/net unreachable error should be obtained from EchoReply->Status
- Use GetNameInfoW to decode actual response addresses (borrowed from tracert code)
CORE-14241 #resolve
On application crash, drwtsn32 will attach to the application and try to get a dump, consisting of:
- List of loaded modules
- List of loaded threads
- Per thread, a stacktrace
- Per thread, a small hexdump from the stack
- Per thread, a dump of the most common registers
This dump is saved to the desktop, and the user is notified of the dump being dropped there.
CORE-14180
#145
- Added a 'Selected for installation' category that shows what was selected.
Selection is now kept between categories.
- New string is added to resources.
ru-RU.rc and uk-UA.rc strings are translated.
CORE-13789
- Full rewrite. This commit replaces the old utility.
- Use the new ICMP APIs instead of manually crafting ping requests using raw sockets.
- Add support for additional languages (the previous utility was hardcoded)
- Add support for IPv6
- Make the icmpapi header C++ compatible. (we don't appear to sync this with wine anymore.)
- Now runs on Win10, is much more reliable, and brings the code somewhat into the 21st century.
(It's currently missing source routing (-j), but as most routers disable this anyway, I'm not sure that it's worth adding)
- Translated some English strings and fixed a small grammar typo.
Addendum:
- Header file ported from ReactOS coding style added
(even though it kind of bloats the translation file, it does actually help for
future translators looking at changes committed by previous translators).
- Replaced "..." with "…" (single character) <sanchaez>
* Fix Simplified Chinese Translation of EXPLORER.
* Fix Simplified Chinese Translation of MSCONFIG_NEW.
* Fix Simplified Chinese Translation of MSPAINT.
* Fix Simplified Chinese Translation of SHELL32.
* Fix Simplified Chinese Translation of SYSDM.
* Fix Simplified Chinese Translation of SETUP/REACTOS.
- The aliases ("macros") definition files have the same format as what
is output by DosKey when one displays the list of defined aliases with
the /macros: command-line switch. It should then, in particular,
understand the format where executable names are also specified:
[exename1]
alias1=command1
...
[exename2]
aliasN=commandN
...
We now behave similarly as Windows' version of this utility in that
regard.
- Use ARRAYSIZE() when needed.
- Take the opportunity to add a license header to the source file.
* Fix the Simplified Translation of Rapps
* Fix the Simplified Translation of msconfig_new
* Fix the Simplified Translation of charmap_new
* Fix the Simplified Translation of winmine
* Fix the Simplified Translation of kbswitch
* Fix Simplified Chinese Translation of logoff
* Fix Simplified Chinese Translation of eventvwr
* Fix Simplified Chinese Translation of sysdm
* Update Simplified Chinese Translation for dxdiag
- Add Simplified Chinese translation for EVENTCREATE.
- Update translations for 'dxdiag', 'fontview', 'magnify', 'mmc', 'rapps' and 'wordpad'.
Patch by Li Keqing.
- Avoid a potential race whereby the current service selection can change before the propsheet thread starts up
- Cleanup the depends data, it doesn't need to be passed around the propsheet
[SERVMAN]
- Make the property sheets modeless so users can open multiple services at the same time
- Untested in ros. In fact we have no code or tests cases to check that modeless property sheets work, so please raise a bug if you find any issues with the app.
- Dedicated to reactosfanboy
- Wrap implementation of Mirror/Rotate, Stretch/Skew and Attributes dialog in subclasses of CDialogImpl
- Turn global variables from code that was moved into member functions into member variables
- Add global instances of all three dialog classes
- Use <global instance>.DoModal(...) instead of one-line wrappers
- Replace some TCHAR arrays with CStrings
To check that these changes are correct, checkout in a directory (let's call it "ros_svn") the /trunk/reactos/ of our read-only SVN repo r76032 and in /trunk/reactos/modules/, the rosapps, rostests and wallpapers.
In a second directory (let's call it "ros_git"), clone the corresponding Git-converted ReactOS directory.
Before applying this patch (and the previous one that added back the empty directories), you should see additional files in ros_git that are not in ros_svn, corresponding to these files I'm deleting here (plus some .gitignore files),
and you should also see additional files in ros_svn that do not appear in ros_git: these are the empty directories I've restored in my previous patch.
Now, after the application of both the previous patch that restores the empty directories (and deletes the .gitignore files), and this patch that removes the ghost files, you should only see that the only differences
between ros_git and ros_svn are the extra .keep files in the empty directories, and that's all!
Command-line for the tests:
diff --strip-trailing-cr -r ros_svn ros_git > diff_svn2git.txt
"-r" means recursive, and "--strip-trailing-cr" ignores the CR-LF vs. LF (or CR) EOLs.
(*): by "ghost" old(*) files I understand files that existed previously in the far past, that then were deleted long ago in SVN, and that popped out back during the Git migration.