This project is abandoned.

Whether this project is out of date or its author marked it as abandoned, this project is no longer maintained.

If you wish to take this project over, please report it and state your intentions.

This library will convert a fully-formatted text string to its original arguments given a format string.

It is essentially the opposite of string.format.

local LibDeformat = LibStub("LibDeformat-3.0")

LibDeformat("Hello, friend", "Hello, %s") => "friend"
LibDeformat("Hello, friend", "Hello, %1$s") => "friend"
LibDeformat("Cost: $100", "Cost: $%d") => 100 -- note that it converted it back to a number
LibDeformat("Cost: $100", "Cost: $%1$d") => 100
LibDeformat("Alpha, Bravo", "%s, %s") => "Alpha", "Bravo"
LibDeformat("Alpha, Bravo", "%1$s, %2$s") => "Alpha", "Bravo"
LibDeformat("Alpha, Bravo", "%2$s, %1$s") => "Bravo", "Alpha" -- this can happen in foreign languages
LibDeformat("Hello, friend", "Cost: $%d") => nil -- nil is returned when there is no match

LibDeformat-3.0 API

You must login to post a comment. Don't have an account? Register to get one!

  • 1 comment
  • Avatar of jerry jerry Jan 05, 2010 at 10:13 UTC - 0 likes

    As (look at the last paragraph), you can't have a table with strings as weak keys.

    When I adapted LibItemBonus to LibStub, I had to drop Deformat and use my own solution. After some refinement, I finally got a working solution (GetPattern) which does pretty much what LibDeformat-3.0 does, except without caching. (The API returns a callable that can be reused to check new strings). i.e:

    local handler = GetPattern("Hello, %s")
    print(handler("Hello, friend")) => "friend"

    Look at the GetPattern implementation from the Core.lua file in LibItemBonus-2.0 for details.

  • 1 comment

Table of contents

  1. 1 LibDeformat-3.0 API


Date created
Jan 04, 2010
Last update
Jan 04, 2010
Development stage
  • enUS
MIT License
Reverse relationships
Recent files