get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/956566/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 956566,
    "url": "http://patchwork.ozlabs.org/api/patches/956566/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20180811152820.26817-11-xypron.glpk@gmx.de/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20180811152820.26817-11-xypron.glpk@gmx.de>",
    "list_archive_url": null,
    "date": "2018-08-11T15:28:15",
    "name": "[U-Boot,10/15] lib: charset: remove obsolete functions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "d2983bcb1b6fcd9325db8e959d7d3731dd64cea9",
    "submitter": {
        "id": 61270,
        "url": "http://patchwork.ozlabs.org/api/people/61270/?format=api",
        "name": "Heinrich Schuchardt",
        "email": "xypron.glpk@gmx.de"
    },
    "delegate": {
        "id": 3400,
        "url": "http://patchwork.ozlabs.org/api/users/3400/?format=api",
        "username": "agraf",
        "first_name": "Alexander",
        "last_name": "Graf",
        "email": "agraf@suse.de"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20180811152820.26817-11-xypron.glpk@gmx.de/mbox/",
    "series": [
        {
            "id": 60397,
            "url": "http://patchwork.ozlabs.org/api/series/60397/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=60397",
            "date": "2018-08-11T15:28:06",
            "name": "efi_loader: EFI_UNICODE_COLLATION_PROTOCOL",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/60397/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/956566/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/956566/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=gmx.de"
        ],
        "Received": [
            "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 41nmMJ24ZYz9s89\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSun, 12 Aug 2018 01:37:16 +1000 (AEST)",
            "by lists.denx.de (Postfix, from userid 105)\n\tid BE16DC21E08; Sat, 11 Aug 2018 15:32:20 +0000 (UTC)",
            "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id A38F7C21E73;\n\tSat, 11 Aug 2018 15:28:54 +0000 (UTC)",
            "by lists.denx.de (Postfix, from userid 105)\n\tid C3212C21C93; Sat, 11 Aug 2018 15:28:46 +0000 (UTC)",
            "from mout.gmx.net (mout.gmx.net [212.227.17.20])\n\tby lists.denx.de (Postfix) with ESMTPS id 6CF4AC21C51\n\tfor <u-boot@lists.denx.de>; Sat, 11 Aug 2018 15:28:46 +0000 (UTC)",
            "from LT02.fritz.box ([88.152.14.153]) by mail.gmx.com (mrgmx102\n\t[212.227.17.174]) with ESMTPSA (Nemesis) id 0LqF9o-1gSGQG3HUW-00dqxj;\n\tSat, 11 Aug 2018 17:28:44 +0200"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=0.0 required=5.0 tests=FREEMAIL_FROM\n\tautolearn=unavailable autolearn_force=no version=3.4.0",
        "From": "Heinrich Schuchardt <xypron.glpk@gmx.de>",
        "To": "Alexander Graf <agraf@suse.de>",
        "Date": "Sat, 11 Aug 2018 17:28:15 +0200",
        "Message-Id": "<20180811152820.26817-11-xypron.glpk@gmx.de>",
        "X-Mailer": "git-send-email 2.18.0",
        "In-Reply-To": "<20180811152820.26817-1-xypron.glpk@gmx.de>",
        "References": "<20180811152820.26817-1-xypron.glpk@gmx.de>",
        "X-Provags-ID": "V03:K1:NNJRG2HYNX+qwGgNneg3K37On3gL9tUJSBK5aYVml4dM9ab2m7P\n\toOGHvJBl9F1IUrtZmBE4HlRBujGlstwGwmWiLzMBaOyYWSwDaiRwLIAG1hc/7I+EPRY3oNA\n\trA01MDxMuEMM3W7KTa3YpaLe22n/R2YhkiVK7TPeBdCNZx3qeuH8mrgmi0rdnT84B9WcO/8\n\tlIwSqoUFK+ausVtSuiX5Q==",
        "X-UI-Out-Filterresults": "notjunk:1; V01:K0:15lbd7E7D7s=:ZbCw2gNY9gFmNjajMYYcfI\n\ts3Jyc9iDb42TZNjxd/d1gkw+JcP43LDfaZ47vW3/I9dhr0ZPL2+2nH9Ly1k0GgvJhyfMdNZeT\n\trITbOBMPqS1Z/09y19Pq0x+SR7DAGfCjfusDkBfD/RKNv2G5FOHeHpqfrDQnx3LK1CMPhV99S\n\tNS+ICiF8MehqMoO75C+FaVqEO2PmUoTNw06jqIC+ZY4jDrqfmYu4ONN/DGWJdmCPHRgR2ji/g\n\tOBFfg4cfan1Kj0IGOAJ3po+UkH1JTOTnjbhpIi6O3NpBalBXFyHKBni31bYXU0tgGAolPGqgx\n\txaYO/oJ8P8ceMZjJVHsU5eDEpwFCKZz6ZJz2J3XCKYv8x/NerexCfUphSqb4rdjB60jWrDF0Y\n\tQGKUkHbqC1wg+RDRX54417hmzz0lRH0qyaLO7hmKvIry21BNsFlN+4Blvi4mqKXtTq13sR1xx\n\tP2YPtKlArugmkK5mZ3lj18pP8hRzhve/PIVHHlhWX5UO4z7JQg+eUtDaGukSbft9Js7YgFwwD\n\tdtKEn4+IBcaU5ty9A1/xp/GiCa2Mf3nWqxuXVMxSU4ZYZOoGPHxtM4EwY56g1NjLvyugkhyzt\n\tFSCCssSQ4v8OXx+rwO9VyDlR/Wup3HG66HdnncC/vP/dR97cjZAiX3lO7jX+tPZEnedg4p/4h\n\tTWfz/Qp7UxUMAawP+HJToeuYtwd1W3e8A3n1UMg0ZPcbUmMTtje35UEmWE2/NvjBt11DHx6Ii\n\tXoSLNYqhEQDR3aUjuiIecdvae+4iX1H02UE+r9DW1gtebEdLqcqgxifAZ8w=",
        "Cc": "Heinrich Schuchardt <xypron.glpk@gmx.de>, u-boot@lists.denx.de",
        "Subject": "[U-Boot] [PATCH 10/15] lib: charset: remove obsolete functions",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.18",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>"
    },
    "content": "Remove functions:\n- utf8_to_utf16()\n- utf16_strcpy()\n- utf16_strdup()\n\nSigned-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>\n---\n include/charset.h | 23 --------------\n lib/charset.c     | 79 -----------------------------------------------\n 2 files changed, 102 deletions(-)",
    "diff": "diff --git a/include/charset.h b/include/charset.h\nindex 81e31d1b26..1c0976dde6 100644\n--- a/include/charset.h\n+++ b/include/charset.h\n@@ -161,16 +161,6 @@ size_t u16_strlen(const u16 *in);\n  */\n size_t u16_strnlen(const u16 *in, size_t count);\n \n-/**\n- * utf16_strcpy() - UTF16 equivalent of strcpy()\n- */\n-uint16_t *utf16_strcpy(uint16_t *dest, const uint16_t *src);\n-\n-/**\n- * utf16_strdup() - UTF16 equivalent of strdup()\n- */\n-uint16_t *utf16_strdup(const uint16_t *s);\n-\n /**\n  * utf16_to_utf8() - Convert an utf16 string to utf8\n  *\n@@ -187,17 +177,4 @@ uint16_t *utf16_strdup(const uint16_t *s);\n  */\n uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size);\n \n-/**\n- * utf8_to_utf16() - Convert an utf8 string to utf16\n- *\n- * Converts up to 'size' characters of the utf16 string 'src' to utf8\n- * written to the 'dest' buffer. Stops at 0x00.\n- *\n- * @dest   the destination buffer to write the utf8 characters\n- * @src    the source utf16 string\n- * @size   maximum number of utf16 characters to convert\n- * @return the pointer to the first unwritten byte in 'dest'\n- */\n-uint16_t *utf8_to_utf16(uint16_t *dest, const uint8_t *src, size_t size);\n-\n #endif /* __CHARSET_H_ */\ndiff --git a/lib/charset.c b/lib/charset.c\nindex 0f4c6f26eb..d2c723be3c 100644\n--- a/lib/charset.c\n+++ b/lib/charset.c\n@@ -263,29 +263,6 @@ size_t u16_strnlen(const u16 *in, size_t count)\n \treturn i;\n }\n \n-uint16_t *utf16_strcpy(uint16_t *dest, const uint16_t *src)\n-{\n-\tuint16_t *tmp = dest;\n-\n-\twhile ((*dest++ = *src++) != '\\0')\n-\t\t/* nothing */;\n-\treturn tmp;\n-\n-}\n-\n-uint16_t *utf16_strdup(const uint16_t *s)\n-{\n-\tuint16_t *new;\n-\n-\tif (!s)\n-\t\treturn NULL;\n-\tnew = malloc((u16_strlen(s) + 1) * 2);\n-\tif (!new)\n-\t\treturn NULL;\n-\tutf16_strcpy(new, s);\n-\treturn new;\n-}\n-\n /* Convert UTF-16 to UTF-8.  */\n uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size)\n {\n@@ -338,59 +315,3 @@ uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size)\n \n \treturn dest;\n }\n-\n-uint16_t *utf8_to_utf16(uint16_t *dest, const uint8_t *src, size_t size)\n-{\n-\twhile (size--) {\n-\t\tint extension_bytes;\n-\t\tuint32_t code;\n-\n-\t\textension_bytes = 0;\n-\t\tif (*src <= 0x7f) {\n-\t\t\tcode = *src++;\n-\t\t\t/* Exit on zero byte */\n-\t\t\tif (!code)\n-\t\t\t\tsize = 0;\n-\t\t} else if (*src <= 0xbf) {\n-\t\t\t/* Illegal code */\n-\t\t\tcode = '?';\n-\t\t} else if (*src <= 0xdf) {\n-\t\t\tcode = *src++ & 0x1f;\n-\t\t\textension_bytes = 1;\n-\t\t} else if (*src <= 0xef) {\n-\t\t\tcode = *src++ & 0x0f;\n-\t\t\textension_bytes = 2;\n-\t\t} else if (*src <= 0xf7) {\n-\t\t\tcode = *src++ & 0x07;\n-\t\t\textension_bytes = 3;\n-\t\t} else {\n-\t\t\t/* Illegal code */\n-\t\t\tcode = '?';\n-\t\t}\n-\n-\t\tfor (; extension_bytes && size; --size, --extension_bytes) {\n-\t\t\tif ((*src & 0xc0) == 0x80) {\n-\t\t\t\tcode <<= 6;\n-\t\t\t\tcode |= *src++ & 0x3f;\n-\t\t\t} else {\n-\t\t\t\t/* Illegal code */\n-\t\t\t\tcode = '?';\n-\t\t\t\t++src;\n-\t\t\t\t--size;\n-\t\t\t\tbreak;\n-\t\t\t}\n-\t\t}\n-\n-\t\tif (code < 0x10000) {\n-\t\t\t*dest++ = code;\n-\t\t} else {\n-\t\t\t/*\n-\t\t\t * Simplified expression for\n-\t\t\t * (((code - 0x10000) >> 10) & 0x3ff) | 0xd800\n-\t\t\t */\n-\t\t\t*dest++ = (code >> 10) + 0xd7c0;\n-\t\t\t*dest++ = (code & 0x3ff) | 0xdc00;\n-\t\t}\n-\t}\n-\treturn dest;\n-}\n",
    "prefixes": [
        "U-Boot",
        "10/15"
    ]
}