03-31-2011
I am calculating the length of strings and substracting one from another.
For calculating length mbrlen() function is used, is it this function which is causing the problem in diff. locales.
How can i make my function return same value in both platforms?
@DGPickett : Are my characters getting in high bit which is creating problem?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I need to split a string, either using awk or cut or basic unix commands (no programming) , with a multibyte charectar as a delimeter.
Ex:
abcd-efgh-ijkl
split by -efgh- to get two segments abcd & ijkl
Is it possible?
Thanks
A.H.S (1 Reply)
Discussion started by: azmathshaikh
1 Replies
2. Shell Programming and Scripting
Hello,
Is there any UNIX utility/command/executable that will convert mutlibyte characters to standard single byte ASCII characters in a given file?
and
Is there any UNIX utility/command/executable that will recognize multibyte characters in a given file name?
The typical multibyte... (8 Replies)
Discussion started by: jerardfjay
8 Replies
3. Shell Programming and Scripting
Hi! I'm trying to separate text into sentences, like this:
$pattern = "/(|]|,)**/";
preg_match_all($pattern, $text, $matches);
This works fine unless the text contains multibyte characters, like "åäö". How can I make this work with these exotic characters? (2 Replies)
Discussion started by: Ilja
2 Replies
4. Shell Programming and Scripting
Hi! I'm trying to separate text into sentences, like this:
$pattern = "/(|]|,)**/";
preg_match_all($pattern, $text, $matches);
This works fine unless the text contains multibyte characters, like "åäö". How can I make this work with these exotic characters?
An example phrase that doesn't match:... (1 Reply)
Discussion started by: Ilja
1 Replies
5. Shell Programming and Scripting
Hi,
I have one doubt over sftp.
I am trnasferring a file from server1 to server2 using sftp.
The size of the file shows different in file 1 and file2 after sftp even though it shows same number of byte transferred. I don't understand the problem.
For example:
I have file1 having size... (3 Replies)
Discussion started by: siba.s.nayak
3 Replies
6. Programming
Compiling xpp (The X Printing Panel) on SL6 (RHEL6 essentially):
xpp.cxx: In constructor ‘printFiles::printFiles(int, char**, int&)’:
xpp.cxx:200: error: invalid conversion from ‘const char*’ to ‘char*’
The same error with all c++ constructors - gcc 4.4.4.
If anyone can throw any light on... (8 Replies)
Discussion started by: GSO
8 Replies
7. Shell Programming and Scripting
Hello all
Can anyone help me to solve the below issue
I want to take user input with space separated .The number of inputs can be variable
like if user inputs
1 2 3 4
ouput will stored in as array a where i=4 and I can retreive the value like a =3
any thoughts how to do it
... (2 Replies)
Discussion started by: Pratik4891
2 Replies
8. Shell Programming and Scripting
Hello,
I have two directories - prev and current . They both have same multiple subdirectories and files. Now the current directory can have some updated files and some new files added that is not in prev. I want to find the list of file names that differ. I am doing this because i can not... (2 Replies)
Discussion started by: jakSun8
2 Replies
9. Shell Programming and Scripting
I am using Solaris8, userA's shell '/usr/ace/prog/sdshell', AppuserB's shell '/bin/ksh'.
serverT:/home/userA>LC_CTYPE=iso_8859_1; export LC_CTYPE; vtemp='userA variable'; export vtemp
serverT:/home/userA>echo "LC_CTYPE=$LC_CTYPE, vtemp=$vtemp";
LC_CTYPE=iso_8859_1, vtemp=userA... (4 Replies)
Discussion started by: kchinnam
4 Replies
10. Shell Programming and Scripting
Hi
I have a requirement to insert a dot "." after a position in each line, say 110th position.
For which, I have written the below command.
cat filename | sed 's/./&\./110' > new_filename
The code is working fine, but when we have multi byte (2 or 3) characters in the input file, the... (3 Replies)
Discussion started by: tostay2003
3 Replies
LEARN ABOUT MOJAVE
fungetrune
RUNE(3) BSD Library Functions Manual RUNE(3)
NAME
setrunelocale, setinvalidrune, sgetrune, sputrune, fgetrune, fungetrune, fputrune -- rune support for C
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <rune.h>
#include <errno.h>
int
setrunelocale(char *locale);
void
setinvalidrune(rune_t rune);
rune_t
sgetrune(const char *string, size_t n, char const **result);
int
sputrune(rune_t rune, char *string, size_t n, char **result);
#include <stdio.h>
long
fgetrune(FILE *stream);
int
fungetrune(rune_t rune, FILE *stream);
int
fputrune(rune_t rune, FILE *stream);
DESCRIPTION
The 4.4BSD ``rune'' functions have been deprecated in favour of the ISO C99 extended multibyte and wide character facilities and should not
be used in new applications. Consider using setlocale(3), mbrtowc(3), wcrtomb(3), fgetwc(3), ungetwc(3), and fputwc(3) instead.
The setrunelocale() controls the type of encoding used to represent runes as multibyte strings as well as the properties of the runes as
defined in <ctype.h>. The locale argument indicates which locale to load. If the locale is successfully loaded, 0 is returned, otherwise an
errno value is returned to indicate the type of error.
The setinvalidrune() function sets the value of the global value _INVALID_RUNE to be rune.
The sgetrune() function tries to read a single multibyte character from string, which is at most n bytes long. If sgetrune() is successful,
the rune is returned. If result is not NULL, *result will point to the first byte which was not converted in string. If the first n bytes
of string do not describe a full multibyte character, _INVALID_RUNE is returned and *result will point to string. If there is an encoding
error at the start of string, _INVALID_RUNE is returned and *result will point to the second character of string.
the sputrune() function tries to encode rune as a multibyte string and store it at string, but no more than n bytes will be stored. If
result is not NULL, *result will be set to point to the first byte in string following the new multibyte character. If string is NULL,
*result will point to (char *)0 + x, where x is the number of bytes that would be needed to store the multibyte value. If the multibyte
character would consist of more than n bytes and result is not NULL, *result will be set to NULL. In all cases, sputrune() will return the
number of bytes which would be needed to store rune as a multibyte character.
The fgetrune() function operates the same as sgetrune() with the exception that it attempts to read enough bytes from stream to decode a sin-
gle rune. It returns either EOF on end of file, _INVALID_RUNE on an encoding error, or the rune decoded if all went well.
The fungetrune() function pushes the multibyte encoding, as provided by sputrune(), of rune onto stream such that the next fgetrune() call
will return rune. It returns EOF if it fails and 0 on success.
The fputrune() function writes the multibyte encoding of rune, as provided by sputrune(), onto stream. It returns EOF on failure and 0 on
success.
RETURN VALUES
The setrunelocale() function returns one of the following values:
0 The setrunelocale() function was successful.
[EINVAL] The locale name was incorrect.
[ENOENT] The locale could not be found.
[EFTYPE] The file found was not a valid file.
The sgetrune() function either returns the rune read or _INVALID_RUNE. The sputrune() function returns the number of bytes needed to store
rune as a multibyte string.
FILES
$PATH_LOCALE/locale/LC_CTYPE
/usr/share/locale/locale/LC_CTYPE binary LC_CTYPE file for the locale locale.
/usr/local/share/locale/locale/LC_CTYPE
binary LC_CTYPE file for the locale locale.
SEE ALSO
mbrune(3), setlocale(3), euc(4), utf2(4), utf8(5)
HISTORY
These functions first appeared in 4.4BSD.
The setrunelocale() function and the other non-ANSI rune functions were inspired by Plan 9 from Bell Labs.
BSD
October 6, 2002 BSD