mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge branch 'master' into newlisp
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
Binary file not shown.
@@ -1,21 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: x\n"
|
||||
"POT-Creation-Date: 2009-02-15 09:22+0100\n"
|
||||
"PO-Revision-Date: 2009-02-15 09:22+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
|
||||
#: tools/files/simple_translation.rb:1
|
||||
msgid "a translation"
|
||||
msgstr ""
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
Binary file not shown.
25
samples/BitBake/gstreamer-libav.bb
Normal file
25
samples/BitBake/gstreamer-libav.bb
Normal file
@@ -0,0 +1,25 @@
|
||||
include gstreamer1.0-libav.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
||||
file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
|
||||
file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
|
||||
file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
|
||||
file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
||||
file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
|
||||
file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
|
||||
file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
|
||||
|
||||
SRC_URI = " \
|
||||
http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
|
||||
file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "86540dee14d31daf976eb2713f2294f3"
|
||||
SRC_URI[sha256sum] = "585eb7971006100ad771a852e07bd2f3e23bcc6eb0b1253a40b5a0e40e4e7418"
|
||||
|
||||
LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
|
||||
--cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
|
||||
--ranlib='${RANLIB}' \
|
||||
${GSTREAMER_1_0_DEBUG}"
|
||||
|
||||
S = "${WORKDIR}/gst-libav-${PV}"
|
||||
|
||||
13
samples/BitBake/qtbase-native.bb
Normal file
13
samples/BitBake/qtbase-native.bb
Normal file
@@ -0,0 +1,13 @@
|
||||
require qt5-git.inc
|
||||
require ${PN}.inc
|
||||
|
||||
do_install_append() {
|
||||
# for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt)
|
||||
# e.g. qt3d, qtwayland
|
||||
ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt
|
||||
}
|
||||
|
||||
QT_MODULE_BRANCH = "release"
|
||||
# v5.2.1 + 168 commits
|
||||
SRCREV = "08cbbde61778276ccdda73d89fd64d02c623779f"
|
||||
|
||||
47
samples/C/bitmap.h
Normal file
47
samples/C/bitmap.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2010 Christoph Sünderhauf
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t numbits;
|
||||
/* an array large enough for numbits to fit in. Might
|
||||
* (if numbits%8!=0) have some spare bits at the end
|
||||
*/
|
||||
uint32_t* bits;
|
||||
} bitmap_t;
|
||||
|
||||
|
||||
// creates a new bitmap.
|
||||
// CONTENT IS RANDOM! - use bitmap_clearall() to clear the bitmap.
|
||||
bitmap_t bitmap_init(uint32_t numbits);
|
||||
|
||||
// returns 1 or 0
|
||||
uint8_t bitmap_get(bitmap_t bitmap, uint32_t bitnum);
|
||||
// sets a bit (to 1)
|
||||
void bitmap_set(bitmap_t bitmap, uint32_t bitnum);
|
||||
// clears a bit (to 0)
|
||||
void bitmap_clear(bitmap_t bitmap, uint32_t bitnum);
|
||||
|
||||
// clears every bit to 0
|
||||
void bitmap_clearAll(bitmap_t bitmap);
|
||||
|
||||
// finds the first bit set to 0 returns 0 if no cleared bit found (0 is also returned if the first bit is cleared)
|
||||
uint32_t bitmap_findFirstClear(bitmap_t bitmap);
|
||||
44
samples/C/color.h
Normal file
44
samples/C/color.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
|
||||
typedef struct {
|
||||
uint32_t background;
|
||||
uint32_t foreground;
|
||||
} console_color_t;
|
||||
|
||||
#define CONSOLE_COLOR_BLACK 0x0
|
||||
#define CONSOLE_COLOR_BLUE 0x1
|
||||
#define CONSOLE_COLOR_GREEN 0x2
|
||||
#define CONSOLE_COLOR_CYAN 0x3
|
||||
#define CONSOLE_COLOR_RED 0x4
|
||||
#define CONSOLE_COLOR_MAGENTA 0x5
|
||||
#define CONSOLE_COLOR_BROWN 0x6
|
||||
#define CONSOLE_COLOR_LGREY 0x7
|
||||
#define CONSOLE_COLOR_DGREY 0x8
|
||||
#define CONSOLE_COLOR_LBLUE 0x9
|
||||
#define CONSOLE_COLOR_LGREEN 0xa
|
||||
#define CONSOLE_COLOR_LCYAN 0xb
|
||||
#define CONSOLE_COLOR_LRED 0xc
|
||||
#define CONSOLE_COLOR_LMAGENTA 0xd
|
||||
#define CONSOLE_COLOR_YELLOW 0xe
|
||||
#define CONSOLE_COLOR_WHITE 0xf
|
||||
|
||||
52
samples/C/driver.h
Normal file
52
samples/C/driver.h
Normal file
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <console/info.h>
|
||||
|
||||
#define CONSOLE_DRV_CAP_CLEAR 0x01
|
||||
#define CONSOLE_DRV_CAP_SCROLL 0x02
|
||||
#define CONSOLE_DRV_CAP_SET_CURSOR 0x04
|
||||
|
||||
// Input modifier keys
|
||||
typedef struct {
|
||||
bool shift_left:1;
|
||||
bool shift_right:1;
|
||||
bool control_left:1;
|
||||
bool control_right:1;
|
||||
bool alt:1;
|
||||
bool super:1;
|
||||
} console_modifiers_t;
|
||||
|
||||
typedef struct {
|
||||
char character;
|
||||
console_modifiers_t* modifiers;
|
||||
} console_read_t;
|
||||
|
||||
typedef struct {
|
||||
int (*write)(console_info_t*, char);
|
||||
console_read_t* (*read)(console_info_t*);
|
||||
|
||||
int capabilities;
|
||||
|
||||
int (*_clear)(console_info_t*);
|
||||
int (*scroll)(console_info_t*, int32_t);
|
||||
void (*setCursor)(console_info_t*, uint32_t, uint32_t);
|
||||
} console_driver_t;
|
||||
70
samples/C/elf.h
Normal file
70
samples/C/elf.h
Normal file
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <tasks/scheduler.h>
|
||||
|
||||
#define ELF_TYPE_NONE 0
|
||||
#define ELF_TYPE_REL 1
|
||||
#define ELF_TYPE_EXEC 2
|
||||
#define ELF_TYPE_DYN 3
|
||||
#define ELF_TYPE_CORE 4
|
||||
|
||||
#define ELF_ARCH_NONE 0
|
||||
#define ELF_ARCH_386 3
|
||||
|
||||
#define ELF_VERSION_CURRENT 1
|
||||
|
||||
typedef struct {
|
||||
unsigned char magic[4];
|
||||
/* Note: There _is_ other stuff in here, but we don't need it */
|
||||
unsigned char pad[12];
|
||||
} __attribute__((packed)) elf_ident_t;
|
||||
|
||||
typedef struct {
|
||||
uint32_t type;
|
||||
uint32_t offset;
|
||||
void* virtaddr;
|
||||
void* physaddr;
|
||||
uint32_t filesize;
|
||||
uint32_t memsize;
|
||||
uint32_t flags;
|
||||
uint32_t alignment;
|
||||
} __attribute__((packed)) elf_program_t;
|
||||
|
||||
typedef struct {
|
||||
elf_ident_t ident;
|
||||
uint16_t type; /* Object file type */
|
||||
uint16_t machine; /* Architecture */
|
||||
uint32_t version; /* Object file version */
|
||||
void* entry; /* Entry point virtual address */
|
||||
uint32_t phoff; /* Program header table file offset */
|
||||
uint32_t shoff; /* Section header table file offset */
|
||||
uint32_t flags; /* Processor-specific flags */
|
||||
uint16_t ehsize; /* ELF header size in bytes */
|
||||
uint16_t phentsize; /* Program header table entry size */
|
||||
uint16_t phnum; /* Program header table entry count */
|
||||
uint16_t shentsize; /* Section header table entry size */
|
||||
uint16_t shnum; /* Section header table entry count */
|
||||
uint16_t shstrndx; /* Section header string table index */
|
||||
} __attribute__((packed)) elf_t;
|
||||
|
||||
task_t* elf_load(elf_t* bin, char* name, char** environ, char** argv, int argc);
|
||||
task_t* elf_load_file(char* path, char** environ, char** argv, int argc);
|
||||
45
samples/C/filter.h
Normal file
45
samples/C/filter.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <console/info.h>
|
||||
#include <console/driver.h>
|
||||
|
||||
struct console_filter {
|
||||
// General callback for all actions etc.
|
||||
// Preferred prototype:
|
||||
// char <name>(char c, console_info_t *info, console_driver_t *input, console_driver_t *output);
|
||||
char (*callback)(char, console_info_t*, console_driver_t*, console_driver_t*);
|
||||
|
||||
// Specific callbacks for read and write
|
||||
// Preferred prototype:
|
||||
// char <name>(char c, console_info_t *info, console_driver_t *input);
|
||||
char (*read_callback)(char, console_info_t*, console_driver_t*);
|
||||
|
||||
// Preferred prototype:
|
||||
// char <name>(char c, console_info_t *info, console_driver_t *output);
|
||||
char (*write_callback)(char, console_info_t*, console_driver_t*);
|
||||
|
||||
// The next filter in the filter chain
|
||||
struct console_filter* next;
|
||||
};
|
||||
|
||||
typedef struct console_filter console_filter_t;
|
||||
|
||||
44
samples/C/info.h
Normal file
44
samples/C/info.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <console/color.h>
|
||||
|
||||
typedef struct {
|
||||
uint32_t cursor_x;
|
||||
uint32_t cursor_y;
|
||||
|
||||
uint32_t rows;
|
||||
uint32_t columns;
|
||||
|
||||
uint32_t tabstop;
|
||||
|
||||
console_color_t default_color;
|
||||
console_color_t current_color;
|
||||
|
||||
uint8_t nonblocking;
|
||||
uint8_t reverse_video;
|
||||
uint8_t bold;
|
||||
uint8_t blink;
|
||||
uint8_t underline;
|
||||
uint8_t newline_mode;
|
||||
uint8_t auto_echo;
|
||||
uint8_t handle_backspace;
|
||||
} console_info_t;
|
||||
47
samples/C/interface.h
Normal file
47
samples/C/interface.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <console/info.h>
|
||||
#include <console/filter.h>
|
||||
#include <console/driver.h>
|
||||
|
||||
typedef struct {
|
||||
console_info_t info;
|
||||
|
||||
console_filter_t* input_filter;
|
||||
console_filter_t* output_filter;
|
||||
|
||||
console_driver_t* input_driver;
|
||||
console_driver_t* output_driver;
|
||||
} console_t;
|
||||
|
||||
console_t* default_console;
|
||||
|
||||
// Generate raw console, connected to the Display, Keyboard and the
|
||||
// ECMA-48-Filter
|
||||
void console_init();
|
||||
|
||||
size_t console_write(console_t* console, const char* buffer, int32_t length);
|
||||
#define console_write2(console, buffer) console_write(console, buffer, strlen(buffer))
|
||||
size_t console_read(console_t* console, char* buffer, size_t length);
|
||||
size_t console_scroll(console_t* console, int32_t pages);
|
||||
|
||||
void console_clear(console_t* console);
|
||||
50
samples/C/ip4.h
Normal file
50
samples/C/ip4.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <net/net.h>
|
||||
|
||||
#define IP4_TOS_ICMP 0
|
||||
|
||||
typedef uint32_t ip4_addr_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned int hl:4; /* both fields are 4 bits */
|
||||
unsigned int version:4;
|
||||
uint8_t tos;
|
||||
uint16_t len;
|
||||
uint16_t id;
|
||||
uint16_t off;
|
||||
uint8_t ttl;
|
||||
uint8_t p;
|
||||
uint16_t checksum;
|
||||
ip4_addr_t src;
|
||||
ip4_addr_t dst;
|
||||
} ip4_header_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t type;
|
||||
uint8_t code;
|
||||
uint16_t checksum;
|
||||
uint16_t id;
|
||||
uint16_t sequence;
|
||||
} ip4_icmp_header_t;
|
||||
|
||||
void ip4_receive(net_device_t* origin, net_l2proto_t proto, size_t size, void* raw);
|
||||
110
samples/C/multiboot.h
Normal file
110
samples/C/multiboot.h
Normal file
@@ -0,0 +1,110 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2010, 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
|
||||
#define MULTIBOOT_KERNELMAGIC 0x2BADB002
|
||||
|
||||
#define MULTIBOOT_FLAG_MEM 0x001
|
||||
#define MULTIBOOT_FLAG_DEVICE 0x002
|
||||
#define MULTIBOOT_FLAG_CMDLINE 0x004
|
||||
#define MULTIBOOT_FLAG_MODS 0x008
|
||||
#define MULTIBOOT_FLAG_AOUT 0x010
|
||||
#define MULTIBOOT_FLAG_ELF 0x020
|
||||
#define MULTIBOOT_FLAG_MMAP 0x040
|
||||
#define MULTIBOOT_FLAG_CONFIG 0x080
|
||||
#define MULTIBOOT_FLAG_LOADER 0x100
|
||||
#define MULTIBOOT_FLAG_APM 0x200
|
||||
#define MULTIBOOT_FLAG_VBE 0x400
|
||||
|
||||
// The symbol table for a.out.
|
||||
typedef struct
|
||||
{
|
||||
uint32_t tabSize;
|
||||
uint32_t strSize;
|
||||
uint32_t addr;
|
||||
uint32_t reserved;
|
||||
} __attribute__((packed)) multiboot_aoutSymbolTable_t;
|
||||
|
||||
// The section header table for ELF.
|
||||
typedef struct
|
||||
{
|
||||
uint32_t num;
|
||||
uint32_t size;
|
||||
uint32_t addr;
|
||||
uint32_t shndx;
|
||||
} __attribute__((packed)) multiboot_elfSectionHeaderTable_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t size;
|
||||
uint64_t addr;
|
||||
uint64_t length;
|
||||
uint32_t type;
|
||||
} __attribute__((packed)) multiboot_memoryMap_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t start;
|
||||
uint32_t end;
|
||||
char* cmdLine;
|
||||
uint32_t reserved;
|
||||
} __attribute__((packed)) multiboot_module_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t flags;
|
||||
uint32_t memLower;
|
||||
uint32_t memUpper;
|
||||
uint32_t bootDevice;
|
||||
char* cmdLine;
|
||||
uint32_t modsCount;
|
||||
multiboot_module_t* modsAddr;
|
||||
|
||||
union
|
||||
{
|
||||
multiboot_aoutSymbolTable_t aoutSym;
|
||||
multiboot_elfSectionHeaderTable_t elfSec;
|
||||
} u;
|
||||
|
||||
uint32_t mmapLength;
|
||||
uint32_t mmapAddr;
|
||||
|
||||
uint32_t drivesLength;
|
||||
uint32_t drivesAddr;
|
||||
|
||||
// ROM configuration table
|
||||
uint32_t configTable;
|
||||
|
||||
char* bootLoaderName;
|
||||
uint32_t apmTable;
|
||||
|
||||
// Video
|
||||
uint32_t vbeControlInfo;
|
||||
uint32_t vbeModeInfo;
|
||||
uint16_t vbeMode;
|
||||
uint16_t vbeInterfaceSeg;
|
||||
uint16_t vbeInterfaceOff;
|
||||
uint16_t vbeInterfaceLen;
|
||||
} __attribute__((packed)) multiboot_info_t;
|
||||
|
||||
multiboot_info_t* multiboot_info;
|
||||
|
||||
void arch_multiboot_printInfo();
|
||||
43
samples/C/portio.h
Normal file
43
samples/C/portio.h
Normal file
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <lib/stdint.h>
|
||||
|
||||
// Legacy
|
||||
#define outb(args...) portio_out8(args)
|
||||
#define outw(args...) portio_out16(args)
|
||||
#define outl(args...) portio_out32(args)
|
||||
#define outq(args...) portio_out64(args)
|
||||
|
||||
#define inb(args...) portio_in8(args)
|
||||
#define inw(args...) portio_in16(args)
|
||||
#define inl(args...) portio_in32(args)
|
||||
#define inq(args...) portio_in64(args)
|
||||
|
||||
void portio_out8(uint16_t port, uint8_t value);
|
||||
void portio_out16(uint16_t port, uint16_t value);
|
||||
void portio_out32(uint16_t port, uint32_t value);
|
||||
void portio_out64(uint16_t port, uint64_t value);
|
||||
|
||||
uint8_t portio_in8(uint16_t port);
|
||||
uint16_t portio_in16(uint16_t port);
|
||||
uint32_t portio_in32(uint16_t port);
|
||||
uint64_t portio_in64(uint16_t port);
|
||||
69
samples/C/scheduler.h
Normal file
69
samples/C/scheduler.h
Normal file
@@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <hw/cpu.h>
|
||||
#include <memory/vmem.h>
|
||||
|
||||
#define SCHEDULER_MAXNAME 256
|
||||
#define SCHEDULER_TASK_PATH_MAX 256
|
||||
|
||||
// Single linked list
|
||||
typedef struct task {
|
||||
uint32_t pid;
|
||||
char name[SCHEDULER_MAXNAME];
|
||||
struct task *parent;
|
||||
cpu_state_t* state;
|
||||
struct task* next;
|
||||
struct task* previous;
|
||||
|
||||
void* stack;
|
||||
void* entry;
|
||||
struct vmem_context *memory_context;
|
||||
|
||||
// Current task state
|
||||
enum {
|
||||
TASK_STATE_KILLED,
|
||||
TASK_STATE_TERMINATED,
|
||||
TASK_STATE_BLOCKING,
|
||||
TASK_STATE_STOPPED,
|
||||
TASK_STATE_RUNNING
|
||||
} task_state;
|
||||
|
||||
char** environ;
|
||||
char** argv;
|
||||
int argc;
|
||||
|
||||
// TODO Is this actually the same as PATH_MAX in our toolchain?
|
||||
char cwd[SCHEDULER_TASK_PATH_MAX + 1];
|
||||
} task_t;
|
||||
|
||||
int scheduler_state;
|
||||
|
||||
task_t* scheduler_new(void* entry, task_t* parent, char name[SCHEDULER_MAXNAME],
|
||||
char** environ, char** argv, int argc, struct vmem_context* memory_context, bool map_structs);
|
||||
void scheduler_add(task_t *task);
|
||||
void scheduler_terminate_current();
|
||||
task_t* scheduler_get_current();
|
||||
task_t* scheduler_select(cpu_state_t* lastRegs);
|
||||
void scheduler_init();
|
||||
void scheduler_yield();
|
||||
void scheduler_remove(task_t *t);
|
||||
task_t* scheduler_fork(task_t* to_fork, cpu_state_t* state);
|
||||
95
samples/C/syscalls.h
Normal file
95
samples/C/syscalls.h
Normal file
@@ -0,0 +1,95 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
#include <tasks/syscall.h>
|
||||
|
||||
#include "syscalls/write.h"
|
||||
#include "syscalls/exit.h"
|
||||
#include "syscalls/getpid.h"
|
||||
#include "syscalls/getppid.h"
|
||||
#include "syscalls/read.h"
|
||||
#include "syscalls/brk.h"
|
||||
#include "syscalls/mmap.h"
|
||||
#include "syscalls/munmap.h"
|
||||
#include "syscalls/test.h"
|
||||
#include "syscalls/hostname.h"
|
||||
#include "syscalls/uname.h"
|
||||
#include "syscalls/open.h"
|
||||
#include "syscalls/execve.h"
|
||||
#include "syscalls/seek.h"
|
||||
#include "syscalls/opendir.h"
|
||||
#include "syscalls/readdir.h"
|
||||
#include "syscalls/kill.h"
|
||||
#include "syscalls/getexecdata.h"
|
||||
#include "syscalls/cwd.h"
|
||||
#include "syscalls/fork.h"
|
||||
|
||||
syscall_t syscall_table[] = {
|
||||
NULL,
|
||||
sys_exit, // 1
|
||||
sys_read, // 2
|
||||
sys_write, // 3
|
||||
sys_getpid, // 4
|
||||
sys_brk, // 5
|
||||
sys_getppid, // 6
|
||||
sys_mmap, // 7
|
||||
sys_munmap, // 8
|
||||
sys_test, // 9
|
||||
sys_get_hostname, // 10
|
||||
sys_set_hostname, // 11
|
||||
sys_uname, // 12
|
||||
sys_open, // 13
|
||||
sys_execve, // 14
|
||||
sys_seek, // 15
|
||||
sys_opendir, // 16
|
||||
sys_readdir, // 17
|
||||
sys_kill, // 18
|
||||
sys_getexecdata, // 19
|
||||
sys_chdir, // 20
|
||||
sys_getcwd, // 21
|
||||
sys_fork, // 22
|
||||
};
|
||||
|
||||
char* syscall_name_table[] = {
|
||||
NULL,
|
||||
"exit", // 1
|
||||
"read", // 2
|
||||
"write", // 3
|
||||
"getpid", // 4
|
||||
"brk", // 5
|
||||
"getppid", // 6
|
||||
"mmap", // 7
|
||||
"munmap", // 8
|
||||
"test", // 9
|
||||
"get_hostname", // 10
|
||||
"set_hostname", // 11
|
||||
"uname", // 12
|
||||
"open", // 13
|
||||
"execve", // 14
|
||||
"seek", // 15
|
||||
"opendir", // 16
|
||||
"readdir", // 17
|
||||
"kill", // 18
|
||||
"getexecdata", // 19
|
||||
"chdir", // 20
|
||||
"getcwd", // 21
|
||||
"fork", // 22
|
||||
};
|
||||
56
samples/C/vfs.h
Normal file
56
samples/C/vfs.h
Normal file
@@ -0,0 +1,56 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2010, 2011 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
|
||||
#define VFS_SEEK_SET 0
|
||||
#define VFS_SEEK_CUR 1
|
||||
#define VFS_SEEK_END 2
|
||||
|
||||
typedef struct {
|
||||
uint64_t num;
|
||||
char path[512];
|
||||
char mount_path[512];
|
||||
uint32_t offset;
|
||||
uint32_t mountpoint;
|
||||
} vfs_file_t;
|
||||
|
||||
typedef struct {
|
||||
uint64_t num;
|
||||
char path[512];
|
||||
char mount_path[512];
|
||||
uint32_t mountpoint;
|
||||
} vfs_dir_t;
|
||||
|
||||
typedef void* (*vfs_read_callback_t)(char* path, uint32_t offset, uint32_t size);
|
||||
typedef char* (*vfs_read_dir_callback_t)(char* path, uint32_t offset);
|
||||
|
||||
|
||||
// Used to always store the last read/write attempt (used for kernel panic debugging)
|
||||
char vfs_last_read_attempt[512];
|
||||
|
||||
vfs_file_t* vfs_get_from_id(uint32_t id);
|
||||
vfs_dir_t* vfs_get_dir_from_id(uint32_t id);
|
||||
void* vfs_read(vfs_file_t* fp, uint32_t size);
|
||||
char* vfs_dir_read(vfs_dir_t* dir, uint32_t offset);
|
||||
void vfs_seek(vfs_file_t* fp, uint32_t offset, int origin);
|
||||
vfs_file_t* vfs_open(char* path);
|
||||
vfs_dir_t* vfs_dir_open(char* path);
|
||||
int vfs_mount(char* path, vfs_read_callback_t read_callback, vfs_read_dir_callback_t read_dir_callback);
|
||||
94
samples/C/vmem.h
Normal file
94
samples/C/vmem.h
Normal file
@@ -0,0 +1,94 @@
|
||||
#pragma once
|
||||
|
||||
/* Copyright © 2011 Fritz Grimpen
|
||||
* Copyright © 2013 Lukas Martini
|
||||
*
|
||||
* This file is part of Xelix.
|
||||
*
|
||||
* Xelix is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xelix is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Xelix. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <lib/generic.h>
|
||||
|
||||
struct vmem_context;
|
||||
|
||||
struct vmem_page
|
||||
{
|
||||
enum
|
||||
{
|
||||
VMEM_SECTION_STACK, /* Initial stack */
|
||||
VMEM_SECTION_CODE, /* Contains program code and is read-only */
|
||||
VMEM_SECTION_DATA, /* Contains static data */
|
||||
VMEM_SECTION_HEAP, /* Allocated by brk(2) at runtime */
|
||||
VMEM_SECTION_MMAP, /* Allocated by mmap(2) at runtime */
|
||||
VMEM_SECTION_KERNEL, /* Contains kernel-internal data */
|
||||
VMEM_SECTION_UNMAPPED /* Unmapped */
|
||||
} section;
|
||||
|
||||
bool readonly:1;
|
||||
bool cow:1; /* Copy-on-Write mechanism */
|
||||
bool allocated:1;
|
||||
|
||||
void *cow_src_addr;
|
||||
void *virt_addr;
|
||||
void *phys_addr;
|
||||
};
|
||||
|
||||
typedef void (*vmem_iterator_t)(struct vmem_context *, struct vmem_page *, uint32_t);
|
||||
|
||||
/* Initialize vmem_kernelContext for paging_init() */
|
||||
void vmem_init();
|
||||
struct vmem_context *vmem_kernelContext;
|
||||
struct vmem_context *vmem_currentContext;
|
||||
struct vmem_context *vmem_processContext;
|
||||
void *vmem_faultAddress;
|
||||
|
||||
/* Some callbacks for magic functions */
|
||||
void (*vmem_applyPage)(struct vmem_context *, struct vmem_page *);
|
||||
|
||||
/* Generate new page context */
|
||||
struct vmem_context *vmem_new();
|
||||
struct vmem_page *vmem_new_page();
|
||||
|
||||
int vmem_add_page(struct vmem_context *ctx, struct vmem_page *pg);
|
||||
|
||||
struct vmem_page *vmem_get_page_phys(struct vmem_context *ctx, void *phys_addr);
|
||||
struct vmem_page *vmem_get_page_virt(struct vmem_context *ctx, void *virt_addr);
|
||||
struct vmem_page *vmem_get_page(struct vmem_context *ctx, uint32_t offset);
|
||||
|
||||
/* Remove pages in a specific context by physical or virtual address */
|
||||
struct vmem_page *vmem_rm_page_phys(struct vmem_context *ctx, void *phys_addr);
|
||||
struct vmem_page *vmem_rm_page_virt(struct vmem_context *ctx, void *virt_addr);
|
||||
|
||||
/* Iterator */
|
||||
int vmem_iterate(struct vmem_context *ctx, vmem_iterator_t callback);
|
||||
|
||||
uint32_t vmem_count_pages(struct vmem_context *ctx);
|
||||
void vmem_dump_page(struct vmem_page *pg);
|
||||
void vmem_dump(struct vmem_context *ctx);
|
||||
void vmem_handle_fault(uint32_t code, void *addr, void *instruction);
|
||||
|
||||
/* Get/Set cached paging context */
|
||||
void vmem_set_cache(struct vmem_context *ctx, void *cache);
|
||||
void *vmem_get_cache(struct vmem_context *ctx);
|
||||
|
||||
#ifdef __i386__
|
||||
#define PAGE_SIZE 4096
|
||||
#define VMEM_ALIGN(x) (typeof(x))(((intptr_t)(x) & 0xFFFFF000) + 0x1000)
|
||||
#define VMEM_ALIGN_DOWN(x) (typeof(x))( \
|
||||
((intptr_t)(x) - ((intptr_t)(x) % PAGE_SIZE)))
|
||||
#else
|
||||
#define PAGE_SIZE 0
|
||||
#define VMEM_ALIGN(x) (x)
|
||||
#endif
|
||||
76
samples/Public Key/gpg_key.asc
Normal file
76
samples/Public Key/gpg_key.asc
Normal file
@@ -0,0 +1,76 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v2
|
||||
|
||||
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
|
||||
=xJ8l
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
1
samples/Public Key/id.pub
Normal file
1
samples/Public Key/id.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQConqV+vS0WfY9swk8St+JcRuhft0jTg4IrAEfmxahSLurkbf54jbe8mrNn96Nm2gkRzs2RNVQ9r4dZzdhKTUk395Vs3LbX3cfdRNaCrs3udqhRZK7Go69DQECnEHFNczBxSrhT5DoO4nuzVimHgSsX7rHKHo6J7SDNowf83/nLUr7SAJvOeQo5yZQqqZQi5NXqH6pEOQtWPILdbZWuhq8s4JIXc38I+w3IXEJ0ttsfkyShv85bhwSFzrOlq2oGY37YVWeXPREXg9ksA6rlxe29SIdAQbINlgJ/ELzDVMYiaQkI5opAvI2EzPVd4325PcMgyFM/weO9F6bKZaGCNyt3
|
||||
1
samples/Public Key/id_rsa.pub
Normal file
1
samples/Public Key/id_rsa.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw3QQtYgRViVH8ZpkQ2A7BuCeyPYC4hB9kKNhxwUfJ2hFgW8soGMBhsLN+vOeAJ2IXDMsezJO2/qhoZFQMvHoWpWTRTLPeNtBsKD+nhOZX28A4D+QRzVZ6hdWoh9W+mIP69MIT3aX35oLb86IycbNdRJlEK4FAUt7tjezNkU7boQ== root@use1-2.nitrousbox.com
|
||||
15
samples/Public Key/sunCert.asc
Normal file
15
samples/Public Key/sunCert.asc
Normal file
@@ -0,0 +1,15 @@
|
||||
Type Bits/KeyID Date User ID
|
||||
pub 1024/79949ADD 2005/08/07 sun <sun.strongswan.org>
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: 2.6.3i
|
||||
|
||||
mQCNA0L2Km8AAAEEANRAVMn8HBxfYaGhLqtQ3IZJArn9wpcQ+7sH/F9PaXIjzHRQ
|
||||
rfFkfmxxp9lVjCk0LM/BnnlnUmyz6F8K7V0Gi40Am4+ln1zHvZZIQJYGrDhDnjb7
|
||||
I5TVeD4Ib5bQ1CoUbIhv2LocCeR6OjefQgGmerC5RQ3d5ci7uB0pVpd5lJrdAAUR
|
||||
tBhzdW4gPHN1bi5zdHJvbmdzd2FuLm9yZz6JAJUDBRBC9ipvHSlWl3mUmt0BAUZR
|
||||
A/43nuZbxADMSviu54Mj8pvQbYeGLQVabiWT6h7L0ZPX4MWpFH3dTixBfRrZRSsj
|
||||
0AgiMMuZAMebfOe+Xf9uDQv7p1yumEiNg43tg85zyawkARWNTZZ04woxtvAqNwXn
|
||||
lQotGz7YA6JMxry9RQo5yI4Y4dPnVZ/o8eDpP0+I88cOhQ==
|
||||
=lLvB
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
55
samples/Shell/filenames/9fs
Normal file
55
samples/Shell/filenames/9fs
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/bin/rc
|
||||
# 9fs filesystem [mountpoint] - srv & mount filesystem, usually from plan 9
|
||||
|
||||
rfork e
|
||||
switch($1){
|
||||
case ''
|
||||
echo usage: 9fs service '[mountpoint]' >[1=2]
|
||||
exit usage
|
||||
case kfs
|
||||
if(! test -f /srv/kfs)
|
||||
disk/kfs
|
||||
mount -c /srv/kfs /n/kfs
|
||||
case dump
|
||||
mount /srv/boot /n/dump dump >[2]/dev/null ||
|
||||
mount /srv/boot /n/dump main/archive ||
|
||||
mount /srv/boot /n/dump dump # again to print error
|
||||
case snap
|
||||
mount /srv/boot /n/snap main/snapshot
|
||||
case other
|
||||
mount -C /srv/boot /n/other other
|
||||
case juke # ye olde file server
|
||||
srv -q il!jukefs && mount /srv/il!jukefs /n/juke
|
||||
case sources
|
||||
srv -nq tcp!sources.cs.bell-labs.com sources /n/sources
|
||||
case sourcesdump
|
||||
9fs sources
|
||||
mount -n /srv/sources /n/sourcesdump main/archive
|
||||
case sourcessnap
|
||||
9fs sources
|
||||
mount -n /srv/sources /n/sourcessnap main/snapshot
|
||||
# arbitrary venti archives
|
||||
case vac:*
|
||||
vacfs <{echo $1}
|
||||
case *.vac
|
||||
if (test -e $1)
|
||||
score=$1
|
||||
if not if (! ~ $1 /* && test -e $home/lib/vac/$1)
|
||||
score=$home/lib/vac/$1
|
||||
if not if (! ~ $1 /* && test -e /lib/vac/$1)
|
||||
score=/lib/vac/$1
|
||||
if not {
|
||||
echo $0: $1: no such score file >[1=2]
|
||||
exit 'no score file'
|
||||
}
|
||||
vacfs -m /n/`{basename $1 .vac} `{cat $score}
|
||||
case wiki
|
||||
srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
|
||||
case *
|
||||
switch($#*){
|
||||
case 1
|
||||
srv -m $1
|
||||
case *
|
||||
srv -m $1 $1 $2
|
||||
}
|
||||
}
|
||||
149
samples/Shell/filenames/man
Normal file
149
samples/Shell/filenames/man
Normal file
@@ -0,0 +1,149 @@
|
||||
#!/bin/rc
|
||||
# man - print manual pages
|
||||
rfork e
|
||||
|
||||
. /sys/man/fonts
|
||||
|
||||
cmd=n
|
||||
sec=()
|
||||
S=/sys/man
|
||||
d=0
|
||||
|
||||
fn roff {
|
||||
preproc=()
|
||||
postproc=cat
|
||||
x=`{doctype $2}
|
||||
if (~ $1 t) {
|
||||
if(~ $x *grap*)
|
||||
preproc=($preproc grap)
|
||||
if(~ $x *pic*)
|
||||
preproc=($preproc pic)
|
||||
Nflag=-Tutf
|
||||
}
|
||||
if not {
|
||||
Nflag='-N'
|
||||
Lflag='-rL1000i'
|
||||
# setting L changes page length to infinity (sed script removes empty lines)
|
||||
if (grep -s '^\.(2C|sp *[0-9]*\.)' $2)
|
||||
postproc=col
|
||||
}
|
||||
if(~ $x *eqn*)
|
||||
preproc=($preproc eqn)
|
||||
if(~ $x *tbl*)
|
||||
preproc=($preproc tbl)
|
||||
{echo -n $FONTS; cat $2 </dev/null} |
|
||||
switch($#preproc) {
|
||||
case 0
|
||||
troff $Nflag $Lflag -$MAN
|
||||
case 1
|
||||
$preproc | troff $Nflag $Lflag -$MAN
|
||||
case 2
|
||||
$preproc(1) | $preproc(2) | troff $Nflag $Lflag -$MAN
|
||||
case 3
|
||||
$preproc(1) | $preproc(2) | $preproc(3) |
|
||||
troff $Nflag $Lflag -$MAN
|
||||
case *
|
||||
$preproc(1) | $preproc(2) | $preproc(3) |
|
||||
$preproc(4) | troff $Nflag $Lflag -$MAN
|
||||
} | $postproc
|
||||
}
|
||||
|
||||
fn page {
|
||||
if(test -d /mnt/wsys/acme)
|
||||
/bin/page -w
|
||||
if not
|
||||
/bin/page
|
||||
}
|
||||
|
||||
|
||||
search=yes
|
||||
while(~ $d 0) {
|
||||
if(~ $#* 0) {
|
||||
echo 'Usage: man [-bntpPSw] [0-9] [0-9] ... name1 name2 ...' >[1=2]
|
||||
exit
|
||||
}
|
||||
if(test -d $S/$1){
|
||||
sec=($sec $1)
|
||||
shift
|
||||
}
|
||||
if not
|
||||
switch($1) {
|
||||
case -b ; cmd=b ; shift
|
||||
case -n ; cmd=n ; shift
|
||||
case -P ; cmd=P ; shift
|
||||
case -p ; cmd=p ; shift
|
||||
case -S ; search=no ; shift
|
||||
case -t ; cmd=t ; shift
|
||||
case -w ; cmd=w ; shift
|
||||
case * ; d=1
|
||||
}
|
||||
}
|
||||
if(~ $#sec 0) {
|
||||
sec=`{ls -pd $S/[0-9]* }
|
||||
}
|
||||
ix=$S/$sec/INDEX
|
||||
if(~ $#* 1) pat='^'^$1^' '
|
||||
if not pat='^('^`{echo $* | sed 's/ /|/g'}^') '
|
||||
fils=()
|
||||
if(~ $search yes)
|
||||
for(i in $S/$sec){
|
||||
if(/bin/test -f $i/INDEX){
|
||||
try=`{grep -i $pat $i/INDEX | sed 's/^[^ ]* //' | sort -u}
|
||||
if(! ~ $#try 0)
|
||||
fils=($fils $i/$try)
|
||||
}
|
||||
}
|
||||
# bug: should also do following loop if not all pages found
|
||||
if(~ $#fils 0) {
|
||||
# nothing in INDEX. try for file of given name
|
||||
for(i) {
|
||||
if(~ $i intro) i=0intro
|
||||
for(n in $sec) {
|
||||
try=`{echo $S/$n/$i | tr A-Z a-z}
|
||||
if (/bin/test -f $try)
|
||||
fils=($fils $try)
|
||||
}
|
||||
}
|
||||
if(~ $#fils 0) {
|
||||
echo 'man: no manual page' >[1=2]
|
||||
exit 'no man'
|
||||
}
|
||||
}
|
||||
for(i in $fils) {
|
||||
if(! /bin/test -f $i)
|
||||
echo need $i >[1=2]
|
||||
if not {
|
||||
switch($cmd) {
|
||||
case w
|
||||
echo $i
|
||||
|
||||
case t
|
||||
roff t $i
|
||||
|
||||
case p
|
||||
roff t $i | grep -v '^x X html' | proof
|
||||
|
||||
case P
|
||||
roff t $i | page
|
||||
|
||||
case n
|
||||
roff n $i | sed '
|
||||
${
|
||||
/^$/p
|
||||
}
|
||||
//N
|
||||
/^\n$/D'
|
||||
|
||||
case b
|
||||
x=`{echo $i | sed 's;/sys/man/(.*)/(.*);\1 \2;'}
|
||||
if(~ $x(2) 0intro) x=($x(1) intro)
|
||||
roff n $i | sed '
|
||||
${
|
||||
/^$/p
|
||||
}
|
||||
//N
|
||||
/^\n$/D' |
|
||||
plumb -i -d edit -a 'action=showdata filename=/man/'$x(2)^'('$x(1)^')'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
README
|
||||
======
|
||||
@@ -1,703 +0,0 @@
|
||||
#==============================================================================
|
||||
#
|
||||
# <20><> Yanfly Engine Ace - Visual Battlers v1.01
|
||||
# -- Last Updated: 2012.07.24
|
||||
# -- Level: Easy
|
||||
# -- Requires: n/a
|
||||
#
|
||||
# <20><> Modified by:
|
||||
# -- Yami
|
||||
# -- Kread-Ex
|
||||
# -- Archeia_Nessiah
|
||||
#==============================================================================
|
||||
|
||||
$imported = {} if $imported.nil?
|
||||
$imported["YEA-VisualBattlers"] = true
|
||||
|
||||
#==============================================================================
|
||||
# <20><> Updates
|
||||
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
# 2012.12.18 - Added preset views and able to change direction in-game.
|
||||
# 2012.07.24 - Finished Script.
|
||||
# 2012.01.05 - Started Script.
|
||||
#
|
||||
#==============================================================================
|
||||
# <20><> Introduction
|
||||
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
# This script provides a visual for all actors by default charsets. The actions
|
||||
# and movements are alike Final Fantasy 1, only move forward and backward when
|
||||
# start and finish actions.
|
||||
#
|
||||
#==============================================================================
|
||||
# <20><> Instructions
|
||||
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
# To change the player direction in-game, use the snippet below in a script
|
||||
# call:
|
||||
#
|
||||
# $game_system.party_direction = n
|
||||
#
|
||||
# To install this script, open up your script editor and copy/paste this script
|
||||
# to an open slot below <20><> Materials but above <20><> Main. Remember to save.
|
||||
#
|
||||
#==============================================================================
|
||||
# <20><> Compatibility
|
||||
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
|
||||
# it will run with RPG Maker VX without adjusting.
|
||||
#
|
||||
#==============================================================================
|
||||
|
||||
module YEA
|
||||
module VISUAL_BATTLERS
|
||||
|
||||
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
# - Party Location Setting -
|
||||
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
# These settings are adjusted for Party Location. Each Actor will have
|
||||
# coordinates calculated by below formula. There are two samples coordinates
|
||||
# below, change PARTY_DIRECTION to the base index you want to use.
|
||||
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
PARTY_DIRECTION = 6 # This direction is opposite from actual direction.
|
||||
|
||||
PARTY_LOCATION_BASE_COORDINATES ={
|
||||
# Index => [base_x, base_y, mod_x, mod_y],
|
||||
2 => [ 250, 290, 40, 0], #UP
|
||||
4 => [ 150, 280, 20, -20], #LEFT
|
||||
3 => [ 460, 280, 30, -10], #RIGHT
|
||||
6 => [ 460, 230, 20, 20], #DEFAULT RIGHT
|
||||
8 => [ 260, 230, 40, 0], #DOWN
|
||||
} # Do not remove this.
|
||||
|
||||
PARTY_LOCATION_FORMULA_X = "base_x + index * mod_x"
|
||||
PARTY_LOCATION_FORMULA_Y = "base_y + index * mod_y"
|
||||
|
||||
end # VISUAL_BATTLERS
|
||||
end # YEA
|
||||
|
||||
#==============================================================================
|
||||
# <20><> Editting anything past this point may potentially result in causing
|
||||
# computer damage, incontinence, explosion of user's head, coma, death, and/or
|
||||
# halitosis so edit at your own risk.
|
||||
#==============================================================================
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Direction
|
||||
#==============================================================================
|
||||
|
||||
module Direction
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# self.correct
|
||||
#--------------------------------------------------------------------------
|
||||
def self.correct(direction)
|
||||
case direction
|
||||
when 1; return 4
|
||||
when 3; return 6
|
||||
when 7; return 4
|
||||
when 9; return 6
|
||||
else; return direction
|
||||
end
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# self.opposite
|
||||
#--------------------------------------------------------------------------
|
||||
def self.opposite(direction)
|
||||
case direction
|
||||
when 1; return 6
|
||||
when 2; return 8
|
||||
when 3; return 4
|
||||
when 4; return 6
|
||||
when 6; return 4
|
||||
when 7; return 6
|
||||
when 8; return 2
|
||||
when 9; return 4
|
||||
else; return direction
|
||||
end
|
||||
end
|
||||
|
||||
end # Direction
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_System
|
||||
#==============================================================================
|
||||
|
||||
class Game_System; attr_accessor :party_direction; end
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_BattleCharacter
|
||||
#==============================================================================
|
||||
|
||||
class Game_BattleCharacter < Game_Character
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# initialize
|
||||
#--------------------------------------------------------------------------
|
||||
def initialize(actor)
|
||||
super()
|
||||
setup_actor(actor)
|
||||
@move_x_rate = 0
|
||||
@move_y_rate = 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# setup_actor
|
||||
#--------------------------------------------------------------------------
|
||||
def setup_actor(actor)
|
||||
@actor = actor
|
||||
@step_anime = true
|
||||
set_graphic(@actor.character_name, @actor.character_index)
|
||||
setup_coordinates
|
||||
dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
|
||||
direction = Direction.opposite(dr)
|
||||
set_direction(Direction.correct(direction))
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# sprite=
|
||||
#--------------------------------------------------------------------------
|
||||
def sprite=(sprite)
|
||||
@sprite = sprite
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# setup_coordinates
|
||||
#--------------------------------------------------------------------------
|
||||
def setup_coordinates
|
||||
location = ($game_system.party_direction ||
|
||||
YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
|
||||
base_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][0]
|
||||
base_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][1]
|
||||
mod_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][2]
|
||||
mod_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][3]
|
||||
@actor.screen_x = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_X)
|
||||
@actor.screen_y = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_Y)
|
||||
@actor.origin_x = @actor.screen_x
|
||||
@actor.origin_y = @actor.screen_y
|
||||
@actor.create_move_to(screen_x, screen_y, 1)
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# index
|
||||
#--------------------------------------------------------------------------
|
||||
def index
|
||||
return @actor.index
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# screen_x
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_x
|
||||
return @actor.screen_x
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# screen_y
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_y
|
||||
return @actor.screen_y
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# screen_z
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_z
|
||||
return @actor.screen_z
|
||||
end
|
||||
|
||||
end # Game_BattleCharacter
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_Battler
|
||||
#==============================================================================
|
||||
|
||||
class Game_Battler < Game_BattlerBase
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# public instance variables
|
||||
#--------------------------------------------------------------------------
|
||||
attr_accessor :moved_back
|
||||
attr_accessor :origin_x
|
||||
attr_accessor :origin_y
|
||||
attr_accessor :screen_x
|
||||
attr_accessor :screen_y
|
||||
attr_accessor :started_turn
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: execute_damage
|
||||
#--------------------------------------------------------------------------
|
||||
alias game_battler_execute_damage_vb execute_damage
|
||||
def execute_damage(user)
|
||||
game_battler_execute_damage_vb(user)
|
||||
if @result.hp_damage > 0
|
||||
move_backward(24, 6) unless @moved_back
|
||||
@moved_back = true
|
||||
end
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# face_opposing_party
|
||||
#--------------------------------------------------------------------------
|
||||
def face_opposing_party
|
||||
direction = ($game_system.party_direction ||
|
||||
YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
|
||||
character.set_direction(Direction.correct(direction)) rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: face_coordinate
|
||||
#--------------------------------------------------------------------------
|
||||
def face_coordinate(destination_x, destination_y)
|
||||
x1 = Integer(@screen_x)
|
||||
x2 = Integer(destination_x)
|
||||
y1 = Graphics.height - Integer(@screen_y)
|
||||
y2 = Graphics.height - Integer(destination_y)
|
||||
return if x1 == x2 and y1 == y2
|
||||
#---
|
||||
angle = Integer(Math.atan2((y2-y1),(x2-x1)) * 1800 / Math::PI)
|
||||
if (0..225) === angle or (-225..0) === angle
|
||||
direction = 6
|
||||
elsif (226..675) === angle
|
||||
direction = 9
|
||||
elsif (676..1125) === angle
|
||||
direction = 8
|
||||
elsif (1126..1575) === angle
|
||||
direction = 7
|
||||
elsif (1576..1800) === angle or (-1800..-1576) === angle
|
||||
direction = 4
|
||||
elsif (-1575..-1126) === angle
|
||||
direction = 1
|
||||
elsif (-1125..-676) === angle
|
||||
direction = 2
|
||||
elsif (-675..-226) === angle
|
||||
direction = 3
|
||||
end
|
||||
#---
|
||||
character.set_direction(Direction.correct(direction)) rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# create_move_to
|
||||
#--------------------------------------------------------------------------
|
||||
def create_move_to(destination_x, destination_y, frames = 12)
|
||||
@destination_x = destination_x
|
||||
@destination_y = destination_y
|
||||
frames = [frames, 1].max
|
||||
@move_x_rate = [(@screen_x - @destination_x).abs / frames, 2].max
|
||||
@move_y_rate = [(@screen_y - @destination_y).abs / frames, 2].max
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# update_move_to
|
||||
#--------------------------------------------------------------------------
|
||||
def update_move_to
|
||||
@move_x_rate = 0 if @screen_x == @destination_x || @move_x_rate.nil?
|
||||
@move_y_rate = 0 if @screen_y == @destination_y || @move_y_rate.nil?
|
||||
value = [(@screen_x - @destination_x).abs, @move_x_rate].min
|
||||
@screen_x += (@destination_x > @screen_x) ? value : -value
|
||||
value = [(@screen_y - @destination_y).abs, @move_y_rate].min
|
||||
@screen_y += (@destination_y > @screen_y) ? value : -value
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# move_forward
|
||||
#--------------------------------------------------------------------------
|
||||
def move_forward(distance = 24, frames = 12)
|
||||
direction = forward_direction
|
||||
move_direction(direction, distance, frames)
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# move_backward
|
||||
#--------------------------------------------------------------------------
|
||||
def move_backward(distance = 24, frames = 12)
|
||||
direction = Direction.opposite(forward_direction)
|
||||
move_direction(direction, distance, frames)
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# move_direction
|
||||
#--------------------------------------------------------------------------
|
||||
def move_direction(direction, distance = 24, frames = 12)
|
||||
case direction
|
||||
when 1; move_x = distance / -2; move_y = distance / 2
|
||||
when 2; move_x = distance * 0; move_y = distance * 1
|
||||
when 3; move_x = distance / -2; move_y = distance / 2
|
||||
when 4; move_x = distance * -1; move_y = distance * 0
|
||||
when 6; move_x = distance * 1; move_y = distance * 0
|
||||
when 7; move_x = distance / -2; move_y = distance / -2
|
||||
when 8; move_x = distance * 0; move_y = distance * -1
|
||||
when 9; move_x = distance / 2; move_y = distance / -2
|
||||
else; return
|
||||
end
|
||||
destination_x = @screen_x + move_x
|
||||
destination_y = @screen_y + move_y
|
||||
create_move_to(destination_x, destination_y, frames)
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# forward_direction
|
||||
#--------------------------------------------------------------------------
|
||||
def forward_direction
|
||||
return ($game_system.party_direction ||
|
||||
YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# move_origin
|
||||
#--------------------------------------------------------------------------
|
||||
def move_origin
|
||||
create_move_to(@origin_x, @origin_y)
|
||||
face_coordinate(@origin_x, @origin_y)
|
||||
@moved_back = false
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# moving?
|
||||
#--------------------------------------------------------------------------
|
||||
def moving?
|
||||
return false if dead? || !exist?
|
||||
return @move_x_rate != 0 || @move_y_rate != 0
|
||||
end
|
||||
|
||||
end # Game_Battler
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_Actor
|
||||
#==============================================================================
|
||||
|
||||
class Game_Actor < Game_Battler
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# overwrite method: use_sprite?
|
||||
#--------------------------------------------------------------------------
|
||||
def use_sprite?
|
||||
return true
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: screen_x
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_x
|
||||
return @screen_x rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: screen_y
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_y
|
||||
return @screen_y rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: screen_z
|
||||
#--------------------------------------------------------------------------
|
||||
def screen_z
|
||||
return 100
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: sprite
|
||||
#--------------------------------------------------------------------------
|
||||
def sprite
|
||||
index = $game_party.battle_members.index(self)
|
||||
return SceneManager.scene.spriteset.actor_sprites[index]
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: character
|
||||
#--------------------------------------------------------------------------
|
||||
def character
|
||||
return sprite.character_base
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# face_opposing_party
|
||||
#--------------------------------------------------------------------------
|
||||
def face_opposing_party
|
||||
dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
|
||||
direction = Direction.opposite(dr)
|
||||
character.set_direction(Direction.correct(direction)) rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# forward_direction
|
||||
#--------------------------------------------------------------------------
|
||||
def forward_direction
|
||||
return Direction.opposite(($game_system.party_direction ||
|
||||
YEA::VISUAL_BATTLERS::PARTY_DIRECTION))
|
||||
end
|
||||
|
||||
end # Game_Actor
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_Enemy
|
||||
#==============================================================================
|
||||
|
||||
class Game_Enemy < Game_Battler
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: sprite
|
||||
#--------------------------------------------------------------------------
|
||||
def sprite
|
||||
return SceneManager.scene.spriteset.enemy_sprites.reverse[self.index]
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: character
|
||||
#--------------------------------------------------------------------------
|
||||
def character
|
||||
return sprite
|
||||
end
|
||||
|
||||
end # Game_Enemy
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Game_Troop
|
||||
#==============================================================================
|
||||
|
||||
class Game_Troop < Game_Unit
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: setup
|
||||
#--------------------------------------------------------------------------
|
||||
alias game_troop_setup_vb setup
|
||||
def setup(troop_id)
|
||||
game_troop_setup_vb(troop_id)
|
||||
set_coordinates
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: set_coordinates
|
||||
#--------------------------------------------------------------------------
|
||||
def set_coordinates
|
||||
for member in members
|
||||
member.origin_x = member.screen_x
|
||||
member.origin_y = member.screen_y
|
||||
member.create_move_to(member.screen_x, member.screen_y, 1)
|
||||
end
|
||||
end
|
||||
|
||||
end # Game_Troop
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Sprite_Battler
|
||||
#==============================================================================
|
||||
|
||||
class Sprite_Battler < Sprite_Base
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# public instance_variable
|
||||
#--------------------------------------------------------------------------
|
||||
attr_accessor :character_base
|
||||
attr_accessor :character_sprite
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: dispose
|
||||
#--------------------------------------------------------------------------
|
||||
alias sprite_battler_dispose_vb dispose
|
||||
def dispose
|
||||
dispose_character_sprite
|
||||
sprite_battler_dispose_vb
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: dispose_character_sprite
|
||||
#--------------------------------------------------------------------------
|
||||
def dispose_character_sprite
|
||||
@character_sprite.dispose unless @character_sprite.nil?
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: update
|
||||
#--------------------------------------------------------------------------
|
||||
alias sprite_battler_update_vb update
|
||||
def update
|
||||
sprite_battler_update_vb
|
||||
return if @battler.nil?
|
||||
update_move_to
|
||||
update_character_base
|
||||
update_character_sprite
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: update_character_base
|
||||
#--------------------------------------------------------------------------
|
||||
def update_character_base
|
||||
return if @character_base.nil?
|
||||
@character_base.update
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: update_character_sprite
|
||||
#--------------------------------------------------------------------------
|
||||
def update_character_sprite
|
||||
return if @character_sprite.nil?
|
||||
@character_sprite.update
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: update_move_to
|
||||
#--------------------------------------------------------------------------
|
||||
def update_move_to
|
||||
@battler.update_move_to
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: moving?
|
||||
#--------------------------------------------------------------------------
|
||||
def moving?
|
||||
return false if @battler.nil?
|
||||
return @battler.moving?
|
||||
end
|
||||
|
||||
end # Sprite_Battler
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Sprite_BattleCharacter
|
||||
#==============================================================================
|
||||
|
||||
class Sprite_BattleCharacter < Sprite_Character
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# initialize
|
||||
#--------------------------------------------------------------------------
|
||||
def initialize(viewport, character = nil)
|
||||
super(viewport, character)
|
||||
character.sprite = self
|
||||
end
|
||||
|
||||
end # Sprite_BattleCharacter
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Spriteset_Battle
|
||||
#==============================================================================
|
||||
|
||||
class Spriteset_Battle
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# public instance_variable
|
||||
#--------------------------------------------------------------------------
|
||||
attr_accessor :actor_sprites
|
||||
attr_accessor :enemy_sprites
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# overwrite method: create_actors
|
||||
#--------------------------------------------------------------------------
|
||||
def create_actors
|
||||
total = $game_party.max_battle_members
|
||||
@current_party = $game_party.battle_members.clone
|
||||
@actor_sprites = Array.new(total) { Sprite_Battler.new(@viewport1) }
|
||||
for actor in $game_party.battle_members
|
||||
@actor_sprites[actor.index].battler = actor
|
||||
create_actor_sprite(actor)
|
||||
end
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: create_actor_sprite
|
||||
#--------------------------------------------------------------------------
|
||||
def create_actor_sprite(actor)
|
||||
character = Game_BattleCharacter.new(actor)
|
||||
character_sprite = Sprite_BattleCharacter.new(@viewport1, character)
|
||||
@actor_sprites[actor.index].character_base = character
|
||||
@actor_sprites[actor.index].character_sprite = character_sprite
|
||||
actor.face_opposing_party
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: update_actors
|
||||
#--------------------------------------------------------------------------
|
||||
alias spriteset_battle_update_actors_vb update_actors
|
||||
def update_actors
|
||||
if @current_party != $game_party.battle_members
|
||||
dispose_actors
|
||||
create_actors
|
||||
end
|
||||
spriteset_battle_update_actors_vb
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: moving?
|
||||
#--------------------------------------------------------------------------
|
||||
def moving?
|
||||
return battler_sprites.any? {|sprite| sprite.moving? }
|
||||
end
|
||||
|
||||
end # Spriteset_Battle
|
||||
|
||||
#==============================================================================
|
||||
# ? <20><> Scene_Battle
|
||||
#==============================================================================
|
||||
|
||||
class Scene_Battle < Scene_Base
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# public instance variables
|
||||
#--------------------------------------------------------------------------
|
||||
attr_accessor :spriteset
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: process_action_end
|
||||
#--------------------------------------------------------------------------
|
||||
alias scene_battle_process_action_end_vb process_action_end
|
||||
def process_action_end
|
||||
start_battler_move_origin
|
||||
scene_battle_process_action_end_vb
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# alias method: execute_action
|
||||
#--------------------------------------------------------------------------
|
||||
alias scene_battle_execute_action_vb execute_action
|
||||
def execute_action
|
||||
start_battler_move_forward
|
||||
scene_battle_execute_action_vb
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: start_battler_move_forward
|
||||
#--------------------------------------------------------------------------
|
||||
def start_battler_move_forward
|
||||
return if @subject.started_turn
|
||||
@subject.started_turn = true
|
||||
@subject.move_forward
|
||||
wait_for_moving
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: start_battler_move_origin
|
||||
#--------------------------------------------------------------------------
|
||||
def start_battler_move_origin
|
||||
@subject.started_turn = nil
|
||||
move_battlers_origin
|
||||
wait_for_moving
|
||||
@subject.face_opposing_party rescue 0
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: move_battlers_origin
|
||||
#--------------------------------------------------------------------------
|
||||
def move_battlers_origin
|
||||
for member in all_battle_members
|
||||
next if member.dead?
|
||||
next unless member.exist?
|
||||
member.move_origin
|
||||
end
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# new method: wait_for_moving
|
||||
#--------------------------------------------------------------------------
|
||||
def wait_for_moving
|
||||
update_for_wait
|
||||
update_for_wait while @spriteset.moving?
|
||||
end
|
||||
|
||||
end # Scene_Battle
|
||||
|
||||
#==============================================================================
|
||||
#
|
||||
# <20><> End of File
|
||||
#
|
||||
#==============================================================================
|
||||
@@ -1,3 +0,0 @@
|
||||
Year,Make,Model,Length
|
||||
1997,Ford,E350,2.34
|
||||
2000,Mercury,Cougar,2.38
|
||||
|
@@ -1,86 +0,0 @@
|
||||
solid
|
||||
facet normal 0.000000E+00 -1.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 -2.450000E+01 3.100000E+01
|
||||
vertex -1.850000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex 1.250000E+01 -2.450000E+01 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 -1.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 -2.450000E+01 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex 1.250000E+01 -2.450000E+01 3.100000E+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000E+00 0.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 3.100000E+01
|
||||
vertex -1.850000E+01 6.500000E+00 -1.000000E-03
|
||||
vertex -1.850000E+01 -2.450000E+01 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000E+00 0.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 3.100000E+01
|
||||
vertex -1.850000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex -1.850000E+01 -2.450000E+01 3.100000E+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 1.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 -1.000000E-03
|
||||
vertex -1.850000E+01 6.500000E+00 3.100000E+01
|
||||
vertex 1.250000E+01 6.500000E+00 3.100000E+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 1.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 -1.000000E-03
|
||||
vertex 1.250000E+01 6.500000E+00 3.100000E+01
|
||||
vertex 1.250000E+01 6.500000E+00 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000E+00 0.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex 1.250000E+01 6.500000E+00 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000E+00 0.000000E+00 0.000000E+00
|
||||
outer loop
|
||||
vertex 1.250000E+01 6.500000E+00 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex 1.250000E+01 6.500000E+00 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 0.000000E+00 -1.000000E+00
|
||||
outer loop
|
||||
vertex 1.250000E+01 6.500000E+00 -1.000000E-03
|
||||
vertex 1.250000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex -1.850000E+01 -2.450000E+01 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 0.000000E+00 -1.000000E+00
|
||||
outer loop
|
||||
vertex 1.250000E+01 6.500000E+00 -1.000000E-03
|
||||
vertex -1.850000E+01 -2.450000E+01 -1.000000E-03
|
||||
vertex -1.850000E+01 6.500000E+00 -1.000000E-03
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 0.000000E+00 1.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 3.100000E+01
|
||||
vertex -1.850000E+01 -2.450000E+01 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 3.100000E+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000E+00 0.000000E+00 1.000000E+00
|
||||
outer loop
|
||||
vertex -1.850000E+01 6.500000E+00 3.100000E+01
|
||||
vertex 1.250000E+01 -2.450000E+01 3.100000E+01
|
||||
vertex 1.250000E+01 6.500000E+00 3.100000E+01
|
||||
endloop
|
||||
endfacet
|
||||
endsolid
|
||||
@@ -1 +0,0 @@
|
||||
defunkt
|
||||
@@ -1 +0,0 @@
|
||||
DROP ALL TABLES
|
||||
@@ -1 +0,0 @@
|
||||
{"foo": "bar"}
|
||||
@@ -1 +0,0 @@
|
||||
%<25><><EFBFBD>
|
||||
@@ -1,2 +0,0 @@
|
||||
MD
|
||||
==
|
||||
@@ -1 +0,0 @@
|
||||
Text
|
||||
Binary file not shown.
Binary file not shown.
25
samples/WebIDL/AnimationEvent.webidl
Normal file
25
samples/WebIDL/AnimationEvent.webidl
Normal file
@@ -0,0 +1,25 @@
|
||||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* The origin of this IDL file is
|
||||
* http://www.w3.org/TR/css3-animations/#animation-events-
|
||||
* http://dev.w3.org/csswg/css3-animations/#animation-events-
|
||||
*
|
||||
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
|
||||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Constructor(DOMString type, optional AnimationEventInit eventInitDict)]
|
||||
interface AnimationEvent : Event {
|
||||
readonly attribute DOMString animationName;
|
||||
readonly attribute float elapsedTime;
|
||||
readonly attribute DOMString pseudoElement;
|
||||
};
|
||||
|
||||
dictionary AnimationEventInit : EventInit {
|
||||
DOMString animationName = "";
|
||||
float elapsedTime = 0;
|
||||
DOMString pseudoElement = "";
|
||||
};
|
||||
35
samples/WebIDL/Fetch.webidl
Normal file
35
samples/WebIDL/Fetch.webidl
Normal file
@@ -0,0 +1,35 @@
|
||||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* The origin of this IDL file is
|
||||
* http://fetch.spec.whatwg.org/
|
||||
*/
|
||||
|
||||
typedef object JSON;
|
||||
// FIXME(nsm): Bug 739173: FormData is not available in workers.
|
||||
// typedef (ArrayBuffer or ArrayBufferView or Blob or FormData or USVString or URLSearchParams) BodyInit;
|
||||
typedef (ArrayBuffer or ArrayBufferView or Blob or USVString or URLSearchParams) BodyInit;
|
||||
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface Body {
|
||||
readonly attribute boolean bodyUsed;
|
||||
[Throws]
|
||||
Promise<ArrayBuffer> arrayBuffer();
|
||||
[Throws]
|
||||
Promise<Blob> blob();
|
||||
// FIXME(nsm): Bug 739173 FormData is not supported in workers.
|
||||
// Promise<FormData> formData();
|
||||
[Throws]
|
||||
Promise<JSON> json();
|
||||
[Throws]
|
||||
Promise<USVString> text();
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface GlobalFetch {
|
||||
[Throws, Func="mozilla::dom::Headers::PrefEnabled"]
|
||||
Promise<Response> fetch(RequestInfo input, optional RequestInit init);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user