19ded074eSagge3-- 29ded074eSagge3-- SPDX-License-Identifier: BSD-2-Clause 39ded074eSagge3-- 49ded074eSagge3-- Copyright (c) 2024 Tyler Baxter <agge@FreeBSD.org> 59ded074eSagge3-- Copyright (c) 2023 Warner Losh <imp@bsdimp.com> 69ded074eSagge3-- Copyright (c) 2019 Kyle Evans <kevans@FreeBSD.org> 79ded074eSagge3-- 89ded074eSagge3 99ded074eSagge3local util = require("tools.util") 109ded074eSagge3 119ded074eSagge3local scret = {} 129ded074eSagge3 139ded074eSagge3scret.__index = scret 149ded074eSagge3 159ded074eSagge3-- Processes this return type. 169ded074eSagge3function scret:process() 179ded074eSagge3 local words = util.split(self.scret, "%S+") 189ded074eSagge3 self.scret = words[1] 199ded074eSagge3 -- Pointer incoming. 209ded074eSagge3 if words[2]:sub(1,1) == "*" then 219ded074eSagge3 self.scret = self.scret .. " " 229ded074eSagge3 end 239ded074eSagge3 while words[2]:sub(1,1) == "*" do 249ded074eSagge3 words[2] = words[2]:sub(2) 259ded074eSagge3 self.scret = self.scret .. "*" 269ded074eSagge3 end 279ded074eSagge3end 289ded074eSagge3 299ded074eSagge3-- To add this return type to the system call. 309ded074eSagge3function scret:add() 319ded074eSagge3 self:process() 329ded074eSagge3 return self.scret 339ded074eSagge3end 349ded074eSagge3 359ded074eSagge3function scret:new(obj, line) 369ded074eSagge3 obj = obj or { } 379ded074eSagge3 setmetatable(obj, self) 389ded074eSagge3 self.__index = self 399ded074eSagge3 409ded074eSagge3 self.scret = line 419ded074eSagge3 429ded074eSagge3 return obj 439ded074eSagge3end 449ded074eSagge3 459ded074eSagge3return scret 46