* Disabling all interrupts prior to ownership handover from SMM to OS
can prevent propper OHCI and PS/2 functionality as described in
#8987 and #8984. In that case SMM does not respond to the ownership
change request. On the other hand not disabling the interrupts can
lead to interrupt storms (discussed in #8085) since no interrupt
handler is installed at that moment. As suggested by mmlr this patch
attempts to address both issues by keeping the ownership change
request interrupt enabled.
* Removed an unnecessary reset upon non-responding SMM for now,
since we reset a few lines later anyway and added TODOs respectively.
That should safe a bit boot time.
Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
* added Icb::FindBlock() to find block in extents.
* MetadataPartition uses extents descriptors found in the metadatafile
to lookup blocks on a physical partition
* uses struct timespec instead of time_t
* added init_entities() to call C++ structures constructors. This is
called at module initialization, C++ constructors are currently not called when
a kernel module is loaded.
* tested with a sample bluray ISO.
* Depends on ff09527e4f (which is +alpha4 *not* +alpha3) :)
* As per commit ML
* Do a direct AddItem vs using an item variable which
breaks program flow.
* A better long term solution may be to enable the debug server
to recover 'system' applications that fail. #9039
* The only implementation that would accept more than 2 TB was the one in
scsi_disk. But even that one was limited to 63 TB.
* Now there is a new utility function devfs_compute_geometry_size() which
does it correctly for sizes up to 2^64 which should be good enough for
quite some time :-)
* This fixes bug #8992.
The signames_haiku.h header got out of sync when merging the real-time
signals branch. It is used when cross-compiling Haiku, since the build
tool mksignames only generates a signal name list suitable for the host
platform.
Fixes ticket #9046.
Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
The function fill_team_info() completely ignored the user id and the
group id of the process (fields info->uid and info->gid respectively).
Since the info structure was zeroed earlier, the ps output showed uid
and gid of each process equal to zero.
The patch fixes the problem by properly initializing the members with
effective uid and gid. Now the output is correct.
Fixes#8995.
Signed-off-by: Ryan Leavengood <leavengood@gmail.com>
Added an early return in GrepWindow::_OnReportResult(BMessage* message)
in case the report message does not contain matches.
Signed-off-by: Stephan Aßmus <superstippi@gmx.de>
* Matches "Restart Tracker" option in Deskbar
* Only shows up when 0 Deskbar processes exist
* Don't dereference fFileMenu if RepopulateMenus called
on desktop (no menu bar)
* Regenerate desktop menu on each click
* Resolves#9039
* HaikuMailFormatFilter is using the new extract_from_header() method
to retrieve its fields, but that one is often rather slow in comparison.
* Added a test parse_fields() method that outperforms it considerably.
* The controller structure is static, so if you closed the device,
and the driver failed to initialize correctly (ie. finds no codec)
on the second try, it would have crashed accessing an already freed
codec.
* Not sure why it fails to detect any codecs on second open, yet,
though.
* When a block was only used in a sub-transaction, it was thrown away,
but the transaction::num_blocks field was not decremented.
* This caused transactions never considered finished which eventually
led to bug #8942. This does not explain the disk corruption occurring
in #8969, though.
* Don't redefine incorrect cpu headers in framebuffer code
* Drop unused err
* Fix missing parentheses as per gcc
* Fix Raspberry Pi Build
* Fix overo build due to missing header
* Proper framebuffer code is chosen based on hardware
* This change could extend into other arch code as well
* François gave permission to update his copyrights
* Minimal functional change
* These video sources would be good cannidates to be
refactored as classes. (like the arm serial code)
* No functional change. There are some order style issues
in some of the code (the top externs), but I decided to
not fix them as I can't build these atm to test.
* can't test this, it's untested, but similar to ATADevice.cpp
* should no longer panic when hdd > 2TB is connected
* fix request completition in two error cases
* add const to some parameters
sFreeAreaCount wasn't decremented after removing an area from
sFreeAreas, thus causing the loop to continue until enountering and
crashing on a NULL pointer after removing the last area. Introduce
helper methods _PushFreeArea() and _PopFreeArea() to ensure this cannot
easily happen again.
Fixes ticket #8972.
* Correct a situation where disabling the auto swap without
adjusting the swap size would result in an invalid swap
size getting written to the configuration
* Add swap_auto to the virtual memory settings file
* Disable controls based on the context of what is enabled
* hamishm gave permission to adjust his copyrights to Haiku, Inc.
Both are from #8867, created by Justin Stressman. The previous source code icon
was not friendly to those with green color blindness. I also think it was an
ugly green.
Fixes#8867 of course.
* Avoid floating point numbers in the kernel
* Warning would always show if custom swap file in use
* Don't change a custom swap file size if low space occurs
* Ram > 1GB? Don't double the memory for the automatic size
* Heavily based on Hamish Morrison's GCI work with some
modified logic and cleanup. #3723
* Adds automatic swap as well as user specified swap
* Limits:
Automatic: (ram * 2) up to 25% of the disk
User: user specified up to 90% of the disk
* Supports changing the swap disk location
* The ASSERT() I introduced in r44585 was incorrect: when the sub transaction
used block_cache_get_empty() to get the block, there is no original_data for
a reason.
* Added a test case that reproduces this situation.
* The block must be moved to the unused list in this situation, though, or else
it might contain invalid data. Since the block can only be allocated in the
current transaction, this should not be a problem, though, AFAICT.
- BNavMenu now keeps its own copy of the cached types list that's passed to it.
In some circumstances it could happen that the container window would
delete the list and consequently the nav menu would wind up with a pointer
to an invalid object. Probably a regression from the async mouse tracking
rewrites.
Several scenarios of misbehaviour found and fixed, examples :
* Deleting an item sitting before the currently playing item had the effect of
starting the playback of the item before the delete item.
(now it just updates the indexes - setting it to fCurrentIndex - 1 - without altering playback).
* Deleting the last item of the list had for effect of starting the playback of the entry
newingly being the last entry, regardless if the last entry was the active one or not.
Should fix#6689.
* avoid mixing input and output paths when building a tree. In fact, an
audio input shouldn't use only a mixer used for output.
* in case an audio input has more than one input, use these inputs to
build a mux control.
* should help with #8270, #8333
The lowest 4 bits of the MSR serves as a hint to the hardware to
favor performance or energy saving. 0 means a hint preference for
highest performance while 15 corresponds to the maximum energy
savings. A value of 7 translates into a hint to balance performance
with energy savings.
The default reset value of the MSR is 0. If BIOS doesn't intialize
the MSR, the hardware will run in performance state. This patch
initialize the MSR with value of 7 for balance between performance
and energy savings
Signed-off-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* added optional feature package for libpng 1.5.12 gcc4/gcc2 x86 and ppc
* drop libpng sources and headers from the tree.
* added optional feature package for jpeg 8d gcc4/gcc2 x86 and ppc
* drop jpeg sources and headers from the tree.
* In cache_abort_sub_transaction(), the original_data can already be freed
when the block is being removed from the transaction.
* block_cache::_GetUnusedBlock() no longer frees original/parent data - it
now requires them to be freed already (it makes no sense to have them still
around at this point).
* AFAICT the previous version did not have any negative consequences besides
freeing the original data late.
* cache_abort_sub_transaction() was setting the transaction_next pointer to
NULL in order to remove a block from a transaction -- however, it forgot to
actually remove it from the transaction's block list.
* Minor restructuring.
All controls were enabled when toggling fullscreen on and off;
now it recalls the argument last used in SetEnabled() and reuse it
when called in AttachedInWindow() (which occurs in such toggling)
Fixes#8804.
IconView is now only setting the icon with BAppFileInfo when the file is an application,
otherwise relies on BNodeInfo. This avoids adding ressources within data files.
The IconView also wasn't populated correctly when used on data files (by opposition to
application binaries). It now loads the same icon that is shown in Tracker.
* This fixes a regression I introduced in hrev43648; the mouse cursor
was only being hidden in case the controls were visible (ie. only
after an extra mouse move in full screen).
Renamed {32,64}/int.cpp to {32,64}/descriptors.cpp, which now contain
functions for GDT and TSS setup that were previously in arch_cpu.cpp,
as well as the IDT setup code. These get called from the init functions
in arch_cpu.cpp, rather than having a bunch of ifdef'd chunks of code
for 32/64.
Hoard reserves a chunk of the address space to grow the heap into.
As there is a much larger address space available on 64-bit systems,
we may as well reserve a larger chunk of address space (64GB for now,
though could probably reserve a lot more than that and still leave
plenty of room for other areas).
* Selected bg uses B_MENU_SELECTED_BACKGROUND_COLOR
* Selected text uses B_MENU_SELECTED_ITEM_TEXT_COLOR
* Unselected text uses B_MENU_ITEM_TEXT_COLOR
Update BStringItem, but also the custom Listitem code in the
Appearance and Locale preflets.
Before its name was a lie, since nothing was cached.
Another boolean was added because getting the localized name could fail, and we
don't want to pointlessly try again, so relying on fHasLocalizedName won't work
for that.
Since in my tests this was getting called up to 4 times per application when
opening the Deskbar Application menu, this caching should speed that up a bit,
at least when this file name translation feature is turned on.
Now that we use the actual selected menu item ui_color, this tinting is not
needed. In fact it makes the selected item too dark.
Thanks diver for noticing.
Omitting this call left invalid reference to deleted group in the
multicast groups hash-map and any upcoming attempt to join the group will
crash the system. Fixes#6736.
- If a trace entry has a stack trace, attempt to demangle the associated symbols.
Could be enhanced further to also demangle the arguments but doesn't yet.
Interestingly there are some mangled symbols that our demangler appears to
not handle correctly (gcc4).
Double-click check was redoing what is essentially already done in input_server.
The way we were doing it, right clicking (or pressing a different button for the second click,
for that matter) wasn't clearing the fields remembered and thus not breaking the sequence.
So a third click returning to the correct sequence (in a short time) would get recognized
as a valid second click. So a quick left-right-left would be seen by that method as left-left.
Also, clean up a previous fix I committed. Removed the introduced Origin() method as it
is the LeftTop() method I was interested in and it is already existing.
Fix#8714
Kernel mode code on x86_64 needs to be built with -mno-red-zone as
interrupts would corrupt the red zone if it were in use. However, the
kernel is linked with libsupc++, which was not compiled with
-mno-red-zone. If an interrupt occurred in libsupc++ code the red zone
would get corrupted. This was causing random panics, particularly under
heavy system load. Therefore, on x86_64 a separate build of libsupc++
with -mno-red-zone is now done for the kernel to use. Note: this commit
will require a rerun of configure and rebuild of cross tools.
This also matches the client_window_info.show_hide_level field used in Deskbar
and other applications.
While doing this, keep fShowLevel fully in sync between BWindow and app_server,
use one message type for both hiding and showing, and make the decision to show
and hide the window in the app_server.
Lastly make minimize behave as described in the Be Book: hidden windows cannot
be minimized, and minimized windows which get hidden become unminimized.
Initializing the IO-APIC will initialize the PCI module, which does
read the MSI config of the devices only when MSIs are available.
Since we initialized them only after that, that condition wasn't met.
Later, due to the uninitialized arch info, MSIs were still marked as
available (0xcc = 204 MSIs). Due to the also uninitialized configured
count, they were always deemed busy however, in effect just breaking
MSI support whereever IO-APICs were available.
Replaced remaining "Preferences" and "Options" with "Settings" as
that is generally used for app settings instead of the system
preferences found in the preference panels.
Renamed Tracker's "Preferences" to "Tracker preferences" to be
similar to the entries in the Deskbar and e.g. the Media replicant
in the Deskbar tray.
TextWidget tried to detect if the editing box would span outside the PoseView,
but it was using an hardcoded value of 1 for the minimum left value. But in Icon mode,
negative values can occur. Change to use the view's origin (top left corner of the view).
This reverts commit 14b654326d.
Unfortunately that changeset causes a regression on GCC 2, which
makes playback of (some?) video impossible. This is due to Libavcodec
being miscompiled, which requires gcc >= 4.2
Resolves the regression of #8856, but does not fix the root issue.
Due to clipping of a rect to match the view bounds, there was a confusion
as to whether the rect was at the top of the view bounds, or above the view
bounds as both met the condition.
Fixes#8876.
This bug was introduced by changing IS_USER_ADDRESS to check against
USER_BASE AND USER_TOP rather than just !IS_KERNEL_ADDRESS. Faults
on addresses outside both the user and kernel address spaces (i.e. the
gap between user and kernel) would result in addressSpace being NULL,
but addressSpace was being used without checking for NULL at one point.
If an uncanonical address is accessed a general protection fault will
be raised. When in the debugger, uncanonical address faults should be
handled by the fault handler (if any).
The coreutils sources get built against the regex.h included with
coreutils, but linked against the regex implementation in libroot. Some
of the types used by coreutils' regex implementation differ from those
in libroot's on 64-bit platforms meaning they are incompatible. Fixed by
building coreutils' own regex implementation rather than linking to
libroot's (GCC 2 still uses libroot though, coreutils' implementation
doesn't build with GCC 2).
This reverts commit df62aa28a7.
Nope, this did not work, it added a new file instead of renaming
the existing one, so there are 2 French (Bépo).keymap files instead
of one, tricky.
* fs_darwin.c => fs_darwin.cpp
* fs_freebsd.c => fs_freebsd.cpp
* use bool instead of int again in fs_darwin.cpp (C => C++)
* declare loop varibles inline again in fs_freebsd.cpp (C => C++)
* 2 newlines between top header gaurd and first #include
* 2 newlines after last #include
* freebsd/endian.h and freebsd/regex.h convert \r\n to just \n
* remove some leading tabs in fs_freebsd.cpp
* add newlines after single line if statement in fs_freebsd.cpp
* 80-char limit fixes in fs_freebsd.cpp
Implementing the window_info.show_hide_level in terms of this solves the
problem of minimized windows also being considered hidden, when really they are
just hidden in the app_server.
window_info.show_hide_level is still defined backwards with a comment making
that clear.
Also removed sending fShowLevel in the minimize request since it is now
maintained in the app_server.
Fixes#4127.
This completes the final 1/3 of #8857. Changes again by nielx with
style fixes by me.
The one part that I couldn't figure out, and maybe Ingo can chime
in here. If headers/build/host/darwin/sys/stat.h is surrounded in
extern "C" {
}
guards then I get a link error complaining that the functions defined
here are duplicate symbols, once in fs.o and once in function_remapper.o.
For example:
ld: duplicate symbol _futimens in generated/objects/darwin/x86_64/release/build/libroot/libroot_build_function_remapper.a(function_remapper.o) and generated/objects/darwin/x86_64/release/build/libroot/libroot_build.a(fs.o) for architecture x86_64
I'm not sure why that is.
- When an Identify/Force Identify request is made in Tracker, if the target
is a link, resolve it to its destination first. Fixes#8858.
- Have mime_update.sh explicitly mimeset the welcome/user guide scripts.
This avoids selecting those windows for moving and more importantly bringing to
front a minimized window with Ctrl-click, which causes the minimized state to
be out of sync between the app_server and BWindow, causing #8860.
Since the position of the widget was registered at the first click,
it likely changed and its causing drawing afterfacts (it's editing at
its old location).
Make the PoseView stop watching a TextWidget if it's being deleted.
Could happen in race conditions for example, if you click to edit
the name widget of a pose while the pose is being deleted soon after.
* Various compilation fixes.
* Fixes to the FreeBSD compatibility layer (from comparing the x86-
specific bits with the equivalent amd64 sources in FreeBSD).
* Compile all the Ethernet drivers except for sis900 and wb840, these
require a bit more work to fix (will file a ticket soon). Tested
ipro1000 and rtl81xx, no issues.
Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.
Don't wait for a potential second click (and then trigger Widget editing) when:
1. a click occurs on a different pose, on a 'pose-less' area or when right clicking
2. when you start dragging something.
Make the "second click of a double-click" detection waiting time async. In other words
(hopefully clearer), when the TextWidget gets a click, it register itself, recording the time,
and it will get the editing order later as a callback from PoseView when the delay without any
further click expires.
Fixes#8818 and maybe others.
Now that NFSv4 almost works, add support for handling nfs: urls to urlwrapper.
Should later be replaced by a better solution but it works for the time being.
The type of BRegion::fCount is long, and ServerLink sends/receives it
with sizeof(long), but LinkReceiver was using sizeof(int32). Due to
long being 64 bit this was resulting in a mismatch. This fixes the
drawing problems on x86_64.
Previously, changing a file's icon was creating both an attribute
and a ressource, now it only saves it as an attribute
i.e. don't change the file content.
This became visible when dragging an image together with a cursor that has a reasonable large hotspot. In this case the cursor and the bitmap were shifted to much.
In rare cases such as described in #7955 BTextView happens to calculate the
width of a tab close to zero (e.g. 0.000031). This patch adds a fallback to the
default tab width in that case.
Signed-off-by: Ryan Leavengood <leavengood@gmail.com>
Due to a previous change in the incrementation of models in AddPosesTask,
PoseView containing large number of poses were prone to crash in ClearPoses().
Gaps in PoseList or other invalid memory area were introduced.
Thanks to x-ist for precious assistance in spotting those issues!
Again, a regression fix. Under some circumstance, fFiltering was wrongly
set. Also, the node wasn't open before checking the BRefFilter and some
filters expected that to be.
Regression of hrev44493, file panel crashed when changing dir and
filtering being disabled (sorry!)
Also fix the widget editing when filtering is activated. Now renaming
a file/folder and causing it to 'fall off' the filter does work.
Following hrev44493, the way ShouldShowPose was used changed a bit,
to harmonize with type ahead filtering.
This updates OpenWithWindow to use a BRefFilter to do its
filtering rather than overloading ShouldShowPose.
1. A BRefFilter-ed PoseView wouldn't keep monitoring files after its opening
thus not picking up files that happen to fit the filter thereafter (mime attr
updated, etc..)
2. A filtered PoseView wouldn't get updated when:
a) a column was added or removed
b) a file was renamed
c) a file was moved
3. Harmonize the way BRefFiltering and Type-ahead filtering are working. Both
can be used together.
4. The handler for AttributeChanged() wasn't working properly if link(s) of a
changed model was/were its siblings.
5. Broken links weren't detected/updated (it nows monitor the lost target
parent directory, and wait for the target creation to show the link fixed)
This is a big change (even more considering the 'critical-ness' of the component)
Testing is MUCH welcome!
Should fix#4254, #5381, #1717 (and maybe others)
As mentioned in one of the previous commits, breakpoints don't work
properly yet, and I haven't done much extensive testing yet, but the
basic functionality works.
Reused x86 arch_user_debugger.cpp, with a few minor changes to make
the code work for both 32 and 64 bit. Something isn't quite working
right, if a breakpoint is hit the kernel will hang. Other than that
everything appears to work correctly.
* Force fractional feedback divider on APU's
* Spread Spectrum is now probed more correctly
across multiple encoders and cards
* SS still disabled however.
* Move DisplayPort external pixel clock out of pll
as this frequency is card-wide.
* Add new function to pull display clock frequency
and other card-wide settings.
* Set displayDefault frequency card-wide
* My DisplayPort LVDS bridge laptop now kind of works
(a clock somewhere seems a little off though)
There were two problems with the last commit:
* the list needed to be outside of the top-level loop.
* BList was just broken for sorting translation_format pointers.
I fixed this by moving the loop outside and converting the translation_formats
to translator_info, which has the translator_id, since that is needed to create
the menu item, and would otherwise be unavailable outside the loop.
I tried to get this working with BList, but the sorting was completely broken,
and converting to BObjectList made the code much, much better and worked great.
Screw BList and casting, hurray templated BObjectList.
Really fixes#6782.
* Commented out by default
* Shows DisplayPort status info for each
connector post-mode change (as DP properies
are configured on mode change once we know
the pixel clock)
Not in duplicate fragments, however. This oversight in hrev44359 made
checkfs incorrectly rebuild valid indices, causing #8762.
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
Fixes were needed to go with the USB stack changes. Haven't tested it
yet because I don't have a a machine with OHCI, but I doubt there
will be any problems.
- Various changes to printf format specifiers to make them 32/64 safe.
- Adjustments to various descriptor structures since addr_t is not 32-bit
on x86-64, and consequently this breaks the physical structure that's
expected. Also adjusted padding to accomodate 32-byte boundaries when
64-bit pointers are in use.
- Adjustments to make use of phys_addr_t where needed.
This is used by ShowImage and CodyCam to create a list of image formats which a
file can be saved as. Tracker sorts the image MIME types used in the Find
window by name, so this makes these Save As menus match that (minus the icons
which I think are superfluous.)
Fixes#6782.
If the use of BList is no longer recommended, I welcome better suggestions
for sorting which will work in both GCC2 and GCC4. But this works ;)
Should not be a functional change. It is not in the Haiku Coding Guidelines but
I feel like 'if (object != NULL)' is generally preferred to 'if (object)', plus
in this case of be_control_look that is the more common style.
Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.
* Remove non-generic radeon dp_get_lane_count
* Set lane count and link rate at set_display_mode
* Pass entire mode to pll_set vs only pixel clock for DP code
* Add helpers for DP config data to common code
* Obtain more correct link rate
With this commit, app_server now compiles and runs at boot! Nothing
particularly interesting happens, just the blue background and a mouse
pointer. Remote backends are broken and not compiled in, see #8834.
Note that it won't be possible to build this quite yet, need to get
the FreeType package uploaded.
* "thread": prints/sets the current thread.
* "continue", "stop": continue/stop the current thread.
* "sc"/"bt": Print a stack trace for the current thread. Very basic yet.
* Introduce the notion of a current thread. That's the one certain
commands will target (by default).
* Add more event handling in CliContext. There's now a queue of pending
events which are printed in the input loop at convenient times to
inform the user about what happened (new/deleted/stopped threads,
etc.).
An off-by-one error (> instead of >= really) was causing truncation when it
wasn't needed. But for some reason this only showed up when the main font size
was increased. I may or may not look into that, but this fixes the issue.
Maybe one of the faster bug logged to bug fixed times in Haiku history? ;)
* Make sure we use consistant terminology
* No more Formatted partition "" messages when
doing a partition map
* This commit will require translation work
No functional change.
* Surround email addresses in angle brackets.
* Add myself to ExpressionParser.cpp and .h
* Remove myself from ExpressionTextView.cpp and .h
* Alphatetize authors by last name.
Thanks Ingo and Axel.
This module provides an interface for drivers to use to perform calls
to the BIOS (only really for use by graphics drivers which need to use
the VESA BIOS). It uses the x86emu library from X.org which emulates
a real mode x86 CPU. This is necessary for x86_64 as virtual 8086 mode
no longer exists there.
* Move disk partitioning systems under Disk menu
* Found and created bug #8827 (this wasn't introduced
by my changes and was pre-existing)
* My testing resulted in no regressions, however
please test though!
Figured out by Stephan originally and only hacked in WebPositive, I knew
something about WebPositive was different because it did not flicker when
everything else did.
Since we fully draw the menus there is no need to have app_server fill in the
background with the view color. That is what was causing the flickering.
Should fix#484, #532 and #4335. Thanks diver for confirming the patch against
those tickets.
* Changed IS_USER_ADDRESS to check an address using USER_BASE and
USER_SIZE, rather than just !IS_KERNEL_ADDRESS. The old check would
allow user buffers to point into the physical memory map area.
* Added an unmapped hole at the end of the bottom half of the address
space which catches buffers that cross into the uncanonical address
region. This also removes the need to check for uncanonical return
addresses in the syscall handler, it is no longer possible for the
return address to be uncanonical under normal circumstances. All
cases in which the return address might be changed by the kernel
are still handled via the IRET path.
* Delete and q quit the application.
* Shift-Delete and k kill the application.
Used a message filter since I want these handled by the window.
Fixes#8561.
Also:
* Removed DeselectAll() from the class declaration since it was never defined.
* Re-ordered methods in the class definition to match the order in the declaration.
* Added the underscore to _UpdateList() since it is a private method and moved
it to the right place.
The ellipsis character (...) after a menu item means that
the command needs more information from the user before
the operation executes.
The ellipsis character doesn’t simply mean that a dialog
box or window will appear.
The window appearing completes the command and doesn’t
require additional input from the user before it executes.
The current behaviour of aligning to the maximum value of p_align seen
is problematic for x86_64, as the default segment alignment is 2MB.
This causes all x86_64 binaries to be padded to at least 2MB when
resources are added to them. There is no need to align to p_align in
the file itself (it's only an in-memory requirement), therefore
instead just align up to an 8-byte boundary. The current behaviour is
retained for ELF32, so this won't cause any compatibility problems
(there are no existing ELF64 BeOS/Haiku binaries to worry about).
I overlooked this problem in my last commit...
If you select the current angle (radian/degree) mode from the menu
it toggles the angle mode, fixed this to make it keep the current
mode.
Default is radian mode, You set the option in the right click menu
like the other options.
Note: degree mode does not affect hyperbolic trigonometric functions.
This is how Mac Calculator, Windows Calculator, and Google Calculator
work.
I'm using consoled at the moment without input_server having been run,
so when it starts the input drivers will not have been loaded. Have to
retry a few times with delays so that the input devices have a chance
to appear.
Fixed the usual issues - printf format strings, uint32 instead of
addr_t, etc. One thing that isn't so nice is several places where
BList is used to store (u)int32, these require a double cast to addr_t
then void* to silence a warning on x86_64.
This reduces perceived latency. One day when I add a tab close undo stack, this
will be even better. But generally using the middle mouse button is not
accidental.