IP Library Granted Patent US 9,048,854
Granted Patent B2
US 9,048,854 · App. 13/915,233 · Granted Jun 2, 2015

Unicode character conversion using one of two conversion services

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,048,854
App. No.
13/915,233
Granted
Jun 2, 2015
Kind
B2
Abstract

Disclosed is a method to convert a Unicode character. The method includes intercepting a service call for a character conversion, determining if a character associated with the service call is a candidate for a first conversion service, if the character is a candidate for the first conversion service, converting the character using the first conversion service, if the character is not a candidate for the first conversion service, converting the character using a second conversion service, and returning the converted character.

Claims (76)

1. A method to convert a character, the method comprising:

intercepting a service call for a character conversion;

determining if the character is in a single byte character format;

determining if a character conversion type is a single byte character format; and

upon determining the character is in a single byte character format and the character conversion type is a single byte character format, the character is a candidate for a first conversion service;

upon determining the character is a candidate for the first conversion service, converting the character using the first conversion service;

upon determining the character is not a candidate for the first conversion service, converting the character using a second conversion service; and

returning the converted character.

2. The method of claim 1 , wherein

the service call is to an address for the first conversion service, and

the service call is redirected to an address for the second conversion service if the character is not a candidate for the first conversion service.

3. The method of claim 1 , wherein the service call includes the character, a character type associated with the character, and a character type to convert the character to.

4. The method of claim 1 , wherein determining if the character is a candidate for a first conversion service includes:

determining the character length of the character, and

if the character length equals zero, the character is not a candidate for a first conversion service.

5. The method of claim 1 , wherein determining if the character is a candidate for a first conversion service includes:

reading the character type pair from the service call, the character type pair including a character type of the character and a character type of the converted character;

determining if the character type pair is in a look-up table of supported character type pairs; and

if the character type pair is in the look-up table, the character is a candidate for a first conversion service.

6. The method of claim 1 , further comprising:

determining a location of a control block configured to anchor conversion service routines;

saving at least one address stored in the control block, the at least one address being associated with the conversion service routines, one of the at least one addresses including an address for a routine associated with the second conversion service; and

replacing the address for the routine associated with the second conversion service with an intercept address.

7. The method of claim 1 , wherein

the first conversion service includes a first routine for converting characters;

the second conversion service includes a second routine for converting characters; and

the first routine, when executed by a processor, uses fewer processing resources than the second routine, when executed by the processor.

8. The method of claim 1 , further comprising:

generating a first table and a second table based on plurality of single byte service calls to a four byte conversion routine, each of the service calls including a character set pair, the character set pair including a first character type and a second character type for a same character;

utilizing the first table to determine if a conversion is supported based on the character set pair;

adding a converted value for the character set pair to the second table if the conversion is supported;

the first conversion service includes a first routine for converting characters; and

the first routine uses the second table to determine a conversion value for the character.

9. The method of claim 8 , wherein each of the converted character set pairs is assigned a handle.

10. A non-transitory computer readable medium including code segments that when executed by a processor cause the processor to:

intercept a service call for a character conversion;

determine if the character is in a single byte character format;

determine if a character conversion type is a single byte character format; and

upon determining the character is in a single byte character format and the character conversion type is a single byte character format, the character is a candidate for a first conversion service;

upon determining the character is a candidate for the first conversion service, convert the character using the first conversion service;

upon determining the character is not a candidate for the first conversion service, convert the character using a second conversion service; and

return the converted character.

11. The non-transitory computer readable medium of claim 10 , wherein

the service call is to an intercept address, and

the service call is redirected to an address for the second conversion service if the character is not a candidate for the first conversion service.

12. The non-transitory computer readable medium of claim 10 , wherein the service call includes the character, a character type associated with the character, and a character type to convert the character to.

13. The non-transitory computer readable medium of claim 10 , wherein determining if the character is a candidate for a first conversion service includes:

determining the character length of the character, and

if the character length equals zero, the character is not a candidate for a first conversion service.

14. The non-transitory computer readable medium of claim 10 , wherein determining if the character is a candidate for a first conversion service includes:

reading the character type pair from the service call, the character type pair including a character type of the character and a character type of the converted character;

determining if the character type pair is in a look-up table of supported character type pairs; and

if the character type pair is in the look-up table, the character is a candidate for a first conversion service.

15. The non-transitory computer readable medium of claim 10 , wherein the code segments further cause the processor to:

determine a location of a control block configured to anchor conversion service routines;

save at least one address stored in the control block, the at least one address being associated with the conversion service routines, one of the at least one addresses including an address for a routine associated with the second conversion service; and

replace the address for the routine associated with the second conversion service with an intercept address.

16. The non-transitory computer readable medium of claim 10 , wherein

the first conversion service includes a first routine for converting characters;

the second conversion service includes a second routine for converting characters; and

the first routine, when executed by a processor, uses fewer processing resources than the second routine, when executed by the processor.

17. The non-transitory computer readable medium of claim 10 , wherein the code segments further cause the processor to:

generate a first table and a second table based on plurality of single byte service calls to a four byte conversion routine, each of the service calls including a character set pair, the character set pair including a first character type and a second character type for a same character;

utilize the first table to determine if a conversion is supported based on the character set pair;

add a converted value for the character set pair to the second table if the conversion is supported;

the first conversion service includes a first routine for converting characters; and

the first routine uses the second table to determine a conversion value for the character.

18. A method to convert a character, the method comprising:

determining a location of a control block configured to anchor conversion service routines;

saving at least one address stored in the control block, the at least one address being associated with the conversion service routines, one of the at least one addresses including an address for a routine associated with the second conversion service;

replacing the address for the routine associated with the second conversion service with an intercept address;

intercepting a service call for a character conversion to the intercept address;

determining if a character associated with the service call is a candidate for a first conversion service;

if the character is a candidate for the first conversion service, converting the character using the first conversion service;

if the character is not a candidate for the first conversion service, converting the character using a second conversion service; and

returning the converted character.

Assignments (14)
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2013
From: LAVIOLETTE, MICHEL
To: BMC SOFTWARE, INC.
Reel/Frame 030590/0800 →