Commit Graph
100 Commits
Author SHA1 Message Date
Oliver Tappe f5644b8d3b * prefer HashSet and HashMap to respective std-classes where possible
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 18:52:03 +00:00
Oliver Tappe 07b37bb0a0 * fix value of all enumeration types that are stored as part of a
package or repository file

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 18:33:19 +00:00
Oliver Tappe ead4d20c7a * 'pkgman list-repo -v' now shows more detailed info (from repo-cache)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 15:48:02 +00:00
Oliver Tappe c9acc4f8cd * implemented reading of package-infos in BRepositoryCache
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 15:47:20 +00:00
Oliver Tappe 2b6e6760b6 * add listing of repository attributes to 'package_repo list'
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 12:48:02 +00:00
Oliver Tappe 34d56c1bf5 * implemented repository reader and fixed some bugs in writer that
have been exposed during testing of reader

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 20:25:10 +00:00
Oliver Tappe c2388992ec * added embedding of license texts that need approval into repository
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:24:50 +00:00
Oliver Tappe 36d702ec79 * read package attributes before reading the TOC, as that allows to
take action in the content-handler that depend on the values of
  package attributes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:23:43 +00:00
Oliver Tappe d662b8345f * moved BlockBufferCacheNoLock into package kit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:22:31 +00:00
Oliver Tappe c823de957b * minor whitespace cleanup, no functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:20:14 +00:00
Oliver Tappe ad6a8dbe2b Pulled reusable stuff from PackageReaderImpl into new class ReaderImplBase.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 13:09:09 +00:00
Oliver Tappe 05b101b223 Cleanup following up on r40466:
* remove commented methods no longer being used


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-12 22:09:47 +00:00
Oliver Tappe 33bc4425be Largish adjustments to PackagerReaderImpl and package attribute
handling:
* package attributes are now compatible with the low level attribute
  handling of other HPKG attributes (such that 'package dump' now shows 
  package attributes, too)
* dropped type names from hpkg format, the attributes were identified
  by IDs already and this simplifies the code considerably. Type names
  are now handled in BLowLevelPackageHandler only.
* instead of rolling their own mechanism, high-level package attributes 
  handling is now implemented via a corresonding set of 
  AttributeHandler-subclasses
* adjusted package writer to only write package attributes that are
  needed (empty ones are left out)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-12 19:21:37 +00:00
Oliver Tappe 129e6b943f Disallow the use of 'any' as repository architecture
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:40:38 +00:00
Oliver Tappe 45d9aa68ff Fix header guard (in comment)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:09:14 +00:00
Oliver Tappe 84d9977244 * add support to storing names and texts of licenses that require
approval to repository-info

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:07:21 +00:00
Oliver Tappe 4dcc52327b Fix problems in repository writer
* actually write the checksum
* compress the repository info archive, too (handle it as separate
  section)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:05:35 +00:00
Oliver Tappe 91ebce663d Some cleanup, no functional change
* typedef base classes as 'inherited' and use that instead of the
  explicit base class name
* remove superfluous scopes in case blocks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 17:16:35 +00:00
Oliver Tappe 0d68f6afb3 Implemented repository writing:
* fleshed out RepositoryWriterImpl
* renamed BRepositoryHeader to BRepositoryInfo (in accordance with
  BPackageInfo)
* adjusted BRepositoryInfo to be able to parse itself from a
  driver_settings file
* added package_repo binary (only 'create' works as of yet)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 19:11:23 +00:00
Oliver Tappe 8b94d2ff6a * add stubbed RepositoryWriter to build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 20:15:50 +00:00
Oliver Tappe d77c6cd26a * implemented checking of licenses, such that it is no longer possible
to create a package that refers to a license that is not a system
  license or contained in the package
* added package-info flags (currently only approve_license and 
  system_package)
* adjusted package-reader/writer and pkgman accordingly

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 19:50:36 +00:00
Oliver Tappe 79f15e1918 * minor cleanup: respect 80 chars limit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 15:19:26 +00:00
Oliver Tappe 4ee7d007d6 Cleanup:
* PackageWriterImpl no longer accesses members of WriterImplBase 
  directly, but uses getters/setters instead
