chiark / gitweb /
generator: use fflush_and_check() where appropriate
[elogind.git] / src / shared / install-printf.c
index d853f17772332568efd15bec973346868530422d..cbe984d2fba3ec4ea1333ca6b7414f285a432823 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-#include <assert.h>
 #include <stdlib.h>
 
 #include "specifier.h"
 #include "unit-name.h"
 #include "util.h"
 #include "install-printf.h"
+#include "formats-util.h"
 
 static int specifier_prefix_and_instance(char specifier, void *data, void *userdata, char **ret) {
-        InstallInfo *i = userdata;
-        char *n;
+        UnitFileInstallInfo *i = userdata;
 
         assert(i);
 
-        n = unit_name_to_prefix_and_instance(i->name);
-        if (!n)
-                return -ENOMEM;
-
-        *ret = n;
-        return 0;
+        return unit_name_to_prefix_and_instance(i->name, ret);
 }
 
 static int specifier_prefix(char specifier, void *data, void *userdata, char **ret) {
-        InstallInfo *i = userdata;
-        char *n;
+        UnitFileInstallInfo *i = userdata;
 
         assert(i);
 
-        n = unit_name_to_prefix(i->name);
-        if (!n)
-                return -ENOMEM;
-
-        *ret = n;
-        return 0;
+        return unit_name_to_prefix(i->name, ret);
 }
 
 static int specifier_instance(char specifier, void *data, void *userdata, char **ret) {
-        InstallInfo *i = userdata;
+        UnitFileInstallInfo *i = userdata;
         char *instance;
         int r;
 
@@ -77,7 +65,7 @@ static int specifier_instance(char specifier, void *data, void *userdata, char *
 }
 
 static int specifier_user_name(char specifier, void *data, void *userdata, char **ret) {
-        InstallInfo *i = userdata;
+        UnitFileInstallInfo *i = userdata;
         const char *username;
         _cleanup_free_ char *tmp = NULL;
         char *printed = NULL;
@@ -114,7 +102,7 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char
 }
 
 
-int install_full_printf(InstallInfo *i, const char *format, char **ret) {
+int install_full_printf(UnitFileInstallInfo *i, const char *format, char **ret) {
 
         /* This is similar to unit_full_printf() but does not support
          * anything path-related.