true friend
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 909
Online Friends 1.0
Online is a speed focused program to give a textual display of your friends/buddies currently logged onto a unix host. more>>
Online is a speed focused program to give a textual display of your friends/buddies currently logged onto a unix host.
This program is distributed in the hope that it will be useful for everyone, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
You should have received a copy of the GNU General Public License along with this program; if not, write to the
Free Software Foundation, Inc.
59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
<<lessThis program is distributed in the hope that it will be useful for everyone, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
You should have received a copy of the GNU General Public License along with this program; if not, write to the
Free Software Foundation, Inc.
59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
Download (0.007MB)
Added: 2006-06-27 License: GPL (GNU General Public License) Price:
1214 downloads
MySpace Friend Renamer .86
MySpace Friend Renamer provides an extension that allows you to rename your MySpace Friends. more>>
MySpace Friend Renamer provides an extension that allows you to rename your MySpace Friends.
This adds a right click option to Myspace Pages and allows you to change the display name for any of your friends. Handy if your friends change names often, or pick strange and obscure names.
Also in response to comments. If a tab is not in focus when the page loads, the extension will not rename.
I believe that the extension will conflict with other extensions that change pages when they load. If I find a better way to do it, I will change it.
<<lessThis adds a right click option to Myspace Pages and allows you to change the display name for any of your friends. Handy if your friends change names often, or pick strange and obscure names.
Also in response to comments. If a tab is not in focus when the page loads, the extension will not rename.
I believe that the extension will conflict with other extensions that change pages when they load. If I find a better way to do it, I will change it.
Download (0.004MB)
Added: 2007-04-05 License: MPL (Mozilla Public License) Price:
934 downloads
True Color Picker 2007-07-06
True Color Picker is a PHP class that can be used to present a palette to let the user pick colors. more>>
True Color Picker is a PHP class that can be used to present a palette to let the user pick colors.
It displays an image with all the tones for the user to pick by clicking in an image point with the desired tone similar to Photoshop.
It uses AJAX to update the picker boxes without reloading the page.
<<lessIt displays an image with all the tones for the user to pick by clicking in an image point with the desired tone similar to Photoshop.
It uses AJAX to update the picker boxes without reloading the page.
Download (MB)
Added: 2007-07-13 License: Freely Distributable Price:
837 downloads
Netscape Friends Activity Sidebar 1.1
Netscape Friends Activity Sidebar is a Firefox extension that helps you keep tabs about your friends stories on Netscape... more>>
Netscape Friends Activity Sidebar is a Firefox extension that helps you keep tabs on what stories your Netscape friends are submitting, commenting, and voting on. A new toolbar button (shown in the extension preview image) features Chad, the older, more mature brother of AOLs little yellow chat mascot. When there is new activity by your friends (i.e., a new comment, story submission, or vote, depending on your settings), the button will be activated and Chad will send a friendly wave your way. Clicking on the activated button will open a list of your friends activity in the sidebar, allowing you to easily browse their stories and comments. Each time you view your friends activity, you will only be shown activity that is new since the last time you opened the sidebar.
Note: The sidebar limits activity to five items for each friend. If there are more than five items to view, a "View all of Chads activity" link will be shown at the bottom of the friends section. You can always view all of a friends activity by clicking on their name or avatar.
To make use of this extension, you must be logged into Netscape.com. If you do not have a Netscape.com account, sign up at http://www.netscape.com/signup Accounts are free, and it only takes a few minutes to create one. Once you have a Netscape.com account, you can submit stories and videos, vote for other peoples stories, rate comments, comment on stories you find interesting, as well as use this extension.
<<lessNote: The sidebar limits activity to five items for each friend. If there are more than five items to view, a "View all of Chads activity" link will be shown at the bottom of the friends section. You can always view all of a friends activity by clicking on their name or avatar.
To make use of this extension, you must be logged into Netscape.com. If you do not have a Netscape.com account, sign up at http://www.netscape.com/signup Accounts are free, and it only takes a few minutes to create one. Once you have a Netscape.com account, you can submit stories and videos, vote for other peoples stories, rate comments, comment on stories you find interesting, as well as use this extension.
Download (0.016MB)
Added: 2007-05-29 License: MPL (Mozilla Public License) Price:
878 downloads
TryChess 0.2
TryChess project is a multiplayer online chess game. more>>
TryChess project is a multiplayer online chess game.
First it was only a test to try PHP5s news features. But it started growing and became a nearly complete chess game with many features.
Main features:
- Multiplayer game
- Preview move
- Hostory of moves
- Check and Check mate detection
- Browser indepentant (even lynx works, but does not look so good :) )
- Special moves supported partialy (rochade,...)
- Top Score list
- Invite friend function
- "Whos online?"
- Forum
- Admin functions
- Search for users
<<lessFirst it was only a test to try PHP5s news features. But it started growing and became a nearly complete chess game with many features.
Main features:
- Multiplayer game
- Preview move
- Hostory of moves
- Check and Check mate detection
- Browser indepentant (even lynx works, but does not look so good :) )
- Special moves supported partialy (rochade,...)
- Top Score list
- Invite friend function
- "Whos online?"
- Forum
- Admin functions
- Search for users
Download (MB)
Added: 2006-11-21 License: GPL (GNU General Public License) Price:
1068 downloads
Livejournal Friends Checker 0.8.1.1
Livejournal Friends Checker places an icon in the lower left corner of your browser when one of your friends post. more>>
Livejournal Friends Checker is a Firefox extension that places an icon in the lower left corner of your browser when one of your friends post. Only works with paid accounts.
*** This only work for paid users (on livejournal.com). ***
This code is released under the BSD license. I make use of Pajs md5
library (which is released under the BSD license). You can get the code
for the md5 library at http://pajhome.org.uk/crypt/md5/
<<less*** This only work for paid users (on livejournal.com). ***
This code is released under the BSD license. I make use of Pajs md5
library (which is released under the BSD license). You can get the code
for the md5 library at http://pajhome.org.uk/crypt/md5/
Download (0.060MB)
Added: 2007-06-05 License: BSD License Price:
873 downloads
Friend & Love 1.1.6.1
Friend & Love is a dating system script. more>>
Friend & Love project is a dating system script. Its features include profiles, adult profiles, sending of kisses, notes, emails, and winks, viewing of tracks, a display of whos online and whos new, and profile searches.
What the script will do for you
- Checks server requirement.
- Checks all files, directories are original, current version and present on your sever after upload.
- Checks if any file or directory has been corrupted during the upload.
- Checks files and directories permission.
- Setup database.
- Setup the simple configuration file for you.
What the script will not do
- Not help you to upgrade from previous version (Ubolratana1.1.5SP). This one supports only fresh install. We recommend you to not use this script for live website during beta version.
- Not help you for full configuration. You have to download config.php to change some variables by yourself.
Enhancements:
- This release removes the md5 hash check and enhances the installer.
- It includes newsletter registration.
- Some unused images have been removed.
- Minor bugs in several files have been fixed.
<<lessWhat the script will do for you
- Checks server requirement.
- Checks all files, directories are original, current version and present on your sever after upload.
- Checks if any file or directory has been corrupted during the upload.
- Checks files and directories permission.
- Setup database.
- Setup the simple configuration file for you.
What the script will not do
- Not help you to upgrade from previous version (Ubolratana1.1.5SP). This one supports only fresh install. We recommend you to not use this script for live website during beta version.
- Not help you for full configuration. You have to download config.php to change some variables by yourself.
Enhancements:
- This release removes the md5 hash check and enhances the installer.
- It includes newsletter registration.
- Some unused images have been removed.
- Minor bugs in several files have been fixed.
Download (0.36MB)
Added: 2006-11-17 License: GPL (GNU General Public License) Price:
1074 downloads
RBrainz 0.3.0
RBrainz is a Ruby client library to query the MusicBrainz database using the MusicBrainz XML web service. more>>
RBrainz is a Ruby client library to query the MusicBrainz database using the MusicBrainz XML web service.
RBrainz follows the design of the MusicBrainz client library reference implementation and supports the MusicBrainz XML Metadata Schema Version 1.2.
Usage:
A simple example on how to use RBrainz is shown below. For more detailed instructions see the API documentation.
require rbrainz
include MusicBrainz
# With the ArtistInclude object we can control what
# kind of information the MusicBrainz server will
# include in its answer.
artist_includes = Webservice::ArtistIncludes.new(
:aliases => true,
:releases => [Album, Official],
:artist_rels => true,
:release_rels => true,
:track_rels => true,
:label_rels => true,
:url_rels => true
)
# Query the webservice for the artist with a given ID.
# The result will contain all the information
# specified in artist_includes.
query = Webservice::Query.new
id = c0b2500e-0cef-4130-869d-732b23ed9df5
artist = query.get_artist_by_id(id, artist_includes)
# Display the fetched artist data together with
# all release titles.
print<<less
RBrainz follows the design of the MusicBrainz client library reference implementation and supports the MusicBrainz XML Metadata Schema Version 1.2.
Usage:
A simple example on how to use RBrainz is shown below. For more detailed instructions see the API documentation.
require rbrainz
include MusicBrainz
# With the ArtistInclude object we can control what
# kind of information the MusicBrainz server will
# include in its answer.
artist_includes = Webservice::ArtistIncludes.new(
:aliases => true,
:releases => [Album, Official],
:artist_rels => true,
:release_rels => true,
:track_rels => true,
:label_rels => true,
:url_rels => true
)
# Query the webservice for the artist with a given ID.
# The result will contain all the information
# specified in artist_includes.
query = Webservice::Query.new
id = c0b2500e-0cef-4130-869d-732b23ed9df5
artist = query.get_artist_by_id(id, artist_includes)
# Display the fetched artist data together with
# all release titles.
print<<less
Download (0.070MB)
Added: 2007-08-13 License: BSD License Price:
803 downloads
Security Officers Best Friend 25032007
Security Officers Best Friend (SOBF) is a Security Management and Analysis tool designed to be placed right ontop the SOMAP.org. more>>
Security Officers Best Friend (SOBF) is a Security Management and Analysis tool designed to be placed right ontop the SOMAP.org Repository. The SOBF Tool is currently in development and there is no public download at the moment.
Architecture:
The SOBF tool is written in Java. To run the SOBF Tool you need a Java VM version 1.5 or later. The data used within the tool is stored locally and can be protected accordingly.
It is a main goal to build the tool like an extendable toolset. While all the needed functionality is built into the SOBF tool, it is possible to extend that standard feature set with your own scripts and extentions.
Data Abstraction:
To abstract the database and to access the data more easily the SOBF tool makes use of the Cayenne Framework. The configuration informations are accessible and it is possible to enhance that configuration with your own data views. Such data views can then be used from within your own scripts to enhance the feature set of the SOBF tool.
Database / Storage:
The SOBF Tool currently uses the hsqldb Database engine to store the data. Updates to the Repository can be done without a hassle for the data records are identified by UUIDs as described on the Repositories information page.
The hsqldb stores the data in human readable form. If need be, the data can be extracted from the filesystem accessing the data files directly.
Since the SOBF tool uses the Cayenne Framework to abstract the database layer it is no problem to exchange the hsqldb with any other database system like Derby or PostgreSQL in future releases. This is an important feature for the SOBF tool should help a security officer with his work and not stand in his way. For this reason the SOBF tool should be as integratable into an environment as possible.
Reporting:
We use the Jasper Reports engine to render and print reports
Enhancements:
- This version contains the implementation of the complete Risk Assessment Workflow as described in the SOMAP.org Guide.
- The backup and restore mechanism was enhanced.
- Some changes and updates were made to the Dynamic Reports.
- The application experienced a general spring cleaning.
<<lessArchitecture:
The SOBF tool is written in Java. To run the SOBF Tool you need a Java VM version 1.5 or later. The data used within the tool is stored locally and can be protected accordingly.
It is a main goal to build the tool like an extendable toolset. While all the needed functionality is built into the SOBF tool, it is possible to extend that standard feature set with your own scripts and extentions.
Data Abstraction:
To abstract the database and to access the data more easily the SOBF tool makes use of the Cayenne Framework. The configuration informations are accessible and it is possible to enhance that configuration with your own data views. Such data views can then be used from within your own scripts to enhance the feature set of the SOBF tool.
Database / Storage:
The SOBF Tool currently uses the hsqldb Database engine to store the data. Updates to the Repository can be done without a hassle for the data records are identified by UUIDs as described on the Repositories information page.
The hsqldb stores the data in human readable form. If need be, the data can be extracted from the filesystem accessing the data files directly.
Since the SOBF tool uses the Cayenne Framework to abstract the database layer it is no problem to exchange the hsqldb with any other database system like Derby or PostgreSQL in future releases. This is an important feature for the SOBF tool should help a security officer with his work and not stand in his way. For this reason the SOBF tool should be as integratable into an environment as possible.
Reporting:
We use the Jasper Reports engine to render and print reports
Enhancements:
- This version contains the implementation of the complete Risk Assessment Workflow as described in the SOMAP.org Guide.
- The backup and restore mechanism was enhanced.
- Some changes and updates were made to the Dynamic Reports.
- The application experienced a general spring cleaning.
Download (14.6MB)
Added: 2007-03-25 License: GPL (GNU General Public License) Price:
943 downloads
Other version of Security Officers Best Friend
License:GPL (GNU General Public License)
Struct::Compare 1.0.1
Struct::Compare is a recursive diff for perl structures. more>>
Struct::Compare is a recursive diff for perl structures.
SYNOPSIS
use Struct::Compare;
my $is_different = compare($ref1, $ref2);
Compares two values of any type and structure and returns true if they are the same. It does a deep comparison of the structures, so a hash of a hash of a whatever will be compared correctly.
This is especially useful for writing unit tests for your modules!
PUBLIC FUNCTIONS
$bool = compare($var1, $var2)
Recursively compares $var1 to $var2, returning false if either structure is different than the other at any point. If both are undefined, it returns true as well, because that is considered equal.
<<lessSYNOPSIS
use Struct::Compare;
my $is_different = compare($ref1, $ref2);
Compares two values of any type and structure and returns true if they are the same. It does a deep comparison of the structures, so a hash of a hash of a whatever will be compared correctly.
This is especially useful for writing unit tests for your modules!
PUBLIC FUNCTIONS
$bool = compare($var1, $var2)
Recursively compares $var1 to $var2, returning false if either structure is different than the other at any point. If both are undefined, it returns true as well, because that is considered equal.
Download (0.003MB)
Added: 2007-02-12 License: Perl Artistic License Price:
984 downloads
Group Shell 0.2
Group Shell is a tool to aggregate several remote shells into one. more>>
Group Shell is a tool to aggregate several remote shells into one. It is used to launch an interactive remote shell on many machines at once. Group Shell is written in Python and requires Python ≥ 2.4.
There is a control shell accessible with Ctrl-C that is used to list some information about the current remote shells. It also allows common terminal manipulations like sending a Ctrl-C, Ctrl-Z, Ctrl-D …
The prompt shows the number of listening shells and the number of active shell. A shell is said to be listening if its prompt has returned and it is accepting commands, active shells are those whose connection is still alive. Shells can be individually enabled and disabled.
Here is the transcript of a sample session:
[g ~/gsh]$ ./gsh.py machine{0-9}
[10/10]> date
machine4: ven nov 10 23:26:36 CET 2006
machine7: ven nov 10 23:26:36 CET 2006
machine3: ven nov 10 23:26:36 CET 2006
machine5: ven nov 10 23:26:36 CET 2006
machine9: ven nov 10 23:26:36 CET 2006
machine0: ven nov 10 23:26:36 CET 2006
machine2: ven nov 10 23:26:36 CET 2006
machine1: ven nov 10 23:26:37 CET 2006
machine6: ven nov 10 23:26:37 CET 2006
machine8: ven nov 10 23:26:37 CET 2006
[10/10]>
Now, Ctrl-C is pressed, it triggers the control shell.
(Cmd) help
Documented commands (type help < topic >):
EOF enable list send_eof set_print_first
continue get_print_first quit send_sigint unset_print_first
disable help reconnect send_sigtstp
(Cmd) list
machine0 fd:3 r:3 w:0 active:True enabled:True idle
machine1 fd:4 r:3 w:0 active:True enabled:True idle
machine2 fd:5 r:3 w:0 active:True enabled:True idle
machine3 fd:6 r:3 w:0 active:True enabled:True idle
machine4 fd:7 r:3 w:0 active:True enabled:True idle
machine5 fd:8 r:3 w:0 active:True enabled:True idle
machine6 fd:9 r:3 w:0 active:True enabled:True idle
machine7 fd:10 r:3 w:0 active:True enabled:True idle
machine8 fd:11 r:3 w:0 active:True enabled:True idle
machine9 fd:12 r:3 w:0 active:True enabled:True idle
10 active shells, 0 dead shells, total: 10
(Cmd) quit
[g ~/gsh]$
<<lessThere is a control shell accessible with Ctrl-C that is used to list some information about the current remote shells. It also allows common terminal manipulations like sending a Ctrl-C, Ctrl-Z, Ctrl-D …
The prompt shows the number of listening shells and the number of active shell. A shell is said to be listening if its prompt has returned and it is accepting commands, active shells are those whose connection is still alive. Shells can be individually enabled and disabled.
Here is the transcript of a sample session:
[g ~/gsh]$ ./gsh.py machine{0-9}
[10/10]> date
machine4: ven nov 10 23:26:36 CET 2006
machine7: ven nov 10 23:26:36 CET 2006
machine3: ven nov 10 23:26:36 CET 2006
machine5: ven nov 10 23:26:36 CET 2006
machine9: ven nov 10 23:26:36 CET 2006
machine0: ven nov 10 23:26:36 CET 2006
machine2: ven nov 10 23:26:36 CET 2006
machine1: ven nov 10 23:26:37 CET 2006
machine6: ven nov 10 23:26:37 CET 2006
machine8: ven nov 10 23:26:37 CET 2006
[10/10]>
Now, Ctrl-C is pressed, it triggers the control shell.
(Cmd) help
Documented commands (type help < topic >):
EOF enable list send_eof set_print_first
continue get_print_first quit send_sigint unset_print_first
disable help reconnect send_sigtstp
(Cmd) list
machine0 fd:3 r:3 w:0 active:True enabled:True idle
machine1 fd:4 r:3 w:0 active:True enabled:True idle
machine2 fd:5 r:3 w:0 active:True enabled:True idle
machine3 fd:6 r:3 w:0 active:True enabled:True idle
machine4 fd:7 r:3 w:0 active:True enabled:True idle
machine5 fd:8 r:3 w:0 active:True enabled:True idle
machine6 fd:9 r:3 w:0 active:True enabled:True idle
machine7 fd:10 r:3 w:0 active:True enabled:True idle
machine8 fd:11 r:3 w:0 active:True enabled:True idle
machine9 fd:12 r:3 w:0 active:True enabled:True idle
10 active shells, 0 dead shells, total: 10
(Cmd) quit
[g ~/gsh]$
Download (0.024MB)
Added: 2007-08-02 License: GPL (GNU General Public License) Price:
813 downloads
AuCDtect for Linux X86 0.8 Release 3
A free console program for determining the authenticity of musical CDs. more>> AuCDtect - is a free console program for determining the authenticity of musical CDs. By evaluating the character of audio data a CD contains, Tau Analyzer can distinguish between original studio-based recordings and those that have been "reconstructed" using a lossy audio source, such as MP3. Console app.<<less
Download (28KB)
Added: 2009-04-03 License: Freeware Price: Free
206 downloads
Feed Me Links 1.0
Feed Me Links is a Web application for managing and sharing links. more>>
Feed Me Links is a Web application for managing and sharing links.
Feed Me Links provides many interesting features such as tagging, comments, RSS feeds, tag clouds, friend lists, a REST API for exporting, a browser sidebar, and Firefox and IE favorites import.
<<lessFeed Me Links provides many interesting features such as tagging, comments, RSS feeds, tag clouds, friend lists, a REST API for exporting, a browser sidebar, and Firefox and IE favorites import.
Download (0.15MB)
Added: 2005-11-22 License: MIT/X Consortium License Price:
1432 downloads
Search::QueryParser 0.91
Search::QueryParser parses a query string into a data structure suitable for external search engines. more>>
Search::QueryParser parses a query string into a data structure suitable for external search engines.
SYNOPSIS
my $qp = new Search::QueryParser;
my $s = +mandatoryWord -excludedWord +field:word "exact phrase";
my $query = $qp->parse($s) or die "Error in query : " . $qp->err;
$someIndexer->search($query);
# query with comparison operators and implicit plus (second arg is true)
$query = $qp->parse("txt~^foo.* date>=01.01.2001 date<<less
SYNOPSIS
my $qp = new Search::QueryParser;
my $s = +mandatoryWord -excludedWord +field:word "exact phrase";
my $query = $qp->parse($s) or die "Error in query : " . $qp->err;
$someIndexer->search($query);
# query with comparison operators and implicit plus (second arg is true)
$query = $qp->parse("txt~^foo.* date>=01.01.2001 date<<less
Download (0.007MB)
Added: 2006-06-15 License: Perl Artistic License Price:
1226 downloads
ustr 1.0.1
ustr (Micro string library) is a string API for C. more>>
ustr (Micro string library) is a string API for C. A few years ago now I wrote a very extensive String API for C, called Vstr, it was designed to perform extremely well for IO like patterns as that was my planned usage (for instance And-httpd, my Web server). It works very well, for that usage.
Also due to the extensivness of the API I basically used it everywhere, even though there are some things it is somewhat "overkill" for, and I wanted other people to use it so I didnt have to resort to using string.h when creating patches for their code. However more than a few C coders I speak to have one of a few reasons why they dont want to use Vstr. The ustr API should solve all of these problems, and hopefully fill in all the gaps where Vstr is the 500lb hammer.
A Significant example of usage, with comments:
Ustr *s1 = USTR(""); /* == "", always works */
Ustr *s2 = ustr_dup(s1); /* == "", always works */
Ustr *s3 = ustr_dup_cstr(""); /* == "", always works */
ustr_cmp_eq(s1, s2); /* == TRUE */
ustr_cmp_eq(s1, s3); /* == TRUE */
if (ustr_shared(s2)) /* This is TRUE, as a constant/read-only string cannot be freed */
/* whatever */ ;
if (ustr_ro(s2)) /* This is TRUE */
/* whatever */ ;
if (!ustr_add_fmt(&s2, "%s %d %c%d", "x", 4, 0, 8))
/* error */ ;
if (ustr_owner(s1)) /* This will return FALSE, as noone owns the "" read-only string */
/* whatever */ ;
if (ustr_owner(s2)) /* This will return TRUE, as weve now got allocated memory for s2 */
/* whatever */ ;
foo_API(ustr_cstr(s1), ustr_len(s1)); /* == "", 0 */
foo_API(ustr_cstr(s2), ustr_len(s2)); /* == "x 4 008", 6 */
s3 = ustr_dup(s2); /* dont need to free s3 as its empty */
/* dont need to check for errors as s2 == s3 */
if (ustr_owner(s2)) /* This will now return FALSE, weve got two references: s2 and s3 */
/* whatever */ ;
if (ustr_shared(s2)) /* This is FALSE, its a non-shared string referenced by both s2 and s3 */
/* whatever */ ;
ustr_free(s2); /* freed one reference to the data pointed to by both s2 and s3 */
ustr_set_share(s2); /* Make s2/s3 "shared" data,
so it always has infinite references */
if (ustr_shared(s2)) /* This is TRUE */
/* whatever */ ;
if (ustr_ro(s2)) /* This is FALSE */
/* whatever */ ;
s3 = ustr_dup(s2); /* This is the same as s3 = s2; */
ustr_free(s2); /* These do nothing */
ustr_free(s2);
ustr_free(s2);
ustr_free(s2);
if (!ustr_add_cstr(&s3, "abcd"))
/* error */ ;
ustr_add_cstr(&s3, "1234");
ustr_add_cstr(&s3, "xyz");
if (ustr_enomem(s3)) /* check for errors on the last 2 ustr_add_cstr() functions at once
ustr_owner(x) has to be true for this to be reliable,
hence the explicit first check */
/* error */ ;
ustr_set_owner(s2); /* Make s2 be "non-shared" and have a single owner */
ustr_set_owner(s1); /* This fails, as you cant make a read-only string be "non-shared" */
ustr_sc_del(&s2); /* freed s2 and set s2 = USTR("") */
ustr_cmp_eq(s1, s2); /* == TRUE */
s2 = USTR1(x0b, "Hello world"); /* Constant string with data */
if (ustr_shared(s2)) /* This is TRUE */
/* whatever */ ;
if (ustr_ro(s2)) /* This is TRUE */
/* whatever */ ;
/* dont need to "free" anything else */
Enhancements:
- A lot of new functions were added, such as insert, replace, split, substitute, and io_getdelim.
- Documentation improvements were made.
- Build fixes were made for Win32.
<<lessAlso due to the extensivness of the API I basically used it everywhere, even though there are some things it is somewhat "overkill" for, and I wanted other people to use it so I didnt have to resort to using string.h when creating patches for their code. However more than a few C coders I speak to have one of a few reasons why they dont want to use Vstr. The ustr API should solve all of these problems, and hopefully fill in all the gaps where Vstr is the 500lb hammer.
A Significant example of usage, with comments:
Ustr *s1 = USTR(""); /* == "", always works */
Ustr *s2 = ustr_dup(s1); /* == "", always works */
Ustr *s3 = ustr_dup_cstr(""); /* == "", always works */
ustr_cmp_eq(s1, s2); /* == TRUE */
ustr_cmp_eq(s1, s3); /* == TRUE */
if (ustr_shared(s2)) /* This is TRUE, as a constant/read-only string cannot be freed */
/* whatever */ ;
if (ustr_ro(s2)) /* This is TRUE */
/* whatever */ ;
if (!ustr_add_fmt(&s2, "%s %d %c%d", "x", 4, 0, 8))
/* error */ ;
if (ustr_owner(s1)) /* This will return FALSE, as noone owns the "" read-only string */
/* whatever */ ;
if (ustr_owner(s2)) /* This will return TRUE, as weve now got allocated memory for s2 */
/* whatever */ ;
foo_API(ustr_cstr(s1), ustr_len(s1)); /* == "", 0 */
foo_API(ustr_cstr(s2), ustr_len(s2)); /* == "x 4 008", 6 */
s3 = ustr_dup(s2); /* dont need to free s3 as its empty */
/* dont need to check for errors as s2 == s3 */
if (ustr_owner(s2)) /* This will now return FALSE, weve got two references: s2 and s3 */
/* whatever */ ;
if (ustr_shared(s2)) /* This is FALSE, its a non-shared string referenced by both s2 and s3 */
/* whatever */ ;
ustr_free(s2); /* freed one reference to the data pointed to by both s2 and s3 */
ustr_set_share(s2); /* Make s2/s3 "shared" data,
so it always has infinite references */
if (ustr_shared(s2)) /* This is TRUE */
/* whatever */ ;
if (ustr_ro(s2)) /* This is FALSE */
/* whatever */ ;
s3 = ustr_dup(s2); /* This is the same as s3 = s2; */
ustr_free(s2); /* These do nothing */
ustr_free(s2);
ustr_free(s2);
ustr_free(s2);
if (!ustr_add_cstr(&s3, "abcd"))
/* error */ ;
ustr_add_cstr(&s3, "1234");
ustr_add_cstr(&s3, "xyz");
if (ustr_enomem(s3)) /* check for errors on the last 2 ustr_add_cstr() functions at once
ustr_owner(x) has to be true for this to be reliable,
hence the explicit first check */
/* error */ ;
ustr_set_owner(s2); /* Make s2 be "non-shared" and have a single owner */
ustr_set_owner(s1); /* This fails, as you cant make a read-only string be "non-shared" */
ustr_sc_del(&s2); /* freed s2 and set s2 = USTR("") */
ustr_cmp_eq(s1, s2); /* == TRUE */
s2 = USTR1(x0b, "Hello world"); /* Constant string with data */
if (ustr_shared(s2)) /* This is TRUE */
/* whatever */ ;
if (ustr_ro(s2)) /* This is TRUE */
/* whatever */ ;
/* dont need to "free" anything else */
Enhancements:
- A lot of new functions were added, such as insert, replace, split, substitute, and io_getdelim.
- Documentation improvements were made.
- Build fixes were made for Win32.
Download (0.80MB)
Added: 2007-08-06 License: MIT/X Consortium License Price:
809 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above true friend search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Contact Us | Submit Software | Advertise with us | Terms and Conditions | Privacy Policy | Publisher List | Browse Categories | Blog | Discussion Board
Copyright (c)2005-2009 WareSeeker.com. All rights reserved.
Copyright (c)2005-2009 WareSeeker.com. All rights reserved.