* package attribute registration has been moved from PackageWriterImpl
  to WriterImplBase, as it will be used in the same manner by the
  RepositoryWriter


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 10:59:38 +00:00
Oliver Tappe f202217364 Refactoring step towards implementation of RepositoryWriter:
* pulled commonly useful parts out of PackageWriterImpl into 
  WriterImplBase
* moved CachedStringTable and related methods into a separate class,
  StringCache, in order to support having more than one string cache
  per package file
* made package attribute section use a string cache, too, as that's
  going to be very useful for repositories
* instead of writing package attributes directly, we now collect
  corresponding PackageAttributes and write those later
* adjusted package reader accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-07 22:25:16 +00:00
Oliver Tappe aaf05784d4 * some rearrangements and renames with respect to public/private
types and defines of HPKG
* added header, magic and version for haiku repository format

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-07 13:04:00 +00:00
Oliver Tappe 884a0b23cb * cage the somewhat ugly duality between TOC and package attributes
section access into the SectionInfo structure, of which 
  PackageReaderImpl now keeps two instances and a pointer to the
  current of these two


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 22:42:56 +00:00
Oliver Tappe fd9c0b3361 * added support for compressing the package attributes section to
PackageWriterImpl
* added my own copyright

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 22:40:10 +00:00
Oliver Tappe ceb993ab40 * rename AsString() methods to ToString() as suggested by Ingo
(following the naming used by other classes)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:53:54 +00:00
Oliver Tappe 6f0278cdc9 Implemented reading of package info attributes from hpkg file
* added kernel-compatible datatypes for reading package info attribute 
  values (PackageInfoAttributeValue.h) - these will be used at a later
  stage by the package-fs to transport those attributes to userland
  when asked to do so (by ioctl)
* implemented parsing of package info attributes in PackageReaderImpl
* added support for compressed package attribute section to 
  PackageReaderImpl
* completed the writing of package info attributes in PackageWriterImpl
  and fixed a couple of bugs exposed by parsing
* adjusted 'package list' to show the package info attributes as they
  are found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:43:07 +00:00
Oliver Tappe 531d191219 * made resolvable expression operator an enum instead of a string
* fixed a couple of copy'n'paste bugs during parsing of resolvable
  expression lists (they were all added as 'requires')


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:34:19 +00:00
Oliver Tappe 68dc1eb6ad * implemented writing of package attributes to hpkg file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 22:01:44 +00:00
Oliver Tappe 2f7778f375 * added some missing method implementations in BPackageResolvable
and BPackageResolvableExpression
* switched GetAsString() to a AsString() as that's much more convenient
  and nothing can go wrong anyway


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 22:01:17 +00:00
Oliver Tappe cb16f69582 * fix incorrect positioning when parsing minor version string
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 21:57:52 +00:00
Oliver Tappe bc1bd8bac0 * updated copyright section for NaturalCompare according to commit
logs (the OpenTracker license doesn't apply since NaturalCompare
  was never part of OpenTracker).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 11:25:36 +00:00
Oliver Tappe 7fd711ef99 * refactored PackageWriter(Impl) to no longer print anything itself,
but publish that info through a BPackageWriterListener
* adjusted 'package create' to print a package summary by default and 
  more verbose info upon request.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-31 15:43:33 +00:00
Oliver Tappe 15a5c3f7d9 * follow hint by Axel: drop FDCloser and use shared class
FileDescriptorCloser instead


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-31 09:40:37 +00:00
Oliver Tappe ae53f5526b Fixed an oversight of yesterday's restructuring:
* FDCloser is private, so it should live in BPackageKit::BHPKG::BPrivate
* adjusted 'package' binary to no longer use FDCloser (trivial)
* minor cleanup in command_extract.cpp

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-31 08:50:37 +00:00
Oliver Tappe 95d84e4176 * attributed copyright in all public HPKG headers to Haiku, Inc.
* added my own copyright to a couple of files that I changed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-30 15:15:33 +00:00
Oliver Tappe 5fb1c6ff1f Refactored hpkg implementation to provide some separation between
public and private API (still far from ideal, but a start):
* moved several HPKG-classes into the public namespace BPackageKit::HPKG
* added fImpl-wrappers around PackageReader and PackageWriter to hide
  most of the gory details
