Commit Graph

653 Commits

Author SHA1 Message Date
Oliver Tappe
bd2a7a1a44 Closing #3145:
* apply a patch by hamish (as part of GCI) that lets fseek() discard 
  characters pushed onto the stream via ungetc()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-01 19:04:32 +00:00
Fredrik Holmqvist
ec349ca3bb If there is an error opening the file (negative id) there is no need for close. CID 3474.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-28 11:59:34 +00:00
Oliver Tappe
9201344705 Fix CID-5893 (resource leak):
* close the dlopen()-ed image if the locale backend could not be created


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39950 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 15:26:58 +00:00
Oliver Tappe
4167bb128b Fix CID-34 (dead code):
* eliminate code that will never be reached

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39949 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 15:19:12 +00:00
Oliver Tappe
b97c958d25 Adjust for CID-8007:
use strlcpy() instead of strcpy() for improved clarity, although
the buffer is always wide enough [famous last words ...]

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 14:53:39 +00:00
Ingo Weinhold
d23cadce4c [_{kern,user}_]{start,stop}_system_watching()
-> [_{kern,user}_]{start,stop}_watching_system()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 17:01:23 +00:00
Ingo Weinhold
d2bf328d72 Implemented a generic system watching mechanism with a userland API. Currently
only a few events can be watched (team creation/deletion/exec, thread creation/
deletion/name changes). The functions start_system_watching()/
stop_system_watching start/stop watching events.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 01:49:52 +00:00
François Revol
917c4aeb8d ISO C and POSIX mandate _Exit() in stdlib.h to be the same as _exit().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-28 05:07:53 +00:00
Ingo Weinhold
25dc253d6a * Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-22 13:06:36 +00:00
Ingo Weinhold
631cc3ea7b Keep things in order.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-16 20:54:49 +00:00
Ingo Weinhold
698fcd85da Should have been part of r39453. The libroot implementation of
get_extended_team_info().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-16 19:43:37 +00:00
Ingo Weinhold
56d734a1aa Added new private API to get more information on a team:
* Userland interface: get_extended_team_info().
* Syscall: _kern_get_extended_team_info.

Only partially implemented yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-16 19:42:08 +00:00
Oliver Tappe
de2e54ace0 Adjust tzset() implementation to better follow the POSIX specs and
make some more perl tests happy.
* no longer expect a ICU timezone ID in the TZ environment variable,
  but only expect this format if the TZ-value is starting with ':'
* accept "standard" TZ-values like "EST5" (of which only "EST" is
  relevant to us) - if such a value is specified, we hardcode the
  timezone name to the given value, no matter how ICU calls it
* adjust tests accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-13 01:13:38 +00:00
Oliver Tappe
5ae9cf0060 * fix warning about deprecated conversion
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-13 00:21:23 +00:00
Oliver Tappe
bd13a264f7 Fix #6740:
* remove declaration of ctype-..._l() functions, as we do not provide
  them and they are not really needed by our hacked glibc
* replace remaining invocations of isspace_l() and isupper_l() in glibc
  with isspace() and isupper() respectively
This allows libroot to be built in DEBUG mode, again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-09 21:36:35 +00:00
François Revol
f3319425ed Return 0 on success for the mount() and unmount() compatibility calls. Just cleaner.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-08 21:46:22 +00:00
François Revol
193e56fbef Add mount() and unmount() BeOS compatibility calls. This should help to run some old apps like Helios...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 22:28:07 +00:00
François Revol
ceee0a32a4 Fix warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 20:39:48 +00:00
Ingo Weinhold
e5d4255933 Init AtExitInfoBlock::fFirstUnused in the constructor. Probably fixes #6793.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 13:08:04 +00:00
Ingo Weinhold
85f9496a24 Implemented __cxa_atexit() and __cxa_finalize() which are required by the
Itanium ABI. Whether __cxa_atexit() really works for associating hooks with
DSOs has not been tested yet, as our compiler doesn't use the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 16:21:20 +00:00
Ingo Weinhold
b502275bc8 exit.c -> exit.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 11:07:01 +00:00
Ithamar R. Adema
18b48221c9 * don't mess with the stack before storing the register state :$
This finally makes KDL fully usuable on the ARM port!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-19 23:11:57 +00:00
Ithamar R. Adema
7889c39de4 * Fixup longjump too... One step closer to a working KDL...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-18 14:00:17 +00:00
Ithamar R. Adema
a9de9aea54 * Fix atomic_get :$
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-18 12:39:59 +00:00
Ithamar R. Adema
60beb9c01e * Fixup atomic calls; currently only minimally tested on __ARM_ARCH__ < 6
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-18 12:10:16 +00:00
Ithamar R. Adema
a85c91d6f0 * Fix setjmp/jmpbuf_t size so we can finally get to the KDL prompt
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-18 00:50:59 +00:00
Oliver Tappe
72cf60a534 * replace glibc-base wcwidth() and wcswidth() with the one from
Bruno Haible's libunistring, which seems to work just fine

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 17:49:09 +00:00
Philippe Houdoin
20e654cab0 unsetenv() should remove *any* occurence of name=value.
As with putenv() both value and name can be modified afterwise in our 
back, multiple occurence of the same name is a possibility.
Fix #6706. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 09:09:01 +00:00
Philippe Houdoin
5b2ed54046 Fix the fix: sleep() should return *remaining* seconds.
Closed #6707.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 08:28:46 +00:00
Philippe Houdoin
82539c6155 sleep() remaining time was returned in microsecond, not second.
Fix #6707.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 07:19:41 +00:00
Scott McCreary
e86eb77b1b Patch from kaliber to a the glibc strtold implentation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 16:42:59 +00:00
Oliver Tappe
6a5dacaa3c part1 of fixing #6599:
* protect against invocations of ctype-macros/-functions with negative
  character indices by mirroring the corresponding values at negative
  array indices (the legal access range of __ctype_b is now [-128..255])


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 15:55:42 +00:00
Oliver Tappe
338ddd836f Closing #6499:
* add missing getsubopt() POSIX-function
* added corresponding test


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 18:43:24 +00:00
Oliver Tappe
86932f41cc Try to fix #6581:
* avoid trying to overwrite values of a constant structure when
  updating the numeric locale data values used by glibc


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-12 17:24:38 +00:00
Oliver Tappe
ccee6057f0 * fix wrong signedness in values put into global 'timezone' variable,
the POSIX specs are a bit vague on this (to say the least)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-11 18:34:48 +00:00
Axel Dörfler
1e0617da2e * dladdr() apparently should work on any symbol, not just functions. This
closes bug #6491.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 13:49:14 +00:00
Oliver Tappe
dbe1e23aa8 Optimised passing around of timezone a bit
* _kern_[sg]et_timezone() now accepts/passes out the timezone name, too
* adjust Time preflet and clockconfig to pass the timezone name into the kernel
  when calling _kern_set_timezone()
