File: format.js

package info (click to toggle)
gjs 1.87.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 6,848 kB
  • sloc: cpp: 38,389; javascript: 31,953; ansic: 15,960; sh: 1,777; python: 791; xml: 137; makefile: 40
file content (36 lines) | stat: -rw-r--r-- 1,121 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
// SPDX-FileCopyrightText: 2012 Red Hat, Inc.
// SPDX-FileCopyrightText: 2012 Giovanni Campagna <scampa.giovanni@gmail.com>

/* exported format, printf, vprintf */

var {vprintf} = imports._format;

function printf(fmt, ...args) {
    print(vprintf(fmt, args));
}

/**
 * format:
 *
 * @param {...*} args - Values with which to replace `%` codes in the string
 * @returns {string} The formatted string
 *
 * This function is intended to extend the String object and provide a
 * String.format API for string formatting. It has to be set up using
 *
 *     String.prototype.format = Format.format;
 *
 * Usage:
 *
 *     "somestring %s %d".format('hello', 5);
 *
 * It supports %s, %d, %x and %f. For %f it also supports precisions like
 * "%.2f".format(1.526). All specifiers can be prefixed with a minimum field
 * width, e.g. "%5s".format("foo"). Unless the width is prefixed with '0', the
 * formatted string will be padded with spaces.
 */
function format(...args) {
    return vprintf(this, args);
}