* adjusted 'package'-binary and packagefs accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-30 15:05:38 +00:00
Oliver Tappe 3aeae97f65 * added type-support to BPackageResolvable
* split BPackageResolvable, BPackageResolvableExpression
  and BPackageVersion into separate files


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-29 17:59:58 +00:00
Oliver Tappe 30222ff141 Completed PackageInfo-parser and fleshed out BPackageVersion, BPackageProvision and BPackageRequirement.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-28 23:36:08 +00:00
Oliver Tappe a2ad60869d * adjusted to earlier move of NaturalCompare() to libshared.a
(wasn't broken, it's just a bit clearer now).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-28 12:24:45 +00:00
Oliver Tappe 9daff3323b * moved NaturalCompare() from libtracker.so to libshared.a, in order
to make it available elsewhere


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-28 11:05:26 +00:00
Oliver Tappe 0d6b3b20e1 More work on package kit:
* added class BPackageInfo, which contains packaging attributes of
  a package (the values relevant for package management) 
* implemented parser (mostly) for reading a BPackageInfo from a config
  file (.PackageInfo) in order to pass them on to the PackageWriter 
  when creating a package
* pulled hpkg-related stuff from bin/package into the package kit
* adjusted packagefs-Volume to skip .PackageInfo files when populating
  the mountpoint, as those files shouldn't appear as part of an
  activated package


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-27 23:17:03 +00:00
Oliver Tappe 733c783dc9 more work on package kit:
* rip BRepositoryHeader out of BRepositoryConfig and add support
  for it to BRepositoryCache
* implement repository removal
* some minor cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-25 19:36:09 +00:00
Oliver Tappe 7d7ed9bf4b Mostly style-related changes to package kit:
* drop 'Haiku' namespace
* rename 'Package' namespace to 'BPackageKit'
* renamed all public classes to begin with a 'B'
* renamed BPackageKit::Roster to BPackageKit::BPackageRoster to not
  clash with the BRoster from the application kit.
* fix some instances of public headers including private ones

Some functional changes, too:
* JobQueue now removes and deletes dependants of failed jobs 
  automatically
* JobQueue supports waiting for jobs to become runnable
* added a couple of InitCheck() methods where they make sense
  and invoke those in users of these classes



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-25 17:07:27 +00:00
Oliver Tappe 35edda8f0b * more work on the package kit, repositories can now be added and
refreshed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-24 20:48:03 +00:00
Oliver Tappe 77a8a5cce3 * added B_COMMON_CACHE_DIRECTORY to find_directory()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-24 20:42:48 +00:00
Oliver Tappe 11a4ecfd82 * added support for interactive decisions to package kit and pkgman
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-22 19:30:21 +00:00
Oliver Tappe 500bb6305c * WIP-commit of the first parts of the package kit and the pkgman
(console-)tool


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-21 22:18:58 +00:00
Oliver Tappe 8e407ca0e8 * err, 40255 was missing the essential part, actually
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-20 20:55:45 +00:00
Oliver Tappe 84f05bd08b * fix build problem on Haiku hosts caused by recent move of
ObjectList.h into public header space


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-20 18:52:21 +00:00
Oliver Tappe 81b0e79a7b * adjusted 'message' to be able to deal with more than a single message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-20 13:17:34 +00:00
Oliver Tappe 915a7b8c24 Make BObjectList<> publically available:
* cleaned up ObjectList.h
* switched several uses of new() to new(std::nothrow)
* moved ugly AsBList() hack into BObjectList<>::Private class and
  adjusted all callers accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-20 12:09:16 +00:00