* ajust implementation of tzset() to fetch the timezone name from the kernel
  via _kern_get_timezone() instead of reading 'libroot_timezone_info'
* the Time preflet no longer writes 'libroot_timezone_info'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-16 22:01:28 +00:00
Oliver Tappe
560b10ff88 Implement tzset(), gmtime(), localtime() and mktime() on top of ICU
* no longer keep a separate time-backend, since the implementation needs to
  access (data of) the locale backend anyway
* moved more stuff from localtime_fading_out.c to localtime.cpp
* added respective tests to locale_test
* added two more tests copied from glibc, test_time.c and tst-mktime.c


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-16 21:14:23 +00:00
Jérôme Duval
5091a866ec To be validated as part of bug #6386. Update glibc regex to 2.11, headers/posix/regex.h included. This imposes some changes in some of our sources using the regex.h,
mostly bin tools and mail kit. The use of __USE_GNU macro is needed for instance when the expected regex implementation is the GNU one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-11 16:49:58 +00:00
François Revol
3d08ac9237 Add the fmemopen() and open_memstream() POSIX extensions to libroot. Those can be used to build FILE pointers to in-memory buffers, a possible use would be to make resources available to ported applications. Untested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-10 09:56:13 +00:00
Oliver Tappe
562ccb03cc * introduced stubbed TimeBackend to libroot, which will contain implementations
of localtime(), gmtime() and mktime()
* implemented tzset() to read the required info from libroot_timezone_info

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-05 21:50:26 +00:00
Oliver Tappe
2cb26c0ab0 * moved ErrnoMaintainer into its own header to be reusable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-05 21:41:29 +00:00
Oliver Tappe
28bedeb547 Applied a patch by MrSunshine that adds modfl() - thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-04 15:46:33 +00:00
Oliver Tappe
7e965f506d More consolidation of timezone code:
* dropped DaylightSavingTime from real_time_clock code in kernel, it was
  never really being used for what it meant (and just being referred to by
  gettimeofday(), which put a different meaning to it
* adjusted the syscalls get_timezone() & set_timezone() as well as their callers 
  accordingly
* got rid of get_rtc_info() and rtc_info struct in kernel, as it was only
  being referred to by the FAT add-on and that one (like gettimeofday()) put a
  different meaning to tz_minuteswest. Added a comment to FAT's util.c
  showing a possible solution, should the hardcoded GMT timezone pose a problem.
* fixed declaration of gettimeofday() to match POSIX base specs, issue 7
* changed implementation of gettimeofday() to not bother trying to fill struct
  timezone - it was using wrong values before, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 23:02:57 +00:00
Oliver Tappe
80ac9aef07 * corrected the copyright header, as that file no longer contains what
the copyright header refers to

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 17:48:48 +00:00
Oliver Tappe
96ac47e312 Made some progress with consolidation of timezone-related code:
* renamed syscalls _kern_[gs]et_tzfilename 
  to _kern_[gs]et_real_time_clock_is_gmt, as the filename part is no longer
  relevant (and the two corresponding parameters were removed)
* C++-ified and reworked clockconfig to use the info from 'Time settings' 
  to setup the timezone info during boot
* removed invocation of _kern_get_tzfilename() from tzset(), as the syscall
  no longer exists and tzset() is currently broken anyway
* adjusted the Time preflet to use the renamed syscall when getting/setting 
  the RTC info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 17:47:26 +00:00
Oliver Tappe
308ca58d67 * deprecated set_timezone(), as we no longer support (and need) timezone files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 16:50:28 +00:00
Oliver Tappe
60656c54d1 * don't use B_USE_POSITIVE_POSIX_ERRORS in libroot, let any interested party
use that and the posix_error_mapper

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-25 17:20:39 +00:00
Oliver Tappe
ac055d4bf8 Avoid rm switching to interactive mode for any locale other than POSIX:
* reset errno to 0 if it has been set during execution of any ICU method
  (which doesn't set errno itself, but may invoke system functions that do)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-25 17:10:52 +00:00
Oliver Tappe
bc981208fa * replace use of strcmp with strcasecmp, as locale names are supposed to be
case insensitive

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-25 11:31:56 +00:00