Oliver Tappe 137c5fe2ba * add implementation of bindfs, which can be used to bind-mount
a folder to some other place in the filesystem hierarchy
* add helper function to VFS that encapsulates the "conversion" of a
  vnode-pointer to a fs_vnode-pointer (used by bindfs)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-16 16:33:11 +00:00
Oliver Tappe 1f70af0957 * round up the value put into st_blocks
* inject modification time of package folder into root folder of
  package-fs


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-13 15:20:55 +00:00
Oliver Tappe 80ddd8dafc * Volume::Mount(): fix KDL in case the volume-name was missing from
the mount parameters
* packagefs_read_stat(): put some sane value into st_blocks

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 22:01:03 +00:00
Oliver Tappe 4ca2f6909f * added support to packagefs for picking up its volume name from the
mount parameters - there doesn't seem to be a way for a filesystem
  to access the path to which it was mounted, is there?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 20:11:13 +00:00
Oliver Tappe 5cf8a6abc4 * rename 'domain'-parameter to 'packages', as that's less generic
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 18:06:04 +00:00
Oliver Tappe 6f8d1ab089 * implement fetching of initial domain from the mount parameters in
order to be able to mount packages from somewhere else than
  '/boot/common/packages' (squashes a TODO)
* squashed another TODO about needing to remove nodes of already 
  installed packages if anything goes wrong during the activation
  of a package domain
* fix what to me looks like a bug in Volume::AddPackageDomainJob::Do(),
  fDomain is accessed unconditionally in the destructor, so NULLing
  it here is bad (it doesn't make sense from a reference-passing POV
  either). The problem never showed as this code is never being executed
  currently (no way to add additional package domains as of yet)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 14:56:41 +00:00
Oliver Tappe b29f1f4498 * support "." as parameter when creating a package, in order to
simplify creating a package for the contents of the current folder

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 14:45:57 +00:00
Oliver Tappe 170c1cc032 * fix check in PackageWriter against ".."
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 14:28:58 +00:00
Oliver Tappe afd785cf43 * fix build of app-server in debug mode - thanks to Timothy Brown
(stimut) for the hint that it was broken

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-10 13:37:45 +00:00
Oliver Tappe db03311342 Closing #7056:
* inherit umask of calling process to images loaded via exec...()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 19:12:19 +00:00
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
Oliver Tappe cda7f65b32 * add fseek_test, which exposes a problem described in #3145
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-01 18:56:06 +00:00
Oliver Tappe 08f914dc67 Fix CID-8112 & -8113 (strange pointer arithmetic)
* BShape:: AddShape(): drop manual multiplication in typed pointer 
  arithmetic - addding the number of elements to a typed pointer
  will already move that pointer in steps of sizeof(type). 
The effect of this bug would be overwritten memory somewhere behind the data array.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 15:50:08 +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
Oliver Tappe 420e9637fe Fix CID-10224 (uninitialized member in c'tor):
* drop fShowFocus, as it is only used in a single method
* initialize fHoldValue

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 14:34:26 +00:00
Oliver Tappe 4a08647e39 Fix CID-4185 (expression can't be true):
* drop superfluous checking of uint32 < 0

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 14:25:05 +00:00
Oliver Tappe e9bcfa8975 Fix CID-10211 (uninitialized member in c'tor):
* fDropIndex should be initialized

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 14:21:30 +00:00
Oliver Tappe ce5bc205b1 * drop TODO as it doesn't apply - catalogs have nothing to do with ICU
and there are no catalog-specializations for encoding or currency

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 14:01:11 +00:00
Oliver Tappe fc6502a69f Fix CID-10337 (unreachable code):
* only return the catalog if it isn't NULL, thus allowing the loop 
  to potentially increase the loop var - in turn making code reachable
  that wasn't before


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-26 13:58:57 +00:00
Oliver Tappe cac8f7d4d3 Fix CID-10553:
* avoid possible use of deleted catalog (didn't occur because we
  currently only have a single type of catalog add-on)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-22 23:04:28 +00:00
Oliver Tappe 0119051c93 Fix CID-2358:
* check result of BMessage::FindString() (plus more ...)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-22 22:44:31 +00:00
Oliver Tappe c905e535a2 Fix CID-5982-5985:
* assign arrays members explicitly instead in initialization list


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-22 22:39:17 +00:00
Oliver Tappe abd80e8a97 Fix CID-9827:
* the unarchival constructor didn't initialize some members

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-22 22:08:33 +00:00
Oliver Tappe aa754a906b Fix CID-2460:
* check result of BMessage::FindString() (plus more ...)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-22 21:41:10 +00:00
Oliver Tappe b27cf34dc1 Close #6969 (warning about redundant declarations):
* drop function declarations from wctype.h which are already in wchar.h

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-21 23:13:47 +00:00
Oliver Tappe eaab4bd5e9 Fix #6758:
* adjust TruncTimeBase() in libtracker's WidgetAttributeText to use
  the BString-based versions of BLocale's date formatting methods
* restored the 6 different formats Tracker used to try and fit into
  a date column (i. e. it now behaves pretty much as it did before the 
  introduction of the Locale Kit)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 15:22:40 +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 bc3791e867 * add symbolic constants for the langinfo constants, as that's what
is required by the POSIX specs (and some perl tests rely on it)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-13 00:22:40 +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 612333a601 Fix crash reported in #6805:
* check if we actually have a selected item

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-09 22:08:35 +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
Oliver Tappe 6fd2f4a0d1 One more monster commit (sorry ...) concerning the Locale Kit:
* extracted new class BFormattingConventions from BCountry, which
  manages the formatting conventions from a given locale and 
  allows to get/set the four different date/time formats supported
  by ICU-locales as well as number and monetary formats
* overhauled the Locale preflet:
  + drop editing features for all formats, since I don't think
    they do not make much sense to have in a prefs GUI - being
    able to select from the existing locales should be good
    enough. Please note that you can still change the formats
    programmatically in an application.
  + renamed the 'Countries' tab to 'Formatting'
  + the locale formatting conventions list in the 'Formatting'
    tab is now hierarchical for easier access (less scrolling)
  + fixed functionality of 'Revert' and 'Defaults' buttons
  + added support for using the month/day-names of your preferred
    language during date formatting
* adjusted BLocale to ask BFormattingConventions for the current
  formats when formatting dates and times and to offer 4
  different format styles (full, long, medium and short).
* adjust all classes formatting dates/times to pick the 
  appropriate format style
* BLocaleRoster no longer directly archives/unarchives the 
  individual formatting conventions but delegates that to
  BFormattingConventions
    

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 12:57:55 +00:00
Oliver Tappe b0c3ed0447 * fix a couple of typos
* removed a sentence that's no longer true

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 17:32:29 +00:00
Oliver Tappe 6f43fabafb * some cleanup in BLocaleRoster
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-20 09:23:06 +00:00
Oliver Tappe c0ea325df9 * fix sorting of languages in ReadOnlyBootPrompt
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-19 21:59:58 +00:00
Oliver Tappe d1d8fda637 Next step of Locale Kit refactoring:
* BLocale now keeps language and country completely separate and
  mixes the formatting conventions into the current language's locale
  when formatting dates and times (needs to be done for number- and
  currency-formatting, too, since the digits may not be in the
  preferred language)
* optimized fetching of the flag icons such that they are all loaded
  in one go (by the locale roster) - this alone speeds up the Locale
  preflet considerably
* worked on fixing the language confusion in the Locale preflet
* fixed a couple of bugs in the Locale preflet that would lead to
  illegal characters being displayed in the date-subpart menus


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-19 21:36:44 +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
Oliver Tappe fdb863b626 * added tests for wcwidth() to locale_test that expose the pretty
drastic failure to handle anything else than ascii chars.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 15:07:36 +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 4a0b7d1bd0 * don't try to check __isctype((char)255), as it will clash with
neutral/identity value at -1 (EOF)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 15:51:37 +00:00
Oliver Tappe 611e1071a7 * add ctype-related tests that expose the cause of #6599
* fix warnings

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 14:31:13 +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 5d46644f18 * added tests for localized numerical formatting via printf()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-12 17:21:28 +00:00